diff --git a/docs/roadmap/application-upgrade-sequence.md b/docs/roadmap/application-upgrade-sequence.md index 7ab554c..c8a40a8 100644 --- a/docs/roadmap/application-upgrade-sequence.md +++ b/docs/roadmap/application-upgrade-sequence.md @@ -31,14 +31,14 @@ Seriatim is unchanged by this sequence. ## Progress and Feature Links Release-summary and migration-guidance triage is complete. Standalone -Scriptorium and Audita adoption are complete after independent review; Notarius -standalone implementation awaits independent review. Add the numbered feature +Scriptorium, Audita, and Notarius adoption are complete after independent review; +Narratio is next. Add the numbered feature link beside each item when its roadmap is created; check it off after independent review and closeout. - [x] [Feature 0018: Scriptorium adoption](features/0018-scriptorium-v0-15-adoption.md) — complete through role `b174c8c`; independent review found no remediation issues. - [x] [Feature 0019: Audita adoption](features/0019-audita-v2-adoption.md) — complete through role `c3dd59f`; independent review found no remediation issues. -- [ ] [Feature 0020: Notarius adoption](features/0020-notarius-v0-8-adoption.md) — standalone role implemented through `6aef48b`; independent review pending, suite unchanged. +- [x] [Feature 0020: Notarius adoption](features/0020-notarius-v0-8-adoption.md) — complete through role `6aef48b`; independent review found no remediation issues; suite unchanged. - [ ] Narratio adoption — feature roadmap not yet created. - [ ] Suite integration — feature roadmap not yet created. diff --git a/docs/roadmap/features/0020-notarius-v0-8-adoption.md b/docs/roadmap/features/0020-notarius-v0-8-adoption.md index fc9fc9c..4aa8311 100644 --- a/docs/roadmap/features/0020-notarius-v0-8-adoption.md +++ b/docs/roadmap/features/0020-notarius-v0-8-adoption.md @@ -1,6 +1,6 @@ # Feature 0020: Adopt Notarius v0.8.1 in the Standalone Role -Status: in_progress — implementation complete; independent review pending +Status: done ## Summary @@ -142,9 +142,8 @@ existing suite compatibility set. ## Dependencies and Follow-up Work -The roadmap is approved; execution is defined in the -[implementation plan](../implementation.md). Narratio v3 standalone adoption -follows independent review and closeout. Final integration +Implementation and independent review are complete. Git history preserves the +completed staged plan. Narratio v3 standalone adoption is next. Final integration owns the coordinated overlay/credential/configuration migration and public suite dependency updates. No open product decision is required for this narrow scope. @@ -158,8 +157,14 @@ dependency updates. No open product decision is required for this narrow scope. rendered/effective retry checks, older-version and supplied-Go behavior, import and pipeline composition, and clean immediate repeats. Role and workspace whitespace checks passed. -- The role implementation awaits independent review. Narratio adoption and - coordinated suite migration remain separate follow-up work. +- Independent review of all three role commits found no required remediation + or unjustified strengthening of requirements. Syntax, production-profile + lint, shell syntax, whitespace checks, and installed v0.8.1 native + configuration validation passed again during review. The review used the + recorded successful integration run rather than rerunning its host-mutating + scenarios. No remediation document was changed. +- Reviewed standalone revision: `6aef48b`. Narratio adoption and coordinated + suite migration remain separate follow-up work; suite pins are unchanged. ## Upstream References diff --git a/docs/roadmap/implementation.md b/docs/roadmap/implementation.md index fe89c6a..6e5a842 100644 --- a/docs/roadmap/implementation.md +++ b/docs/roadmap/implementation.md @@ -1,241 +1,12 @@ -# Implementation Plan 0020: Adopt Notarius v0.8.1 +# Implementation Plan -Status: implemented — independent review pending +No implementation plan is currently active. Agree on the next feature roadmap +before preparing its staged plan. -Target executor: GPT-5.6-Terra +Feature 0020 is complete and independently reviewed with no remediation +findings. See [its roadmap](features/0020-notarius-v0-8-adoption.md) for +completion evidence. Git history preserves the completed plan. -Feature roadmap: [Feature 0020](features/0020-notarius-v0-8-adoption.md) - -## Objective - -Update the standalone Notarius role to v0.8.1 and expose its optional transport -retry setting. The feature roadmap owns scope, rationale, and acceptance -criteria. Suite adoption remains deferred to coordinated integration. - -## Execution Rules and Preconditions - -- Execute stages in order. Reread each stage's required policies immediately - before beginning it, including applicable repository instructions. -- Confirm working-tree state before editing and preserve unrelated changes. - Commit each valid completed stage with a plain English message. Do not push. -- Only `ansible-role-notarius` and workspace planning/status documents may - change. Inspect `../notarius` read-only at tags v0.8.0 and v0.8.1. -- Keep pipeline, collection, consumer, assets, and other roles unchanged. - Retain the suite's Notarius v0.7.1 application and existing dependency pins; - do not import the new standalone role into the collection. -- No new production tasks, state probes, migration aliases, role-managed - overlay assets, or cache cleanup are needed. Preserve the existing build - and configuration convergence flow. -- Use workspace `.venv/bin` tools. A missing executable on PATH does not mean - Ansible is unavailable. The existing integration script selects these tools - and installs its declared collection dependency. -- Integration runs locally with sudo, not on a controller or pipeline host. - The existing harness modifies local source, binary, and configuration paths - and restores baseline configuration on exit. Confirm those test locations - are disposable before running. Source/dependency downloads are needed; - credentials, provider calls, and operational deployment are not. -- Report genuine environment limitations and checks completed. Do not invent - new acceptance gates or expand scope to overcome an unrelated limitation. - -## Stage 1: Update the Application and Public Configuration Interface - -Completion: complete (2026-09-28). - -### Required Policy Review - -Read workspace `AGENTS.md`, `docs/orientation.md`, `docs/conventions.md`, -`docs/ansible.md`, and `docs/planning.md`, plus applicable role instructions. - -### Owning Repositories and Preconditions - -`ansible-role-notarius` owns implementation; workspace owns progress. -Feature 0020 is approved. Inspect existing defaults, argument specifications, -template, and tasks, plus tagged upstream configuration and release notes. - -### Required Changes - -1. Mark F0020 `in_progress` in workspace status when implementation starts. -2. Set `notarius_version` to `v0.8.1` in role `defaults/main.yml`. Preserve - schema version 5, Go selection, paths, ownership, and existing interfaces. -3. Add `notarius_promptkit_transient_retries: null`. Declare it as an optional - integer in `meta/argument_specs.yml`. -4. In `templates/config.yml.j2`, emit `promptkit.transient_retries` when the - variable `is not none`, preserving integer zero. Add it to the enclosing - PromptKit section condition so retry-only configuration works. It is a - sibling of `profile_dir`, `profile_file`, and `local_backend`. -5. Document the variable, native field, null omission, and zero semantics in - the README public interface. Do not duplicate the upstream retry default - or add custom validation. - -### Validation - -From the workspace root: - -```sh -ANSIBLE_ROLES_PATH="$PWD" .venv/bin/ansible-playbook -i ansible-role-notarius/tests/inventory --syntax-check ansible-role-notarius/tests/converge.yml -ANSIBLE_ROLES_PATH="$PWD" .venv/bin/ansible-lint ansible-role-notarius/tests/converge.yml ansible-role-notarius/tests/prepare-import.yml -git -C ansible-role-notarius diff --check -git diff --check -``` - -Static checks must pass. Review the diff for consistent defaults, argument -specification, template, and documentation, with no production task or suite -pin changes. Behavioral rendering validation follows in Stage 2. - -### Completion and Commit - -The new standalone interface is consistent and static checks pass. Commit the -role as `Update Notarius and expose transport retries`; commit workspace -progress separately as `Record the Notarius upgrade in progress`. - -## Stage 2: Test Optional Retry Rendering and Retain Existing Outcomes - -Completion: complete (2026-09-28). - -### Required Policy Review - -Read workspace `AGENTS.md`, `docs/orientation.md`, `docs/conventions.md`, -`docs/ansible.md`, and `docs/testing.md`, plus applicable role instructions. - -### Owning Repository and Preconditions - -`ansible-role-notarius`. Stage 1 is committed and static checks pass. Read the -existing integration script and fixtures. Confirm the local test environment -is suitable as described above. Extend the harness rather than introducing a -parallel framework. - -### Required Changes - -1. In the baseline case, explicitly supply null for the retry variable and - inspect rendered YAML for absence of `promptkit.transient_retries`. Do not - use effective configuration to prove omission: it can include application - defaults. Retain native validation and the immediate clean repeat. -2. Add one retry-only case before the older-version selection: supply integer - zero while other PromptKit variables remain null. Check the rendered - nested value, run native `config validate`, and inspect `config effective` - for zero. Immediately repeat identical inputs and require an overall - zero-change recap. This protects falsey rendering and parent inclusion. -3. Supply retry zero in the existing representative configuration case and - verify it through native effective configuration. Preserve import/pipeline - composition, cache false/bypass behavior, and the clean repeat. Reuse - concise assertions; parsed YAML is suitable for nested omission/value - checks. Do not snapshot complete documents. -4. Retain explicit v0.7.0 selection and supplied-Go/missing-binary recovery. - Leave the new retry field unset in those older-release invocations; do not - leak inputs from preceding cases. Keep the default-version smoke check - informational rather than asserting today's default version indefinitely. -5. Do not add overlay migration tests, provider calls, retry-exhaustion - matrices, checkpoint invalidation tests, or checks of module-owned file - metadata. These are not behavior newly owned by the role. - -### Validation - -From the workspace root: - -```sh -bash -n ansible-role-notarius/tests/integration -ansible-role-notarius/tests/integration -git -C ansible-role-notarius diff --check -``` - -The harness includes syntax/lint. Require native offline acceptance of the -managed configurations, supplied retry outcomes, retained version/Go/import -behavior, and clean immediate repeats. Do not add a file-existence check after -a successful template operation. - -### Completion and Commit - -Existing meaningful cases and focused retry cases pass without live provider -calls. Save command/results for handoff. Commit the role as `Test optional -Notarius transport retries`. - -## Stage 3: Document Compatibility and Prepare Independent Review - -Completion: complete (2026-09-28). - -### Required Policy Review - -Read workspace `AGENTS.md`, `docs/orientation.md`, `docs/conventions.md`, -`docs/ansible.md`, `docs/testing.md`, and `docs/planning.md`, plus applicable -role instructions. - -### Owning Repositories and Preconditions - -`ansible-role-notarius` and workspace. Stages 1 and 2 are committed and their -checks pass. This is documentation/handoff, not suite integration or closeout. - -### Required Changes - -1. Update the role README's release and upgrade guidance. Explain - `--config-overlay` and `overlays/.yml` replacing the retired ConfigKit - selector/directory. Distinguish these from unchanged PromptKit LLM-profile - sources, pipeline `llm_profile`, and `--llm-profile`. -2. Explain that callers own overlay files and invocation. Suite testing-file - and Narratio-selector migration await coordinated integration. Do not add - role variables or file-moving tasks for this. -3. Describe transport retries as additional eligible transient attempts per - generation, separate from pipeline/validator retries. Null inherits native - behavior; zero disables additional attempts. Link tagged upstream guidance - instead of prescribing new D&D retry budgets. -4. Note v0.8.1's profile-source checkpoint identity change: old matching - checkpoints are not reused; source-keyed chunk plans and published output - are unaffected. No deletion, forced stages, or automated migration. -5. Record role commits and validation evidence in the feature roadmap; - update this plan's progress notes, `docs/status.md`, and - `docs/roadmap/application-upgrade-sequence.md` concisely. Leave F0020 - `in_progress`, awaiting independent review. Do not describe the revision as - reviewed or check off the sequence item yet. - -### Validation - -Review documentation against tagged upstream contracts and implemented -variables. From the workspace root: - -```sh -git -C ansible-role-notarius diff --check -git diff --check -scripts/status -``` - -Confirm only the role and workspace changed; suite/collection/consumer pins -remain untouched. Reuse Stage 2 evidence for documentation-only changes; -rerun affected checks if implementation changes. - -### Completion and Commit - -Documentation describes the standalone contract and deferred integration. -Commit the role as `Document the Notarius overlay upgrade`, then workspace -tracking as `Record Notarius upgrade validation`. - -## Final Validation and Handoff - -Report commit hashes, checks and outcomes, environment limitations or -deviations, and final working-tree state. Identify any added complexity and -its requirement. Leave the feature awaiting independent review; closeout will -record the reviewed revision. Narratio adoption is next, then suite integration. -Do not publish or deploy from this plan. - -## Progress Notes - -Plan approved. - -- Stage 1: role commit `b1b922c`. Syntax check and production-profile lint - passed for the role's integration playbooks. Role and workspace - `git diff --check` passed. The role diff contains only defaults, argument - specifications, the configuration template, and README; no production task - or suite pin changed. -- Stage 2: `bash -n` and the local integration harness passed. Parsed rendered - YAML confirms null omission and retry-only zero; native validation and - effective configuration confirm zero in both retry-only and representative - cases. Existing v0.7.0 selection, supplied-Go recovery, imports, pipelines, - cache behavior, and clean immediate repeats passed. Role `git diff --check` - passed. -- Stage 3: role commits `b1b922c`, `380b6a3`, and `6aef48b` provide the - implementation and documentation. The README was checked against tagged - v0.8.0/v0.8.1 upstream guidance. Documentation-only changes reused Stage 2 - integration evidence; role and workspace `git diff --check` and - `scripts/status` passed. F0020 remains open for independent review. - -## Open Questions - -None. +Narratio v3 standalone adoption is next in the agreed +[application upgrade sequence](application-upgrade-sequence.md). Suite and +consumer pins remain unchanged until coordinated integration. diff --git a/docs/status.md b/docs/status.md index 0aee2ef..619ada2 100644 --- a/docs/status.md +++ b/docs/status.md @@ -4,9 +4,9 @@ Last updated: 2026-09-28 Current milestone: Operational D&D pipeline deployment -Current focus: Independently review Feature 0020's completed standalone -Notarius v0.8.1 implementation. The suite remains unchanged. -Features 0018 and 0019 are complete after independent review with no remediation +Current focus: Plan standalone Narratio v3.0.0 adoption as the next unit of work. +The suite remains unchanged. +Features 0018 through 0020 are complete after independent review with no remediation findings. Follow the agreed [application upgrade sequence](roadmap/application-upgrade-sequence.md): Scriptorium → Audita → Notarius → Narratio → suite integration. Retain the @@ -43,7 +43,7 @@ is complete. | F0017 | Compose the Notarius testing overlay | Narratio role, pipeline role, collection, consumer, and workspace | done | Published through Narratio `330afe7`, Notarius `a82a83d`, pipeline `c56a942`, collection `ce5b838`, and consumer `0ced48c`; independent review found no remediation issues; validation evidence is in the feature roadmap | | F0018 | Adopt Scriptorium v0.15.0 | Scriptorium role and workspace | done | Role commits `61dcafe`, `2fce529`, and `b174c8c` passed independent review with no findings; feature roadmap records validation; suite pins unchanged | | F0019 | Adopt Audita v2.0.1 | Audita role and workspace | done | Role `c3dd59f`, following `6137ff2` and `52f67fe`, passed independent review with no findings; [roadmap](roadmap/features/0019-audita-v2-adoption.md) records validation; suite pins unchanged | -| F0020 | Adopt Notarius v0.8.1 | Notarius role and workspace | in_progress | Role `b1b922c`, `380b6a3`, and `6aef48b` implemented and validated; [feature roadmap](roadmap/features/0020-notarius-v0-8-adoption.md) records evidence; independent review pending, suite migration deferred | +| F0020 | Adopt Notarius v0.8.1 | Notarius role and workspace | done | Role `6aef48b`, following `b1b922c` and `380b6a3`, passed independent review with no findings; [feature roadmap](roadmap/features/0020-notarius-v0-8-adoption.md) records evidence; suite pins unchanged | | A0001 | Audit completed standalone-role test suites | workspace and standalone roles | done | Findings recorded in `docs/roadmap/test-suite-audit-findings.md` | | R0001 | Simplify completed standalone-role test suites | workspace and standalone roles | done | Role commits `e08c63c`, `d2d0b9d`, and `cfecf37` passed implementation and independent review |