From 18b7cf8107bb4058222109246beaf92d37f94e19 Mon Sep 17 00:00:00 2001 From: Jeffrey Phillips Freeman Date: Sun, 22 Feb 2026 13:34:44 -0500 Subject: [PATCH] Docs: daily update to implementation plan --- docs/specification.md | 4 +- implementation_plan.md | 2145 ++++++++++++++-------------------------- 2 files changed, 762 insertions(+), 1387 deletions(-) diff --git a/docs/specification.md b/docs/specification.md index f1af5f480..fbe1cac9b 100644 --- a/docs/specification.md +++ b/docs/specification.md @@ -43306,11 +43306,11 @@ This section provides a high-level overview of the CleverAgents implementation r ### Current Status Summary -As of Day 14 (2026-02-22), approximately **42% of all implementation tasks are complete** (74 of 178 tracked tasks). The foundational layers — domain models, persistence, YAML schemas, CLI commands, quality automation, and CI/CD — are substantially built out. The primary blocker for the first end-to-end milestone is the **execute/apply pipeline**: the tool-aware actor runtime that drives LLM-based plan execution and the sandbox merge path that commits changes to real resources. +As of Day 14 (2026-02-22), the **Day 14 rebaseline plan** is authoritative and **88 of 182 COMMIT checklist items are complete** (~48.35%). The foundational layers — domain models, persistence, YAML schemas, CLI commands, quality automation, and CI/CD — are substantially built out. The primary blocker for the first end-to-end milestone remains the **tool-aware execute/apply pipeline**: the actor runtime that drives LLM-based plan execution, ChangeSet capture, and the sandbox merge path that commits changes to real resources with validation gating. !!! warning "Critical Priority: v2 Feature Restoration" - During the transition from the earlier v2 architecture to the current v3 spec-aligned design, approximately 4,000 lines of LangGraph agent infrastructure were stubbed or removed. **Restoring these v2 capabilities** — specifically the LangGraph-based execution actors, tool-calling runtime, and agent graph compilation — is the highest-priority blocker for reaching a minimal working version. Until the actor runtime can invoke tools through the LLM and capture changes into a ChangeSet, the plan execute/apply lifecycle cannot function end-to-end. + During the transition from the earlier v2 architecture to the current v3 spec-aligned design, approximately 4,000 lines of LangGraph agent infrastructure were stubbed or removed. **Restoring these v2 capabilities** — specifically the LangGraph-based execution actors, tool-calling runtime, and actor graph compilation — is the highest-priority blocker for reaching a minimal working version. Until the actor runtime can invoke tools through the LLM, persist decisions, and capture changes into a ChangeSet, the plan execute/apply lifecycle cannot function end-to-end. ### Parallel Workstreams diff --git a/implementation_plan.md b/implementation_plan.md index b622946c8..d5135c710 100644 --- a/implementation_plan.md +++ b/implementation_plan.md @@ -1852,7 +1852,7 @@ The CleverAgents executable (`agents`) is purely a **client application** that c 1. Run in stand-alone local-only mode (no server required) 2. Connect to an independently developed CleverAgents server for multi-user/collaborative features -During Days 1-30, client stub infrastructure is delivered via Section 9 (F0.stubs), covering the connect command, client interfaces, local/remote detection, and NotImplementedError stubs. +During Days 1-30, client stub infrastructure is delivered via the Day 14 plan M6 server stub workstream (M6.1/M6.2/M6.4), covering the connect command, client interfaces, local/remote detection, ACP facade, and LSP stub behavior. **What is NOT needed by Day 30:** - Server implementation (the server is a separate project) @@ -2128,42 +2128,44 @@ Each schedule update entry must include: timeline reference, summary, milestone - Mike/Brian | N/A | standby | LOW | none ### 2026-02-22 (Day 14 since kickoff on 2026-02-09) -- Timeline reference: Day 7/M1 = 2026-02-15, Day 14/M2 = 2026-02-22, Day 21/M3 = 2026-03-01, Day 25/M4 = 2026-03-05, Day 30/M5 = 2026-03-10, Day 35/M6 = 2026-03-15. -- Summary (Team | Status | Risk | Notes): Behind ~7-9d | HIGH | M1 still blocked by tool-aware execution + apply pipeline; Day 14 rebaseline shifts focus to actor runtime, sandbox merge, and validation gating for the source-code MVP. +- Timeline reference: Day 7/M1 = 2026-02-15, Day 14/M2 = 2026-02-22, Day 18/M3 = 2026-02-26, Day 22/M4 = 2026-03-02, Day 26/M5 = 2026-03-06, Day 30/M6 = 2026-03-10. +- Summary (Team | Status | Risk | Notes): Behind ~7-9d | HIGH | Tool/router/resource registry/sandbox foundations exist; M1 still blocked by tool-aware execute + resource handlers + apply merge wiring. - Milestone forecast (Target -> ETA | Delta | Risk): - M1 (2026-02-15) -> ETA 2026-02-25 | +10d | HIGH - M2 (2026-02-22) -> ETA 2026-02-28 | +6d | HIGH - - M3 (2026-03-01) -> ETA 2026-03-06 | +5d | MED-HIGH - - M4 (2026-03-05) -> ETA 2026-03-09 | +4d | MEDIUM - - M5 (2026-03-10) -> ETA 2026-03-12 | +2d | MEDIUM - - M6 (2026-03-15) -> ETA 2026-03-18 | +3d | LOW-MED -- Track forecast (Track | Status | ETA | Risk | Blocking): - - Track A (Plan execution + apply) | behind ~7-9d | ETA 2026-02-25 | HIGH | tool-aware execute + sandbox merge - - Track B (Resources + sandbox handlers) | behind ~5-6d | ETA 2026-02-26 | MED-HIGH | handler runtime + binding to tools - - Track C (Actors/tools/skills/MCP) | behind ~6-7d | ETA 2026-02-28 | HIGH | actor compiler + MCP/Agent Skills adapters - - Track D (Decisions/invariants/validation) | behind ~6-8d | ETA 2026-03-06 | HIGH | decision persistence + validation runner - - Track E (Corrections + subplans) | behind ~4-6d | ETA 2026-03-09 | MED-HIGH | correction engine + subplan scheduler - - Track F (ACMS v1 context) | behind ~6-8d | ETA 2026-03-12 | MED-HIGH | UKO/CRP + pipeline + - M3 (2026-02-26) -> ETA 2026-03-04 | +6d | MED-HIGH + - M4 (2026-03-02) -> ETA 2026-03-07 | +5d | MED-HIGH + - M5 (2026-03-06) -> ETA 2026-03-09 | +3d | MEDIUM + - M6 (2026-03-10) -> ETA 2026-03-10 | +0d | MED-HIGH +- Track forecast (Track | Status | ETA | Delta | Risk | Blocking): + - Track A (Tool-aware execute + apply) | behind ~7-8d | ETA 2026-02-25 | +10d | HIGH | actor runtime + sandbox apply merge + - Track B (Resources + sandbox handlers) | behind ~4-5d | ETA 2026-02-24 | +9d | MED-HIGH | resource handlers + bindings + - Track C (Actors/tools/skills/MCP) | behind ~6-7d | ETA 2026-02-28 | +6d | HIGH | actor compiler + MCP/Agent Skills loaders + - Track D (Decisions/validations/invariants) | behind ~8-10d | ETA 2026-03-04 | +6d | HIGH | decision persistence + validation runner + - Track E (Corrections/subplans/checkpoints) | behind ~7-9d | ETA 2026-03-07 | +5d | MED-HIGH | correction engine + subplan scheduler + - Track F (ACMS v1/context scaling) | behind ~8-10d | ETA 2026-03-09 | +3d | MEDIUM | UKO/CRP + pipeline - Track Q (Quality automation) | ahead | ETA complete | LOW | maintenance only - - Track T (Testing) | at risk (Rui out) | ETA 2026-03-09+ | MED-HIGH | QA load on Brent + feature owners + - Track T (Testing) | at risk (Rui out) | ETA 2026-03-07+ | MED-HIGH | QA load on Brent + feature owners - Developer forecast (Name | Days Ahead/Behind | Availability | Risk | Focus): - - Jeff | -2d behind | available | HIGH | 10 commits across M1-M6: actor runtime/execute (M1), actor compiler + LSP stubs (M2), plan explain/invariants/corrections (M3-M4), automation profiles + ACP stubs (M5-M6) - - Luis | -3d behind | available | HIGH | 5 commits: apply pipeline (M1), changeset persistence (M2), validation runner (M3), subplan execution/merge (M4), autonomy guardrails (M6) - - Hamza | on schedule | available | MEDIUM | 7 commits: resource handlers + registry (M1-M2), decision domain/persistence (M3), checkpoints + ACMS/context (M4-M5) - - Aditya | +1d ahead | available | MEDIUM | 3 commits (M2): hierarchical actor YAML, MCP runtime, Agent Skills loader - - Brent | on track | available | MED-HIGH | 6 commits: M1-M6 smoke suites + coverage enforcement + - Jeff | -2d behind | available | HIGH | actor runtime + execute wiring + actor compiler + LSP stubs + - Luis | -3d behind | available | HIGH | apply pipeline + changeset persistence + validation gating + - Hamza | -1d behind | available | MED-HIGH | resource handlers + decision domain + ACMS foundation + - Aditya | +1d ahead | available | MEDIUM | actor YAML hierarchy + MCP runtime + Agent Skills loader + - Brent | on track | available | MED-HIGH | M1/M2/M3 smoke suites + coverage enforcement - Rui | N/A (unavailable) | unavailable 2026-02-13 to 2026-02-27 | HIGH | integration suites after return - Mike/Brian | N/A | standby | LOW | none - Task inventory (Milestone × Developer, current rebaseline): + Note: Each cell is **completed/total COMMIT items** for that milestone/owner. Completed counts are cumulative (all-time) and must never decrease; totals equal completed plus remaining Day 14 rebaseline items for that milestone/owner. Post-M6 rows reflect Section 18 deferred commits; totals can change as future work is added/removed but must always remain ≥ completed. | Milestone | Jeff | Aditya | Luis | Hamza | Brent | Rui | Total | |-----------|------|--------|------|-------|-------|-----|-------| - | M1 | 23/25 | 1/1 | 1/3 | 2/3 | 4/6 | 0/0 | 31/38 | - | M2 | 5/7 | 0/3 | 0/1 | 0/1 | 0/1 | 0/0 | 5/13 | - | M3 | 12/24 | 7/9 | 5/9 | 0/2 | 5/6 | 0/0 | 29/50 | - | M4 | 3/13 | 0/2 | 1/15 | 0/9 | 0/3 | 0/0 | 4/42 | - | M5 | 0/3 | 0/1 | 1/2 | 0/3 | 1/2 | 0/0 | 2/11 | - | M6 | 0/7 | 0/0 | 0/8 | 0/5 | 3/4 | 0/0 | 3/24 | - | Total | 43/79 | 8/16 | 8/38 | 2/23 | 13/22 | 0/0 | 74/178 | + | M1 | 23/25 | 1/1 | 1/2 | 2/3 | 4/5 | 0/0 | 31/36 | + | M2 | 5/9 | 0/5 | 0/2 | 0/1 | 0/1 | 0/0 | 5/18 | + | M3 | 12/13 | 7/7 | 5/9 | 0/4 | 5/7 | 0/0 | 29/40 | + | M4 | 3/6 | 0/0 | 1/3 | 0/1 | 0/1 | 0/0 | 4/11 | + | M5 | 0/5 | 0/1 | 1/1 | 0/6 | 1/2 | 0/0 | 2/15 | + | M6 | 0/3 | 0/0 | 0/5 | 0/2 | 3/4 | 0/0 | 3/14 | + | M6+ | 0/1 | 0/0 | 0/7 | 0/7 | 0/1 | 0/1 | 0/17 | + | Total | 43/62 | 8/14 | 8/29 | 2/24 | 13/21 | 0/1 | 74/151 | ## Implementation Checklist @@ -2328,11 +2330,12 @@ This section replaces all unfinished work items with the Day 14 plan. Work is or - [ ] Git [Aditya]: `git push -u origin feature/m2-actor-yaml` - [ ] Forgejo PR [Aditya]: Open PR from `feature/m2-actor-yaml` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Jeff | Group: M2.2.actor-compiler | Branch: feature/m2-actor-compiler | Planned: Day 16 | Expected: Day 17) - Commit message: "feat(actor): compile hierarchical actor configs to LangGraph"** +- [ ] **COMMIT (Owner: Jeff | Group: M2.2.actor-compiler | Branch: feature/m3-actor-compiler | Planned: Day 16 | Expected: Day 17) - Commit message: "feat(actor): compile hierarchical actor configs to LangGraph"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m2-actor-compiler` + - [ ] Git [Jeff]: `git checkout -b feature/m3-actor-compiler` - [ ] Code [Jeff]: Implement actor compiler to translate hierarchical YAML graphs into LangGraph StateGraph nodes/edges with LSP bindings. + - [ ] Code [Jeff]: Add actor reference/subgraph resolution with explicit validation errors for missing nodes or cycles. - [ ] Code [Jeff]: Add runtime wiring so PlanExecutor can execute compiled actors using the tool runtime and the action-configured roles. - [ ] Docs [Jeff]: Update `docs/reference/actor_compiler.md` with compilation pipeline, node binding, and error modes. - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) @@ -2343,13 +2346,13 @@ This section replaces all unfinished work items with the Day 14 plan. Work is or - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - [ ] Git [Jeff]: `git commit -m "feat(actor): compile hierarchical actor configs to LangGraph"` - - [ ] Git [Jeff]: `git push -u origin feature/m2-actor-compiler` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m2-actor-compiler` to `master` with a suitable and thorough description + - [ ] Git [Jeff]: `git push -u origin feature/m3-actor-compiler` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-actor-compiler` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Aditya | Group: M2.3.mcp-runtime | Branch: feature/m2-mcp-runtime | Planned: Day 16 | Expected: Day 18) - Commit message: "feat(skill): add MCP adapter runtime"** +- [ ] **COMMIT (Owner: Aditya | Group: M2.3.mcp-runtime | Branch: feature/m3-mcp-adapter | Planned: Day 16 | Expected: Day 18) - Commit message: "feat(skill): add MCP adapter for external tools"** - [ ] Git [Aditya]: `git checkout master` - [ ] Git [Aditya]: `git pull origin master` - - [ ] Git [Aditya]: `git checkout -b feature/m2-mcp-runtime` + - [ ] Git [Aditya]: `git checkout -b feature/m3-mcp-adapter` - [ ] Code [Aditya]: Implement MCP adapter runtime to connect to servers, enumerate tools, and register them in ToolRegistry. - [ ] Code [Aditya]: Add invocation path that validates tool inputs/outputs against MCP schema and surfaces errors consistently. - [ ] Docs [Aditya]: Update `docs/reference/mcp_adapter.md` with runtime configuration, lifecycle, and error handling. @@ -2360,27 +2363,47 @@ This section replaces all unfinished work items with the Day 14 plan. Work is or - [ ] Quality [Aditya]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - [ ] Git [Aditya]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Aditya]: `git commit -m "feat(skill): add MCP adapter runtime"` - - [ ] Git [Aditya]: `git push -u origin feature/m2-mcp-runtime` - - [ ] Forgejo PR [Aditya]: Open PR from `feature/m2-mcp-runtime` to `master` with a suitable and thorough description + - [ ] Git [Aditya]: `git commit -m "feat(skill): add MCP adapter for external tools"` + - [ ] Git [Aditya]: `git push -u origin feature/m3-mcp-adapter` + - [ ] Forgejo PR [Aditya]: Open PR from `feature/m3-mcp-adapter` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Aditya | Group: M2.4.skill-loader | Branch: feature/m2-skill-loader | Planned: Day 16 | Expected: Day 18) - Commit message: "feat(skill): add Agent Skills loader and registry"** +- [ ] **COMMIT (Owner: Aditya | Group: M2.4a.agent-skills-loader | Branch: feature/m3-agent-skills-loader | Planned: Day 16 | Expected: Day 18) - Commit message: "feat(skill): add agent skills loader"** - [ ] Git [Aditya]: `git checkout master` - [ ] Git [Aditya]: `git pull origin master` - - [ ] Git [Aditya]: `git checkout -b feature/m2-skill-loader` - - [ ] Code [Aditya]: Implement Agent Skills loader for `SKILL.md` with tool discovery and registry integration. - - [ ] Code [Aditya]: Add namespace resolution and skill metadata validation (name, description, tool list). - - [ ] Docs [Aditya]: Update `docs/reference/skills.md` with Agent Skills format and examples. + - [ ] Git [Aditya]: `git checkout -b feature/m3-agent-skills-loader` + - [ ] Code [Aditya]: Add `AgentSkillSpec` loader that parses `SKILL.md` frontmatter + progressive disclosure sections into structured steps with stable ordering. + - [ ] Code [Aditya]: Map Agent Skills to Tool/Validation definitions with namespaced naming, resource binding slots, and read-only defaults. + - [ ] Code [Aditya]: Support `scripts/`, `references/`, and `assets/` folders with path normalization and safe read-only access rules. + - [ ] Docs [Aditya]: Add `docs/reference/agent_skills.md` describing folder layout, parsing rules, and tool mapping. - [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Tests (Behave) [Aditya]: Add scenarios for skill discovery, invalid skill files, and registry resolution. - - [ ] Tests (Robot) [Aditya]: Add Robot test loading a skill and invoking a tool via CLI. - - [ ] Tests (ASV) [Aditya]: Add `benchmarks/skill_loader_bench.py` for loader overhead. + - [ ] Tests (Behave) [Aditya]: Add scenarios for valid/invalid SKILL.md parsing, namespaced naming, and step ordering. + - [ ] Tests (Robot) [Aditya]: Add Robot test that loads a sample Agent Skills folder and verifies tool metadata. + - [ ] Tests (ASV) [Aditya]: Add `benchmarks/agent_skills_loader_bench.py` for parsing throughput. - [ ] Quality [Aditya]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - [ ] Git [Aditya]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Aditya]: `git commit -m "feat(skill): add Agent Skills loader and registry"` - - [ ] Git [Aditya]: `git push -u origin feature/m2-skill-loader` - - [ ] Forgejo PR [Aditya]: Open PR from `feature/m2-skill-loader` to `master` with a suitable and thorough description + - [ ] Git [Aditya]: `git commit -m "feat(skill): add agent skills loader"` + - [ ] Git [Aditya]: `git push -u origin feature/m3-agent-skills-loader` + - [ ] Forgejo PR [Aditya]: Open PR from `feature/m3-agent-skills-loader` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Jeff | Group: M2.4b.agent-skills-registry | Branch: feature/m3-agent-skills-registry | Planned: Day 17 | Expected: Day 18) - Commit message: "feat(skill): integrate agent skills discovery"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m3-agent-skills-registry` + - [ ] Code [Jeff]: Add config key `skills.agent_skills_paths` with default discovery path and allow multiple folders. + - [ ] Code [Jeff]: Register Agent Skills tools in ToolRegistry with `source=agent_skills` and include source metadata in `agents skill tools` output. + - [ ] Code [Jeff]: Add discovery refresh hook in SkillRegistryService and CLI `agents skill tools` to optionally re-scan Agent Skills paths. + - [ ] Docs [Jeff]: Update `docs/reference/skill_registry.md` and CLI reference with Agent Skills discovery behavior and output fields. + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Tests (Behave) [Jeff]: Add scenarios for discovery, refresh, and source metadata rendering. + - [ ] Tests (Robot) [Jeff]: Add Robot CLI test that lists Agent Skills tools with source metadata. + - [ ] Tests (ASV) [Jeff]: Add `benchmarks/agent_skills_discovery_bench.py` for discovery overhead. + - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Jeff]: `git commit -m "feat(skill): integrate agent skills discovery"` + - [ ] Git [Jeff]: `git push -u origin feature/m3-agent-skills-registry` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-agent-skills-registry` to `master` with a suitable and thorough description - [ ] **COMMIT (Owner: Hamza | Group: M2.5.resource-registry | Branch: feature/m2-resource-registry | Planned: Day 16 | Expected: Day 18) - Commit message: "feat(resource): add resource registry and DAG metadata"** - [ ] Git [Hamza]: `git checkout master` @@ -2436,6 +2459,103 @@ This section replaces all unfinished work items with the Day 14 plan. Work is or - [X] Git [Jeff]: `git push -u origin feature/m2-lsp-stubs` - [X] Forgejo PR [Jeff]: Open PR from `feature/m2-lsp-stubs` to `master` with a suitable and thorough description +**Parallel Group M2.8: Skill Registry Completion (Flattening + CLI + Refresh)** + **PARALLEL SUBTRACK SK1.core [Jeff]**: Flattened tool sets, includes, capability summary + **PARALLEL SUBTRACK SK2.persistence [Luis]**: Persistence extensions for flattened tools + **PARALLEL SUBTRACK SK3.cli [Aditya]**: CLI `skill tools/refresh` and output parity + **PARALLEL SUBTRACK SK4.refresh [Aditya]**: MCP refresh hooks and dynamic updates + **SEQUENTIAL MERGE NOTE**: SK2.persistence must land before SK1.core + SK3.cli to avoid schema mismatches; SK4.refresh depends on C7.mcp and can land after SK1.core. + +- [ ] **COMMIT (Owner: Jeff | Group: SK1.core | Branch: feature/m4-skill-registry-core | Planned: Day 18 | Expected: Day 26) - Commit message: "feat(skill): add registry flattening and capability summaries"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m4-skill-registry-core` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Jeff]: Implement skill flattening that resolves `includes`, named tool refs, and anonymous inline tools into a deterministic flattened list. + - [ ] Code [Jeff]: Detect include cycles and emit a clear error listing the cycle path (`skillA -> skillB -> skillA`). + - [ ] Code [Jeff]: Implement per-tool override merging (shallow merge) with explicit disallow list for non-overridable fields. + - [ ] Code [Jeff]: Compute capability summary (read/write/checkpointable/idempotent) for each skill from flattened tool metadata. + - [ ] Code [Jeff]: Add `SkillRegistry.tools(name)` and `SkillRegistry.validate_plan(plan)` to support actor activation and plan validation. + - [ ] Code [Jeff]: Add deterministic ordering for flattened tools (include order, then tool name). + - [ ] Code [Jeff]: Add error reporting that includes source file and line when overrides fail. + - [ ] Docs [Jeff]: Add `docs/reference/skill_registry.md` describing flattening rules, overrides, and validation errors. + - [ ] Docs [Jeff]: Add example of flattened output with inline tools and includes. + - [ ] Tests (Behave) [Jeff]: Add `features/skill_registry.feature` scenarios for includes, overrides, cycle detection, and missing tool refs. + - [ ] Tests (Robot) [Jeff]: Add `robot/skill_registry.robot` for add/list/show/tools flows. + - [ ] Tests (ASV) [Jeff]: Add `benchmarks/skill_flatten_bench.py` for flattening throughput. + - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Jeff]: `git commit -m "feat(skill): add registry flattening and capability summaries"` + - [ ] Git [Jeff]: `git push -u origin feature/m4-skill-registry-core` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-skill-registry-core` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Luis | Group: SK2.persistence | Branch: feature/m4-skill-registry-db | Planned: Day 17 | Expected: Day 26) - Commit message: "feat(skill): persist flattened tool sets"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m4-skill-registry-db` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Luis]: Add migration fields/tables to store `flattened_tools_json`, `includes_json`, and `capability_summary_json` for each skill. + - [ ] Code [Luis]: Persist original skill YAML text and computed flattening hash for refresh invalidation. + - [ ] Code [Luis]: Extend SkillRepository to read/write flattened tool sets and invalidate cached summaries on update. + - [ ] Code [Luis]: Add uniqueness constraint for skill names and index on namespace for list filters. + - [ ] Code [Luis]: Add repository method to recompute flattening hash on update and store in DB. + - [ ] Docs [Luis]: Update `docs/reference/database_schema.md` with skill registry persistence fields. + - [ ] Docs [Luis]: Add mapping table of persistence fields to domain model properties. + - [ ] Tests (Behave) [Luis]: Add `features/skill_registry_persistence.feature` scenarios for add/update/refresh persistence. + - [ ] Tests (Robot) [Luis]: Add repository persistence smoke tests for skills. + - [ ] Tests (ASV) [Luis]: Add `benchmarks/skill_registry_persist_bench.py` for persistence overhead. + - [ ] Quality [Luis]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Luis]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Luis]: `git commit -m "feat(skill): persist flattened tool sets"` + - [ ] Git [Luis]: `git push -u origin feature/m4-skill-registry-db` + - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-skill-registry-db` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Aditya | Group: SK3.cli | Branch: feature/m4-skill-registry-cli | Planned: Day 18 | Expected: Day 26) - Commit message: "feat(cli): add skill tools and refresh commands"** + - [ ] Git [Aditya]: `git checkout master` + - [ ] Git [Aditya]: `git pull origin master` + - [ ] Git [Aditya]: `git checkout -b feature/m4-skill-registry-cli` + - [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Aditya]: Add `agents skill tools ` to show flattened tool list and capability summary. + - [ ] Code [Aditya]: Add `agents skill refresh |--all` to recompute flattening and sync MCP-backed skills. + - [ ] Code [Aditya]: Update `skill list/show` output with includes, tool counts, and capability summary fields. + - [ ] Code [Aditya]: Add `--format json/yaml` output schema for tools/refresh output. + - [ ] Code [Aditya]: Add CLI errors for refresh when skill not found or MCP sync fails. + - [ ] Docs [Aditya]: Update CLI reference with skill tools/refresh examples and output columns. + - [ ] Docs [Aditya]: Document refresh side effects and caching behavior. + - [ ] Tests (Behave) [Aditya]: Add `features/skill_cli.feature` scenarios for tools/refresh and list/show output. + - [ ] Tests (Robot) [Aditya]: Add `robot/skill_cli.robot` for CLI smoke tests. + - [ ] Tests (ASV) [Aditya]: Add `benchmarks/skill_cli_bench.py` for CLI overhead baseline. + - [ ] Quality [Aditya]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Aditya]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Aditya]: `git commit -m "feat(cli): add skill tools and refresh commands"` + - [ ] Git [Aditya]: `git push -u origin feature/m4-skill-registry-cli` + - [ ] Forgejo PR [Aditya]: Open PR from `feature/m4-skill-registry-cli` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Aditya | Group: SK4.refresh | Branch: feature/m4-skill-registry-refresh | Planned: Day 19 | Expected: Day 26) - Commit message: "feat(skill): add MCP refresh hooks"** + - [ ] Git [Aditya]: `git checkout master` + - [ ] Git [Aditya]: `git pull origin master` + - [ ] Git [Aditya]: `git checkout -b feature/m4-skill-registry-refresh` + - [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Aditya]: Implement `SkillRegistry.refresh(name)` and `refresh_all()` to recompute flattened tool sets on demand. + - [ ] Code [Aditya]: Wire MCP `notifications/tools/list_changed` to trigger skill refresh and registry cache invalidation. + - [ ] Code [Aditya]: Add safeguard to skip refresh when tool registry is unavailable; emit a single warning with recovery steps. + - [ ] Code [Aditya]: Add refresh debounce window to avoid repeated refresh storms from MCP notifications. + - [ ] Code [Aditya]: Add refresh result summary (skills refreshed, failures) for CLI output. + - [ ] Docs [Aditya]: Add `docs/reference/skill_refresh.md` with MCP refresh behavior and troubleshooting. + - [ ] Docs [Aditya]: Document debounce defaults and manual refresh usage. + - [ ] Tests (Behave) [Aditya]: Add `features/skill_refresh.feature` scenarios for MCP update propagation. + - [ ] Tests (Robot) [Aditya]: Add `robot/skill_refresh.robot` for refresh smoke tests. + - [ ] Tests (ASV) [Aditya]: Add `benchmarks/skill_refresh_bench.py` for refresh overhead. + - [ ] Quality [Aditya]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Aditya]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Aditya]: `git commit -m "feat(skill): add MCP refresh hooks"` + - [ ] Git [Aditya]: `git push -u origin feature/m4-skill-registry-refresh` + - [ ] Forgejo PR [Aditya]: Open PR from `feature/m4-skill-registry-refresh` to `master` with a suitable and thorough description + - [ ] **COMMIT (Owner: Brent | Group: M2.tests | Branch: feature/m2-actor-tool-smoke | Planned: Day 17 | Expected: Day 18) - Commit message: "test(e2e): add M2 actor + tool source smoke suite"** - [ ] Git [Brent]: `git checkout master` - [ ] Git [Brent]: `git pull origin master` @@ -2458,10 +2578,10 @@ This section replaces all unfinished work items with the Day 14 plan. Work is or **SEQUENTIAL ORDER**: M3.1 -> M3.2 -> M3.3 (decision persistence before CLI explain/tree) -- [ ] **COMMIT (Owner: Hamza | Group: M3.1.decision-domain | Branch: feature/m3-decision-domain | Planned: Day 19 | Expected: Day 20) - Commit message: "feat(decision): add decision domain and context snapshots"** +- [ ] **COMMIT (Owner: Hamza | Group: M3.1.decision-domain | Branch: feature/m4-decision-domain | Planned: Day 19 | Expected: Day 20) - Commit message: "feat(decision): add decision domain and context snapshots"** - [ ] Git [Hamza]: `git checkout master` - [ ] Git [Hamza]: `git pull origin master` - - [ ] Git [Hamza]: `git checkout -b feature/m3-decision-domain` + - [ ] Git [Hamza]: `git checkout -b feature/m4-decision-domain` - [ ] Code [Hamza]: Implement decision domain model and context snapshot structures per spec. - [ ] Docs [Hamza]: Update `docs/reference/decision_model.md` with decision fields and lifecycle. - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) @@ -2472,49 +2592,115 @@ This section replaces all unfinished work items with the Day 14 plan. Work is or - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - [ ] Git [Hamza]: `git commit -m "feat(decision): add decision domain and context snapshots"` - - [ ] Git [Hamza]: `git push -u origin feature/m3-decision-domain` - - [ ] Forgejo PR [Hamza]: Open PR from `feature/m3-decision-domain` to `master` with a suitable and thorough description + - [ ] Git [Hamza]: `git push -u origin feature/m4-decision-domain` + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-domain` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Hamza | Group: M3.2.decision-persistence | Branch: feature/m3-decision-persistence | Planned: Day 20 | Expected: Day 21) - Commit message: "feat(decision): add decision persistence"** +- [ ] **COMMIT (Owner: Hamza | Group: M3.2.decision-persistence | Branch: feature/m4-decision-persistence | Planned: Day 20 | Expected: Day 21) - Commit message: "feat(decision): add decision persistence"** - [ ] Git [Hamza]: `git checkout master` - [ ] Git [Hamza]: `git pull origin master` - - [ ] Git [Hamza]: `git checkout -b feature/m3-decision-persistence` + - [ ] Git [Hamza]: `git checkout -b feature/m4-decision-persistence` - [ ] Code [Hamza]: Add decision tables, repositories, and migrations aligned to the decision domain model. + - [ ] Code [Hamza]: Add indexes for plan_id, decision_type, and superseded flags; ensure deterministic ordering for stored decision payloads. + - [ ] Code [Hamza]: Implement DecisionRepository + ContextSnapshotRepository with tree queries, superseded lookup, and ordered decision path retrieval. - [ ] Docs [Hamza]: Update `docs/reference/database_schema.md` with decision tables. - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Tests (Behave) [Hamza]: Add scenarios for decision persistence and retrieval. + - [ ] Tests (Behave) [Hamza]: Add scenarios for decision persistence, repository queries, and superseded retrieval. - [ ] Tests (Robot) [Hamza]: Add Robot integration tests for decision persistence. - [ ] Tests (ASV) [Hamza]: Add `benchmarks/decision_persistence_bench.py` for repo overhead. - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - [ ] Git [Hamza]: `git commit -m "feat(decision): add decision persistence"` - - [ ] Git [Hamza]: `git push -u origin feature/m3-decision-persistence` - - [ ] Forgejo PR [Hamza]: Open PR from `feature/m3-decision-persistence` to `master` with a suitable and thorough description + - [ ] Git [Hamza]: `git push -u origin feature/m4-decision-persistence` + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-persistence` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Jeff | Group: M3.3.plan-explain | Branch: feature/m3-plan-explain | Planned: Day 20 | Expected: Day 21) - Commit message: "feat(cli): add plan explain and decision tree outputs"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m3-plan-explain` - - [ ] Code [Jeff]: Add `plan explain` and `plan tree` CLI output with decision tree formatting (json/yaml/table). - - [ ] Docs [Jeff]: Update `docs/reference/plan_cli.md` with explain/tree examples. - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Tests (Behave) [Jeff]: Add scenarios for explain/tree output in multiple formats. - - [ ] Tests (Robot) [Jeff]: Add Robot CLI test for `plan explain` output fields. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/plan_explain_bench.py` for output generation. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(cli): add plan explain and decision tree outputs"` - - [ ] Git [Jeff]: `git push -u origin feature/m3-plan-explain` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-plan-explain` to `master` with a suitable and thorough description +- [ ] **COMMIT (Owner: Hamza | Group: M3.2b.decision-service | Branch: feature/m4-decision-service | Planned: Day 22 | Expected: Day 26) - Commit message: "feat(service): add decision recording and snapshot store"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m4-decision-service` + - [ ] Code [Hamza]: Implement `DecisionService` with record/list/tree helpers and snapshot storage. + - [ ] Docs [Hamza]: Add `docs/reference/decision_service.md` covering recording and snapshots. + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Tests (Behave) [Hamza]: Add `features/decision_recording.feature` scenarios. + - [ ] Tests (Robot) [Hamza]: Add `robot/decision_recording.robot` integration smoke tests. + - [ ] Tests (ASV) [Hamza]: Add `benchmarks/decision_recording_bench.py` for record throughput. + - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes. + - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Hamza]: `git commit -m "feat(service): add decision recording and snapshot store"` + - [ ] Git [Hamza]: `git push -u origin feature/m4-decision-service` + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-service` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Luis | Group: M3.4.validation-runner | Branch: feature/m3-validation-runner | Planned: Day 20 | Expected: Day 22) - Commit message: "feat(validation): add validation runner and apply gating"** +- [ ] **COMMIT (Owner: Luis | Group: M3.2c.decision-di | Branch: feature/m4-decision-di | Planned: Day 26 | Expected: Day 26) - Commit message: "feat(di): wire decision services"** - [ ] Git [Luis]: `git checkout master` - [ ] Git [Luis]: `git pull origin master` - - [ ] Git [Luis]: `git checkout -b feature/m3-validation-runner` + - [ ] Git [Luis]: `git checkout -b feature/m4-decision-di` + - [ ] Code [Luis]: Wire decision repositories + services into DI and CLI. + - [ ] Code [Luis]: Inject DecisionService into PlanLifecycleService so strategize/execute can record decisions automatically. + - [ ] Docs [Luis]: Update DI docs for decision wiring. + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Tests (Behave) [Luis]: Add DI wiring scenarios for decision commands. + - [ ] Tests (Robot) [Luis]: Add CLI smoke test using persisted decisions. + - [ ] Tests (ASV) [Luis]: Add `benchmarks/decision_di_bench.py` for DI resolution overhead. + - [ ] Quality [Luis]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Luis]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Luis]: `git commit -m "feat(di): wire decision services"`. + - [ ] Git [Luis]: `git push -u origin feature/m4-decision-di` + - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-decision-di` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Hamza | Group: M3.3.plan-explain | Branch: feature/m4-decision-cli | Planned: Day 20 | Expected: Day 21) - Commit message: "feat(cli): add plan explain and decision tree outputs"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m4-decision-cli` + - [ ] Code [Hamza]: Add `plan explain` and `plan tree` CLI output with decision tree formatting (json/yaml/table) and flags for superseded/context/reasoning views. + - [ ] Docs [Hamza]: Update `docs/reference/plan_cli.md` with explain/tree examples. + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Tests (Behave) [Hamza]: Add scenarios for explain/tree output in multiple formats. + - [ ] Tests (Robot) [Hamza]: Add Robot CLI test for `plan explain` output fields. + - [ ] Tests (ASV) [Hamza]: Add `benchmarks/plan_explain_bench.py` for output generation. + - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Hamza]: `git commit -m "feat(cli): add plan explain and decision tree outputs"` + - [ ] Git [Hamza]: `git push -u origin feature/m4-decision-cli` + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-cli` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Luis | Group: M3.4a.validation-pipeline | Branch: feature/m3-validation-pipeline | Planned: Day 21 | Expected: Day 22) - Commit message: "feat(validation): add validation pipeline and results model"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m3-validation-pipeline` + - [ ] Code [Luis]: Implement ValidationCommand, ValidationResult, and ValidationPipeline using Validation attachments from Tool Registry. + - [ ] Code [Luis]: Run validations at end of Execute phase only; do not re-run during Apply per spec. + - [ ] Code [Luis]: Enforce required vs informational validation modes and fix-then-revalidate loop hooks. + - [ ] Code [Luis]: Persist validation summary into Plan metadata for later review. + - [ ] Code [Luis]: Sort validations by (resource, mode, validation name) for deterministic execution order. + - [ ] Code [Luis]: Add per-validation timeout and capture stdout/stderr in ValidationResult for troubleshooting. + - [ ] Code [Luis]: Group validations by resource and cap parallel validation concurrency per resource type. + - [ ] Code [Luis]: Normalize validation output to `passed/message/data` schema even for tool errors. + - [ ] Code [Luis]: Add aggregation helper to compute counts (required_passed, required_failed, info_failed) for CLI display. + - [ ] Code [Luis]: Add guard to skip validations on read-only resources when validation requires write access (should never happen). + - [ ] Docs [Luis]: Add `docs/reference/validation_pipeline.md` with ordering, timeouts, and failure handling. + - [ ] Docs [Luis]: Document concurrency limits and output normalization rules. + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Tests (Behave) [Luis]: Add `features/validation_pipeline.feature` for pass/fail paths and required/informational modes. + - [ ] Tests (Robot) [Luis]: Add `robot/validation_pipeline.robot` for pipeline smoke tests. + - [ ] Tests (ASV) [Luis]: Add `benchmarks/validation_pipeline_bench.py` for pipeline runtime. + - [ ] Quality [Luis]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Luis]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Luis]: `git commit -m "feat(validation): add validation pipeline and results model"` + - [ ] Git [Luis]: `git push -u origin feature/m3-validation-pipeline` + - [ ] Forgejo PR [Luis]: Open PR from `feature/m3-validation-pipeline` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Luis | Group: M3.4.validation-runner | Branch: feature/m3-validation-apply | Planned: Day 20 | Expected: Day 22) - Commit message: "feat(validation): add validation runner and apply gating"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m3-validation-apply` - [ ] Code [Luis]: Implement validation runner executing validation attachments and aggregating required/informational results. + - [ ] Code [Luis]: Support wrapped tool validations with transform mappings and consistent output schema normalization. - [ ] Code [Luis]: Wire Apply pipeline gating to block on required validation failures and record summaries on the plan. + - [ ] Code [Luis]: Surface validation summary fields in `plan status`/`plan diff` outputs (required vs informational counts, failures). - [ ] Docs [Luis]: Update `docs/reference/validation_runner.md` with lifecycle and result schema. - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Tests (Behave) [Luis]: Add scenarios for validation runner success/failure and required vs informational behavior. @@ -2524,8 +2710,8 @@ This section replaces all unfinished work items with the Day 14 plan. Work is or - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - [ ] Git [Luis]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - [ ] Git [Luis]: `git commit -m "feat(validation): add validation runner and apply gating"` - - [ ] Git [Luis]: `git push -u origin feature/m3-validation-runner` - - [ ] Forgejo PR [Luis]: Open PR from `feature/m3-validation-runner` to `master` with a suitable and thorough description + - [ ] Git [Luis]: `git push -u origin feature/m3-validation-apply` + - [ ] Forgejo PR [Luis]: Open PR from `feature/m3-validation-apply` to `master` with a suitable and thorough description - [X] **COMMIT (Owner: Jeff | Group: M3.5.invariants | Branch: feature/m3-invariants | Planned: Day 21 | Expected: Day 22) - Commit message: "feat(invariant): add invariant models and enforcement"** Done: 2026-02-22 - [X] Git [Jeff]: `git checkout master` @@ -2546,6 +2732,28 @@ This section replaces all unfinished work items with the Day 14 plan. Work is or - [X] Git [Jeff]: `git push -u origin feature/m3-invariants` - [X] Forgejo PR [Jeff]: Open PR from `feature/m3-invariants` to `master` with a suitable and thorough description +- [ ] **COMMIT (Owner: Luis | Group: M3.6.definition-of-done | Branch: feature/m4-definition-of-done | Planned: Day 26 | Expected: Day 26) - Commit message: "feat(dod): enforce definition-of-done gating"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m4-definition-of-done` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Luis]: Evaluate `definition_of_done` before apply; block apply with clear error if unmet. + - [ ] Code [Luis]: Ensure DoD templating uses plan arguments and preserves template in plan metadata. + - [ ] Code [Luis]: Add DoD evaluation hook to capture pass/fail reasoning and store in plan validation summary. + - [ ] Code [Luis]: Add DoD evaluator interface with a default text matcher implementation (regex/substring checks). + - [ ] Code [Luis]: Add CLI output in `plan status` showing DoD evaluation summary (passed/failed + message). + - [ ] Docs [Luis]: Add `docs/reference/definition_of_done.md` with examples. + - [ ] Docs [Luis]: Include a template rendering example with plan args and a failure output example. + - [ ] Tests (Behave) [Luis]: Add DoD pass/fail scenarios. + - [ ] Tests (Robot) [Luis]: Add DoD integration smoke test. + - [ ] Tests (ASV) [Luis]: Add `benchmarks/dod_evaluation_bench.py` for evaluation overhead. + - [ ] Quality [Luis]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Luis]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Luis]: `git commit -m "feat(dod): enforce definition-of-done gating"`. + - [ ] Git [Luis]: `git push -u origin feature/m4-definition-of-done` + - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-definition-of-done` to `master` with a suitable and thorough description + - [ ] **COMMIT (Owner: Brent | Group: M3.tests | Branch: feature/m3-decision-validation-smoke | Planned: Day 21 | Expected: Day 22) - Commit message: "test(e2e): add M3 decision + validation suites"** - [ ] Git [Brent]: `git checkout master` - [ ] Git [Brent]: `git pull origin master` @@ -2563,6 +2771,24 @@ This section replaces all unfinished work items with the Day 14 plan. Work is or - [ ] Git [Brent]: `git push -u origin feature/m3-decision-validation-smoke` - [ ] Forgejo PR [Brent]: Open PR from `feature/m3-decision-validation-smoke` to `master` with a suitable and thorough description +- [ ] **COMMIT (Owner: Brent | Group: M3.7.decision-tests | Branch: feature/m4-decision-tests | Planned: Day 27 | Expected: Day 27) - Commit message: "test(persistence): add decision persistence suites"** + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git pull origin master` + - [ ] Git [Brent]: `git checkout -b feature/m4-decision-tests` + - [ ] Tests (Behave) [Brent]: Add `features/decision_persistence.feature` scenarios. + - [ ] Tests (Behave) [Brent]: Add scenarios for superseded decisions, correction attempts, and tree depth filtering. + - [ ] Tests (Behave) [Brent]: Add output snapshots for `plan explain --format json` and `plan tree --format yaml`. + - [ ] Tests (Robot) [Brent]: Add `robot/decision_persistence.robot` E2E coverage. + - [ ] Docs [Brent]: Update `docs/development/testing.md` with decision suites. + - [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Tests (ASV) [Brent]: Add `benchmarks/decision_persistence_bench.py` for DB persistence throughput. + - [ ] Quality [Brent]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Brent]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Brent]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Brent]: `git commit -m "test(persistence): add decision persistence suites"`. + - [ ] Git [Brent]: `git push -u origin feature/m4-decision-tests` + - [ ] Forgejo PR [Brent]: Open PR from `feature/m4-decision-tests` to `master` with a suitable and thorough description + #### M4: Corrections + Subplans + Checkpoints (Day 22) **Parallel Group M4: Correction Engine + Subplan Execution + Checkpoints** @@ -2638,6 +2864,49 @@ This section replaces all unfinished work items with the Day 14 plan. Work is or - [ ] Git [Luis]: `git push -u origin feature/m4-subplan-execution` - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-subplan-execution` to `master` with a suitable and thorough description +- [ ] **COMMIT (Owner: Jeff | Group: M4.5.phase-reversion | Branch: feature/m4-phase-reversion | Planned: Day 21 | Expected: Day 26) - Commit message: "feat(plan): add phase reversion state machine"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m4-phase-reversion` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Jeff]: Implement Execute-to-Strategize reversion in `PlanLifecycleService` when constraints are too restrictive (validation failures block apply and automation profile permits reversion). + - [ ] Code [Jeff]: Implement Apply-to-Strategize reversion from `constrained` terminal state, resetting phase to Strategize with preserved context and sandbox state. + - [ ] Code [Jeff]: Add `auto_reversion_from_apply` threshold check from the resolved `AutomationProfile` — only auto-revert if the profile's `auto_reversion_from_apply` flag is set. + - [ ] Code [Jeff]: Record each reversion as a `reversion` decision in the plan's decision tree with source phase, target phase, reason, and timestamp. + - [ ] Code [Jeff]: Wire reversion into `PlanLifecycleService` phase transition logic with explicit guard against infinite reversion loops (max 3 reversions per plan execution). + - [ ] Code [Jeff]: Add `plan revert --to-phase ` CLI command for manual reversion. + - [ ] Docs [Jeff]: Add `docs/reference/phase_reversion.md` documenting reversion triggers, automation profile thresholds, and loop guards. + - [ ] Tests (Behave) [Jeff]: Add `features/phase_reversion.feature` with scenarios for auto-reversion, manual reversion, loop guard, and profile-gated behavior. + - [ ] Tests (Robot) [Jeff]: Add `robot/phase_reversion.robot` for end-to-end reversion flow. + - [ ] Tests (ASV) [Jeff]: Add `benchmarks/phase_reversion_bench.py` for reversion overhead. + - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Jeff]: `git commit -m "feat(plan): add phase reversion state machine"` + - [ ] Git [Jeff]: `git push -u origin feature/m4-phase-reversion` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-phase-reversion` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Luis | Group: M4.6.error-recovery | Branch: feature/m4-error-recovery | Planned: Day 22 | Expected: Day 26) - Commit message: "feat(plan): add error recovery patterns and CLI hints"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m4-error-recovery` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Luis]: Record `error_recovery` decision type in the decision tree during Execute phase failures, capturing error category, recovery action taken, and retry count. + - [ ] Code [Luis]: Add structured recovery hints to CLI error output (e.g., "use `agents plan prompt ` to resume", "use `agents plan revert --to-phase strategize` to restart strategy"). + - [ ] Code [Luis]: Wire retry/self-repair loop into Execute phase up to the configured retry limit from the automation profile (`max_retries` field). + - [ ] Code [Luis]: Add `plan errors ` CLI command that shows all error decisions with recovery hints and retry history. + - [ ] Code [Luis]: Capture structured error metadata (phase, actor, tool_call, stack_summary) into `error_details` JSON field on plan. + - [ ] Docs [Luis]: Add `docs/reference/error_recovery.md` documenting error categories, recovery patterns per phase, and retry behavior. + - [ ] Tests (Behave) [Luis]: Add `features/error_recovery.feature` with scenarios for retry exhaustion, recovery hint output, and error decision recording. + - [ ] Tests (Robot) [Luis]: Add `robot/error_recovery.robot` for end-to-end error and recovery flow. + - [ ] Tests (ASV) [Luis]: Add `benchmarks/error_recovery_bench.py` for error handling overhead. + - [ ] Quality [Luis]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Luis]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Luis]: `git commit -m "feat(plan): add error recovery patterns and CLI hints"` + - [ ] Git [Luis]: `git push -u origin feature/m4-error-recovery` + - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-error-recovery` to `master` with a suitable and thorough description + - [ ] **COMMIT (Owner: Brent | Group: M4.tests | Branch: feature/m4-correction-subplan-smoke | Planned: Day 24 | Expected: Day 25) - Commit message: "test(e2e): add M4 correction + subplan suites"** - [ ] Git [Brent]: `git checkout master` - [ ] Git [Brent]: `git pull origin master` @@ -2675,12 +2944,155 @@ This section replaces all unfinished work items with the Day 14 plan. Work is or - [ ] Git [Hamza]: `git push -u origin feature/m5-acms-context` - [ ] Forgejo PR [Hamza]: Open PR from `feature/m5-acms-context` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Hamza | Group: M5.2.context-indexing | Branch: feature/m5-context-indexing | Planned: Day 27 | Expected: Day 28) - Commit message: "feat(context): add repo indexing service"** +**Parallel Group M5b: ACMS Component Buildout (UKO + CRP + Strategy + Fusion + Scoped Views + Skeleton)** + +- [ ] **COMMIT (Owner: Hamza | Group: ACMS1.uko | Branch: feature/m6-acms-uko-schema | Planned: Day 26 | Expected: Day 31) - Commit message: "feat(uko): add UKO ontology scaffolding"** - [ ] Git [Hamza]: `git checkout master` - [ ] Git [Hamza]: `git pull origin master` - - [ ] Git [Hamza]: `git checkout -b feature/m5-context-indexing` - - [ ] Code [Hamza]: Implement repository indexing for 10K+ file projects with hot/warm/cold tiers. - - [ ] Docs [Hamza]: Update `docs/reference/context_indexing.md` with indexing modes and limits. + - [ ] Git [Hamza]: `git checkout -b feature/m6-acms-uko-schema` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Hamza]: Add UKO Layer 0-3 ontology skeleton (RDF/TTL) under `docs/ontology/uko.ttl` with version headers. + - [ ] Code [Hamza]: Define base URI, version IRI, and prefix conventions for layers and language-specific nodes. + - [ ] Code [Hamza]: Add minimal Layer 0 nodes (Resource, Artifact, CodeArtifact, Document) to allow end-to-end parsing. + - [ ] Code [Hamza]: Add Python loaders for UKO nodes (URI parsing, inheritance, versioning metadata). + - [ ] Code [Hamza]: Add a validation pass that rejects undefined prefixes and missing `rdf:type` for nodes. + - [ ] Code [Hamza]: Add ontology version registry (current version + supported versions) for future migrations. + - [ ] Code [Hamza]: Add unit helper to resolve layer inheritance (Layer 3 -> 2 -> 1 -> 0). + - [ ] Docs [Hamza]: Add `docs/reference/uko.md` describing layers, URI format, and extension points. + - [ ] Docs [Hamza]: Add a minimal example ontology snippet and parsing walkthrough. + - [ ] Tests (Behave) [Hamza]: Add `features/uko_ontology.feature` for URI parsing and inheritance checks. + - [ ] Tests (Robot) [Hamza]: Add `robot/uko_ontology.robot` smoke tests for ontology load. + - [ ] Tests (ASV) [Hamza]: Add `benchmarks/uko_load_bench.py` for load throughput. + - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Hamza]: `git commit -m "feat(uko): add UKO ontology scaffolding"` + - [ ] Git [Hamza]: `git push -u origin feature/m6-acms-uko-schema` + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-acms-uko-schema` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Jeff | Group: ACMS2.crp | Branch: feature/m6-acms-crp-models | Planned: Day 27 | Expected: Day 31) - Commit message: "feat(acms): add context request protocol models"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m6-acms-crp-models` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Jeff]: Add `ContextRequest`, `ContextFragment`, `DetailLevel`, and `ContextBudget` models with validation. + - [ ] Code [Jeff]: Add built-in `builtin/context` skill with tools `request_context`, `query_history`, and `get_context_budget` (stubbed to ACMS). + - [ ] Code [Jeff]: Add `ContextRequest` fields for `focus`, `breadth`, `depth`, `strategy`, `temporal_scope`, and `skeleton_ratio` with defaulting rules. + - [ ] Code [Jeff]: Add `ContextFragment` metadata (uko_uri, provenance, relevance_score, token_count, detail_level) and enforce token_count >= 0. + - [ ] Code [Jeff]: Add `DetailLevelMap` registry with name->integer resolution and inheritance support. + - [ ] Code [Jeff]: Add `ContextRequest` validation for invalid depth names and unknown strategies. + - [ ] Docs [Jeff]: Add `docs/reference/crp.md` with request fields, detail levels, and examples. + - [ ] Docs [Jeff]: Document `DetailLevelMap` resolution rules and defaults. + - [ ] Tests (Behave) [Jeff]: Add `features/crp_models.feature` for validation and serialization ordering. + - [ ] Tests (Robot) [Jeff]: Add `robot/crp_models.robot` smoke tests. + - [ ] Tests (ASV) [Jeff]: Add `benchmarks/crp_model_bench.py` for validation throughput. + - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Jeff]: `git commit -m "feat(acms): add context request protocol models"` + - [ ] Git [Jeff]: `git push -u origin feature/m6-acms-crp-models` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-acms-crp-models` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Hamza | Group: ACMS3.strategy | Branch: feature/m6-acms-strategy-registry | Planned: Day 27 | Expected: Day 31) - Commit message: "feat(acms): add context strategy registry"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m6-acms-strategy-registry` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Hamza]: Define `ContextStrategy` interface and StrategyRegistry with plugin discovery. + - [ ] Code [Hamza]: Add stub strategies (keyword, semantic, graph, temporal) with feature flags and no-op defaults. + - [ ] Code [Hamza]: Add `ContextStrategyResult` model (fragments, stats, errors) with deterministic ordering. + - [ ] Code [Hamza]: Add configuration to enable/disable strategies per project context policy. + - [ ] Code [Hamza]: Add per-strategy timeout and max-fragment limits in registry config. + - [ ] Code [Hamza]: Add registry validation that strategies declare supported resource types. + - [ ] Docs [Hamza]: Add `docs/reference/context_strategies.md` with strategy contracts and outputs. + - [ ] Docs [Hamza]: Document strategy config keys (timeouts, max fragments, enable/disable). + - [ ] Tests (Behave) [Hamza]: Add `features/context_strategy_registry.feature` for registration and selection. + - [ ] Tests (Robot) [Hamza]: Add `robot/context_strategy_registry.robot` smoke tests. + - [ ] Tests (ASV) [Hamza]: Add `benchmarks/context_strategy_bench.py` for registry lookup. + - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Hamza]: `git commit -m "feat(acms): add context strategy registry"` + - [ ] Git [Hamza]: `git push -u origin feature/m6-acms-strategy-registry` + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-acms-strategy-registry` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Jeff | Group: ACMS4.fusion | Branch: feature/m6-acms-fusion-engine | Planned: Day 28 | Expected: Day 31) - Commit message: "feat(acms): add strategy coordinator and fusion engine"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m6-acms-fusion-engine` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Jeff]: Implement StrategyCoordinator with parallel execution and budget allocation. + - [ ] Code [Jeff]: Implement FusionEngine to dedupe fragments, resolve detail conflicts, and pack within budget. + - [ ] Code [Jeff]: Allocate budget proportionally by strategy confidence and enforce per-strategy max caps. + - [ ] Code [Jeff]: Add greedy knapsack packing with deterministic tie-breakers (relevance, detail level, token count). + - [ ] Code [Jeff]: Add fragment dedupe by UKO URI + hash of rendered text to avoid duplicates across strategies. + - [ ] Code [Jeff]: Add budget overage guard to drop lowest-relevance fragments and emit warnings. + - [ ] Docs [Jeff]: Add `docs/reference/acms_fusion.md` with flow diagrams and budget semantics. + - [ ] Docs [Jeff]: Document StrategyCoordinator execution order and error handling. + - [ ] Tests (Behave) [Jeff]: Add `features/acms_fusion.feature` for dedupe and budget enforcement. + - [ ] Tests (Robot) [Jeff]: Add `robot/acms_fusion.robot` integration smoke tests. + - [ ] Tests (ASV) [Jeff]: Add `benchmarks/acms_fusion_bench.py` for fusion runtime. + - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Jeff]: `git commit -m "feat(acms): add strategy coordinator and fusion engine"` + - [ ] Git [Jeff]: `git push -u origin feature/m6-acms-fusion-engine` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-acms-fusion-engine` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Hamza | Group: ACMS5.scoped | Branch: feature/m6-acms-scoped-view | Planned: Day 28 | Expected: Day 31) - Commit message: "feat(acms): add scoped backend view filtering"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m6-acms-scoped-view` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Hamza]: Implement ScopedBackendView that filters text/vector/graph queries to project resources. + - [ ] Code [Hamza]: Add enforcement hooks in context retrieval services and StrategyCoordinator. + - [ ] Code [Hamza]: Add allowlist/denylist resolution for resource scopes using project resource links and aliases. + - [ ] Code [Hamza]: Log and reject context requests that reference resources outside scope (security guard). + - [ ] Code [Hamza]: Add unit helper to resolve alias -> resource_id mapping and validate uniqueness. + - [ ] Code [Hamza]: Add guard for mixed project scopes (explicit error when request spans unlinked projects). + - [ ] Docs [Hamza]: Add `docs/reference/scoped_backend_view.md` with security guarantees. + - [ ] Docs [Hamza]: Add examples of allowlist/denylist configurations. + - [ ] Tests (Behave) [Hamza]: Add `features/scoped_view.feature` for cross-project isolation. + - [ ] Tests (Robot) [Hamza]: Add `robot/scoped_view.robot` smoke tests. + - [ ] Tests (ASV) [Hamza]: Add `benchmarks/scoped_view_bench.py` for filter overhead. + - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Hamza]: `git commit -m "feat(acms): add scoped backend view filtering"` + - [ ] Git [Hamza]: `git push -u origin feature/m6-acms-scoped-view` + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-acms-scoped-view` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Jeff | Group: ACMS6.skeleton | Branch: feature/m6-acms-skeleton-compress | Planned: Day 29 | Expected: Day 31) - Commit message: "feat(acms): add skeleton compressor"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m6-acms-skeleton-compress` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Jeff]: Implement skeleton compressor that produces compressed inherited context with `skeleton_ratio`. + - [ ] Code [Jeff]: Integrate skeleton output into subplan context inheritance and strategy coordinator budgets. + - [ ] Code [Jeff]: Add stable ordering for compressed fragments to avoid non-deterministic context payloads. + - [ ] Code [Jeff]: Persist skeleton metadata (ratio, token counts, source decision IDs) for auditability. + - [ ] Code [Jeff]: Add `skeleton_ratio` validation (0.0-1.0) and default handling per plan. + - [ ] Code [Jeff]: Add compression summary (original tokens vs compressed tokens) stored in plan metadata. + - [ ] Docs [Jeff]: Add `docs/reference/skeleton_compressor.md` with ratios and examples. + - [ ] Docs [Jeff]: Add example of skeleton output for a multi-decision plan. + - [ ] Tests (Behave) [Jeff]: Add `features/skeleton_compressor.feature` for compression thresholds. + - [ ] Tests (Robot) [Jeff]: Add `robot/skeleton_compressor.robot` smoke tests. + - [ ] Tests (ASV) [Jeff]: Add `benchmarks/skeleton_compressor_bench.py` for compression overhead. + - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Jeff]: `git commit -m "feat(acms): add skeleton compressor"` + - [ ] Git [Jeff]: `git push -u origin feature/m6-acms-skeleton-compress` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-acms-skeleton-compress` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Hamza | Group: M5.2.context-indexing | Branch: feature/m4-context-indexing | Planned: Day 27 | Expected: Day 28) - Commit message: "feat(context): add repo indexing service"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m4-context-indexing` + - [ ] Code [Hamza]: Implement repository indexing for 10K+ file projects with incremental refresh and language detection. + - [ ] Code [Hamza]: Persist index metadata (resource_id, indexed_at, file_count, token_estimate) and per-file records with hashes. + - [ ] Code [Hamza]: Enforce include/exclude globs and max file/total size limits from project context policy. + - [ ] Docs [Hamza]: Update `docs/reference/context_indexing.md` with indexing modes, limits, and refresh behavior. - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Tests (Behave) [Hamza]: Add scenarios for indexing large projects and tiered loading. - [ ] Tests (Robot) [Hamza]: Add Robot tests for project show and indexing metrics. @@ -2689,8 +3101,8 @@ This section replaces all unfinished work items with the Day 14 plan. Work is or - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - [ ] Git [Hamza]: `git commit -m "feat(context): add repo indexing service"` - - [ ] Git [Hamza]: `git push -u origin feature/m5-context-indexing` - - [ ] Forgejo PR [Hamza]: Open PR from `feature/m5-context-indexing` to `master` with a suitable and thorough description + - [ ] Git [Hamza]: `git push -u origin feature/m4-context-indexing` + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-context-indexing` to `master` with a suitable and thorough description - [X] **COMMIT (Owner: Jeff | Group: M5.3.automation-profiles | Branch: feature/m5-automation-profiles | Planned: Day 27 | Expected: Day 28) - Commit message: "feat(automation): add automation profiles and guards"** Done: 2026-02-22 - [X] Git [Jeff]: `git checkout master` @@ -2709,6 +3121,75 @@ This section replaces all unfinished work items with the Day 14 plan. Work is or - [X] Git [Jeff]: `git push -u origin feature/m5-automation-profiles` - [X] Forgejo PR [Jeff]: Open PR from `feature/m5-automation-profiles` to `master` with a suitable and thorough description +**Parallel Group M5c: Subplan Expansion (Spawn Tooling + Service + Multi-Project)** + +- [ ] **COMMIT (Owner: Jeff | Group: M5c.subplan-service | Branch: feature/m5-subplan-service | Planned: Day 26 | Expected: Day 28) - Commit message: "feat(service): add subplan service and spawn workflow"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m5-subplan-service` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Jeff]: Add subplan service that builds child plans from DecisionService spawn entries and SubplanConfig. + - [ ] Code [Jeff]: Persist subplan spawn metadata (spawn_decision_id, parent/root plan ids, execution mode) for status output. + - [ ] Code [Jeff]: Add subplan spawn validation (resource scopes resolved, merge strategy defined, max_parallel bounds). + - [ ] Docs [Jeff]: Add `docs/reference/subplan_service.md` with spawn workflow and lifecycle. + - [ ] Tests (Behave) [Jeff]: Add scenarios for spawn workflow and invalid spawn payloads. + - [ ] Tests (Robot) [Jeff]: Add subplan spawn integration smoke tests. + - [ ] Tests (ASV) [Jeff]: Add `benchmarks/subplan_spawn_bench.py` for spawn throughput. + - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Jeff]: `git commit -m "feat(service): add subplan service and spawn workflow"` + - [ ] Git [Jeff]: `git push -u origin feature/m5-subplan-service` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m5-subplan-service` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Aditya | Group: M5c.subplan-actor | Branch: feature/m5-subplan-actor | Planned: Day 26 | Expected: Day 28) - Commit message: "feat(actor): add plan_subplan tool and decision emission"** + - [ ] Git [Aditya]: `git checkout master` + - [ ] Git [Aditya]: `git pull origin master` + - [ ] Git [Aditya]: `git checkout -b feature/m5-subplan-actor` + - [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Aditya]: Add `plan_subplan` tool to strategy actors and emit SUBPLAN_SPAWN decisions. + - [ ] Code [Aditya]: Support `parallel=true` to emit SUBPLAN_PARALLEL_SPAWN and include dependency list. + - [ ] Code [Aditya]: Include merge strategy, resource scope, and context view overrides in decision payload. + - [ ] Code [Aditya]: Validate that subplan tool payload includes at least one resource scope or project ref. + - [ ] Code [Aditya]: Add schema validation for `max_parallel`, `merge_strategy`, and dependency list in tool payload. + - [ ] Code [Aditya]: Add defaulting rules for omitted fields (inherit from action/plan; explicit override markers). + - [ ] Code [Aditya]: Emit decision rationale text with summary of why subplan was spawned (for explain output). + - [ ] Docs [Aditya]: Update actor YAML examples for subplan emission. + - [ ] Docs [Aditya]: Add a minimal `plan_subplan` tool payload example and a parallel spawn example with dependencies. + - [ ] Tests (Behave) [Aditya]: Add scenarios for subplan decision emission (parallel + dependencies). + - [ ] Tests (Robot) [Aditya]: Add actor tool integration smoke tests. + - [ ] Tests (ASV) [Aditya]: Add `benchmarks/subplan_actor_tool_bench.py` for tool invocation overhead. + - [ ] Quality [Aditya]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Aditya]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Aditya]: `git commit -m "feat(actor): add plan_subplan tool and decision emission"` + - [ ] Git [Aditya]: `git push -u origin feature/m5-subplan-actor` + - [ ] Forgejo PR [Aditya]: Open PR from `feature/m5-subplan-actor` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Hamza | Group: M5c.multi-project | Branch: feature/m5-multi-project | Planned: Day 29 | Expected: Day 28) - Commit message: "feat(plan): add multi-project subplan support"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m5-multi-project` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Hamza]: Allow plans to target multiple projects with separate resource link contexts. + - [ ] Code [Hamza]: Ensure sandbox isolation and cross-project dependency resolution. + - [ ] Code [Hamza]: Add plan metadata to track project-specific ChangeSets and validation summaries. + - [ ] Code [Hamza]: Add project-scoped context view resolution so each subplan only sees its project resources. + - [ ] Code [Hamza]: Add `ProjectLink` alias resolution rules for multi-project plans (unique alias per plan). + - [ ] Code [Hamza]: Add CLI output for `plan status` to show per-project ChangeSet summaries. + - [ ] Code [Hamza]: Enforce that a plan cannot mix read-only and write-capable projects without explicit override. + - [ ] Docs [Hamza]: Add `docs/reference/multi_project_plans.md`. + - [ ] Docs [Hamza]: Add examples for multi-project `plan use` and explain alias resolution. + - [ ] Tests (Behave) [Hamza]: Add multi-project subplan scenarios. + - [ ] Tests (Robot) [Hamza]: Add multi-project integration tests. + - [ ] Tests (ASV) [Hamza]: Add `benchmarks/multi_project_bench.py` for multi-project overhead. + - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Hamza]: `git commit -m "feat(plan): add multi-project subplan support"` + - [ ] Git [Hamza]: `git push -u origin feature/m5-multi-project` + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m5-multi-project` to `master` with a suitable and thorough description + - [ ] **COMMIT (Owner: Brent | Group: M5.tests | Branch: feature/m5-acms-smoke | Planned: Day 28 | Expected: Day 28) - Commit message: "test(e2e): add M5 ACMS + context suites"** - [ ] Git [Brent]: `git checkout master` - [ ] Git [Brent]: `git pull origin master` @@ -2729,7 +3210,28 @@ This section replaces all unfinished work items with the Day 14 plan. Work is or #### M6: Autonomy Hardening + Server Stubs (Day 30) **Parallel Group M6: ACP Stubs + Autonomy Guardrails + Final Acceptance** -- [X] **COMMIT (Owner: Jeff | Group: M6.1.acp-stubs | Branch: feature/m6-acp-stubs | Planned: Day 29 | Expected: Day 30) - Commit message: "feat(acp): add local facade and server stubs"** +- [ ] **COMMIT (Owner: Luis | Group: M6.1.server-stubs | Branch: feature/m6-server-stubs | Planned: Day 29 | Expected: Day 30) - Commit message: "feat(interfaces): add server client stubs"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m6-server-stubs` + - [ ] Code [Luis]: Add protocol stubs for `ServerClient`, `RemoteExecutionClient`, and `AuthClient` with NotImplementedError. + - [ ] Code [Luis]: Add `ServerConnectionConfig` model (server_url, namespace, auth_token_ref, tls_verify) with validation. + - [ ] Code [Luis]: Add config keys (`core.server_url`, `core.server_namespace`, `core.server_tls_verify`) and load from config/env. + - [ ] Code [Luis]: Add `agents connect ` CLI stub that persists server_url and prints explicit stub warning. + - [ ] Code [Luis]: Add `agents info` output field for Server Mode: `disabled` vs `stubbed` (based on config). + - [ ] Docs [Luis]: Add `docs/reference/server_client_stubs.md` noting client-only behavior and config precedence. + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Tests (Behave) [Luis]: Add stub behavior scenarios and env var override/precedence checks. + - [ ] Tests (Robot) [Luis]: Add CLI stub smoke test. + - [ ] Tests (ASV) [Luis]: Add `benchmarks/server_stub_bench.py` baseline. + - [ ] Quality [Luis]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Luis]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Luis]: `git commit -m "feat(interfaces): add server client stubs"` + - [ ] Git [Luis]: `git push -u origin feature/m6-server-stubs` + - [ ] Forgejo PR [Luis]: Open PR from `feature/m6-server-stubs` to `master` with a suitable and thorough description + +- [X] **COMMIT (Owner: Jeff | Group: M6.2.acp-stubs | Branch: feature/m6-acp-stubs | Planned: Day 29 | Expected: Day 30) - Commit message: "feat(acp): add local facade and server stubs"** - [X] Git [Jeff]: `git checkout master` - [X] Git [Jeff]: `git pull origin master` - [X] Git [Jeff]: `git checkout -b feature/m6-acp-stubs` @@ -2746,7 +3248,26 @@ This section replaces all unfinished work items with the Day 14 plan. Work is or - [X] Git [Jeff]: `git push -u origin feature/m6-acp-stubs` - [X] Forgejo PR [Jeff]: Open PR from `feature/m6-acp-stubs` to `master` with a suitable and thorough description (PR #148) -- [ ] **COMMIT (Owner: Luis | Group: M6.2.autonomy-guards | Branch: feature/m6-autonomy-guards | Planned: Day 29 | Expected: Day 30) - Commit message: "feat(automation): add autonomy guardrails and audit trail"** +- [ ] **COMMIT (Owner: Jeff | Group: M6.4.lsp-stub | Branch: feature/m6-lsp-stub | Planned: Day 29 | Expected: Day 31) - Commit message: "feat(lsp): add LSP server stub"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m6-lsp-stub` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Jeff]: Add minimal LSP server entrypoint that supports initialize/shutdown and reports stubbed capability set. + - [ ] Code [Jeff]: Wire LSP requests to ACP facade (local mode) and return explicit "not implemented" responses for unsupported methods. + - [ ] Code [Jeff]: Add CLI command `agents lsp` to launch the stub server with logging and PID output. + - [ ] Docs [Jeff]: Add `docs/reference/lsp_stub.md` with usage notes and supported methods. + - [ ] Tests (Behave) [Jeff]: Add scenarios for LSP initialize/shutdown handshake and stub error responses. + - [ ] Tests (Robot) [Jeff]: Add Robot smoke test that launches the LSP stub and validates startup banner. + - [ ] Tests (ASV) [Jeff]: Add `benchmarks/lsp_stub_bench.py` for startup latency. + - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Jeff]: `git commit -m "feat(lsp): add LSP server stub"` + - [ ] Git [Jeff]: `git push -u origin feature/m6-lsp-stub` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-lsp-stub` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Luis | Group: M6.3.autonomy-guards | Branch: feature/m6-autonomy-guards | Planned: Day 29 | Expected: Day 30) - Commit message: "feat(automation): add autonomy guardrails and audit trail"** - [ ] Git [Luis]: `git checkout master` - [ ] Git [Luis]: `git pull origin master` - [ ] Git [Luis]: `git checkout -b feature/m6-autonomy-guards` @@ -2763,6 +3284,160 @@ This section replaces all unfinished work items with the Day 14 plan. Work is or - [ ] Git [Luis]: `git push -u origin feature/m6-autonomy-guards` - [ ] Forgejo PR [Luis]: Open PR from `feature/m6-autonomy-guards` to `master` with a suitable and thorough description +**Parallel Group M6b: Large Project Autonomy (Decomposition + Checkpoints + Semantic Validation + Context Tiers + Estimation + CLI Polish)** + +- [ ] **COMMIT (Owner: Jeff | Group: G1.decompose | Branch: feature/m6-large-decompose | Planned: Day 26 | Expected: Day 31) - Commit message: "feat(plan): add large-project decomposition and dependency closure"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m6-large-decompose` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Jeff]: Add hierarchical decomposition with 4+ levels and bounded context per subplan. + - [ ] Code [Jeff]: Implement decomposition heuristics (max_files_per_subplan, max_tokens_per_subplan, language/dir clustering). + - [ ] Code [Jeff]: Add dependency closure computation for large graphs and DAG execution ordering. + - [ ] Code [Jeff]: Add bounded dependency closure with cutoff thresholds and memoization for 10K+ files. + - [ ] Code [Jeff]: Record decomposition decisions in DecisionService (strategy_choice + subplan_spawn entries). + - [ ] Code [Jeff]: Add fallback decomposition strategy when heuristics fail (single subplan with warning). + - [ ] Code [Jeff]: Add config keys in Settings for `planner.max_depth`, `planner.max_files_per_subplan`, `planner.max_tokens_per_subplan`, `planner.min_files_per_subplan` with defaults. + - [ ] Code [Jeff]: Add deterministic clustering order (directory depth, language priority, file size) to make decomposition stable. + - [ ] Code [Jeff]: Add decomposition summary metrics (subplan count, max depth, avg size) stored in plan metadata. + - [ ] Code [Jeff]: Add guard to avoid spawning subplans when project is below threshold; default to single plan. + - [ ] Docs [Jeff]: Add `docs/reference/large_project_decomposition.md`. + - [ ] Docs [Jeff]: Document config keys, default thresholds, and example decomposition outputs. + - [ ] Tests (Behave) [Jeff]: Add deep hierarchy + dependency closure scenarios. + - [ ] Tests (Robot) [Jeff]: Add large-project decomposition integration tests. + - [ ] Tests (ASV) [Jeff]: Add `benchmarks/large_project_decompose_bench.py` for decomposition runtime. + - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Jeff]: `git commit -m "feat(plan): add large-project decomposition and dependency closure"` + - [ ] Git [Jeff]: `git push -u origin feature/m6-large-decompose` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-large-decompose` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Luis | Group: G2.checkpoint | Branch: feature/m6-checkpoint | Planned: Day 27 | Expected: Day 31) - Commit message: "feat(checkpoint): add checkpointing and rollback"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m6-checkpoint` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Luis]: Add checkpoint declarations for tools and plan-level rollback policy. + - [ ] Code [Luis]: Add `checkpoints` table (checkpoint_id ULID, plan_id, sandbox_ref, created_at, metadata_json). + - [ ] Code [Luis]: Implement `plan rollback ` command. + - [ ] Code [Luis]: Implement git-worktree checkpoint snapshots (commit hash or patch) and rollback restore. + - [ ] Code [Luis]: Wire rollback into decision correction revert flow for reuse. + - [ ] Code [Luis]: Add checkpoint retention policy (max checkpoints per plan) with auto-prune on new checkpoints. + - [ ] Code [Luis]: Store checkpoint reason/source (tool name, phase) in metadata for auditability. + - [ ] Code [Luis]: Add CLI output to `plan rollback` showing restored file counts and changed paths. + - [ ] Code [Luis]: Add guard preventing rollback when plan is applied or sandbox is missing. + - [ ] Docs [Luis]: Add `docs/reference/checkpointing.md`. + - [ ] Docs [Luis]: Include checkpoint retention defaults and rollback error cases. + - [ ] Tests (Behave) [Luis]: Add checkpoint/rollback scenarios. + - [ ] Tests (Robot) [Luis]: Add rollback integration tests. + - [ ] Tests (ASV) [Luis]: Add `benchmarks/checkpoint_rollback_bench.py` for rollback latency. + - [ ] Quality [Luis]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Luis]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Luis]: `git commit -m "feat(checkpoint): add checkpointing and rollback"` + - [ ] Git [Luis]: `git push -u origin feature/m6-checkpoint` + - [ ] Forgejo PR [Luis]: Open PR from `feature/m6-checkpoint` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Luis | Group: G3.semantic | Branch: feature/m6-semantic-validation | Planned: Day 27 | Expected: Day 31) - Commit message: "feat(validation): add semantic validation service"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m6-semantic-validation` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Luis]: Add semantic validation hooks during strategize/execute and error-pattern checks. + - [ ] Code [Luis]: Add built-in semantic checks for syntax errors, missing imports, and broken references for Python projects. + - [ ] Code [Luis]: Expose semantic validation as Validation tools so they can be attached per resource. + - [ ] Code [Luis]: Add rule registry for semantic validators (dependency cycles, API misuse, missing symbols). + - [ ] Code [Luis]: Integrate semantic validation results into ValidationPipeline as informational by default. + - [ ] Code [Luis]: Add config keys for enabling/disabling semantic validation per project and per plan (default on for Python). + - [ ] Code [Luis]: Add severity mapping (info/warn/error) and map required vs informational behavior. + - [ ] Code [Luis]: Add output schema normalization so validations return `passed`, `message`, and `data` fields consistently. + - [ ] Code [Luis]: Add caching for semantic checks keyed by file hash to avoid rework on unchanged files. + - [ ] Docs [Luis]: Add `docs/reference/semantic_validation.md`. + - [ ] Docs [Luis]: Add section on required vs informational validation attachment modes. + - [ ] Tests (Behave) [Luis]: Add semantic validation scenarios. + - [ ] Tests (Robot) [Luis]: Add semantic validation integration tests. + - [ ] Tests (ASV) [Luis]: Add `benchmarks/semantic_validation_bench.py` for validation cost. + - [ ] Quality [Luis]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Luis]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Luis]: `git commit -m "feat(validation): add semantic validation service"` + - [ ] Git [Luis]: `git push -u origin feature/m6-semantic-validation` + - [ ] Forgejo PR [Luis]: Open PR from `feature/m6-semantic-validation` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Hamza | Group: G4.context | Branch: feature/m6-context-tiers | Planned: Day 28 | Expected: Day 31) - Commit message: "feat(context): add hot/warm/cold tiers and actor views"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m6-context-tiers` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Hamza]: Implement hot/warm/cold tiers with indexing, LRU eviction, and promotion/demotion. + - [ ] Code [Hamza]: Add tier storage backends (in-memory hot, sqlite warm, file-backed cold). + - [ ] Code [Hamza]: Add per-actor context views (strategist/executor/reviewer) and filtered presentation. + - [ ] Code [Hamza]: Add summarization hook when demoting to cold tier. + - [ ] Code [Hamza]: Enforce project-scoped filtering (ScopedBackendView) so actors never see resources outside the plan's project set. + - [ ] Code [Hamza]: Add `skeleton_ratio` support to cap inherited context size for subplans. + - [ ] Code [Hamza]: Add tier budget settings (max_tokens_hot, max_decisions_warm, max_decisions_cold) and defaults per project. + - [ ] Code [Hamza]: Add deterministic ordering for tier retrieval (most-recent-first with stable tie-breakers). + - [ ] Code [Hamza]: Add cold-tier compaction job to merge adjacent summaries and cap file size. + - [ ] Code [Hamza]: Add metrics for tier hit/miss counts and expose via `agents diagnostics`. + - [ ] Docs [Hamza]: Add `docs/reference/context_tiers.md`. + - [ ] Docs [Hamza]: Document tier budgets, eviction rules, and summarization policy. + - [ ] Tests (Behave) [Hamza]: Add context tier scenarios. + - [ ] Tests (Robot) [Hamza]: Add context tier integration tests. + - [ ] Tests (ASV) [Hamza]: Add `benchmarks/context_tiers_bench.py` for tier lookup performance. + - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Hamza]: `git commit -m "feat(context): add hot/warm/cold tiers and actor views"` + - [ ] Git [Hamza]: `git push -u origin feature/m6-context-tiers` + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-context-tiers` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Hamza | Group: G5.estimate | Branch: feature/m6-estimation | Planned: Day 28 | Expected: Day 31) - Commit message: "feat(estimation): add cost and risk estimation actor"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m6-estimation` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Hamza]: Add optional `estimation_actor` role and cost/risk estimation outputs. + - [ ] Code [Hamza]: Persist estimation output to plan metadata (cost_estimate, risk_score, duration_estimate). + - [ ] Code [Hamza]: Invoke estimation during `plan use` and surface estimates in `plan status` output. + - [ ] Code [Hamza]: Add estimation output schema with currency, token estimates, and confidence ranges. + - [ ] Code [Hamza]: Add opt-out flag `--no-estimate` for `plan use` and persist `estimate_skipped` reason. + - [ ] Code [Hamza]: Add error handling when estimation actor fails (fallback to informational warning). + - [ ] Docs [Hamza]: Add `docs/reference/estimation.md` with output format. + - [ ] Docs [Hamza]: Add CLI examples showing estimate fields in `plan status` output. + - [ ] Tests (Behave) [Hamza]: Add estimation scenarios. + - [ ] Tests (Robot) [Hamza]: Add estimation integration smoke tests. + - [ ] Tests (ASV) [Hamza]: Add `benchmarks/estimation_actor_bench.py` for estimation runtime. + - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Hamza]: `git commit -m "feat(estimation): add cost and risk estimation actor"` + - [ ] Git [Hamza]: `git push -u origin feature/m6-estimation` + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-estimation` to `master` with a suitable and thorough description + +- [ ] **COMMIT (Owner: Jeff | Group: G6.cli | Branch: feature/m6-cli-polish | Planned: Day 29 | Expected: Day 31) - Commit message: "chore(cli): polish help and output"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m6-cli-polish` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Jeff]: Standardize help text, progress indicators, and error messages with recovery hints. + - [ ] Code [Jeff]: Ensure `--format` outputs are consistent (rich/color/table/plain/json/yaml) across core commands. + - [ ] Code [Jeff]: Ensure `plain` format uses ASCII-only output to support log pipelines. + - [ ] Code [Jeff]: Add stable column names and ordering for list commands (`action list`, `plan list`, `project list`, `resource list`). + - [ ] Code [Jeff]: Add `--format json/yaml` schema docs and align field names across commands. + - [ ] Code [Jeff]: Add unified error envelope for JSON/YAML outputs (`error.code`, `error.message`, `error.details`). + - [ ] Docs [Jeff]: Update CLI output examples where needed. + - [ ] Docs [Jeff]: Add a CLI output contract section in `docs/reference/cli_output.md`. + - [ ] Tests (Behave) [Jeff]: Add `features/cli_output_formats.feature` covering rich/plain/json/yaml formatting for core commands. + - [ ] Tests (Robot) [Jeff]: Add CLI UX smoke tests for critical commands. + - [ ] Tests (ASV) [Jeff]: Add `benchmarks/cli_render_bench.py` for output rendering overhead. + - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. + - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [ ] Git [Jeff]: `git commit -m "chore(cli): polish help and output"` + - [ ] Git [Jeff]: `git push -u origin feature/m6-cli-polish` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-cli-polish` to `master` with a suitable and thorough description + - [ ] **COMMIT (Owner: Brent | Group: M6.tests | Branch: feature/m6-autonomy-smoke | Planned: Day 30 | Expected: Day 30) - Commit message: "test(e2e): add M6 autonomy acceptance suite"** - [ ] Git [Brent]: `git checkout master` - [ ] Git [Brent]: `git pull origin master` @@ -4323,49 +4998,6 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [X] Git [Aditya]: `git branch -d feature/m3-skill-cli` - [X] Quality [Aditya]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. -**Parallel Group C0.agent-skills: Agent Skills Integration (M3)** - **PARALLEL SUBTRACK C0.agent-skills.loader [Aditya]**: SKILL.md loader + tool adapter - **PARALLEL SUBTRACK C0.agent-skills.registry [Jeff]**: discovery + registry integration - **SEQUENTIAL MERGE NOTE**: C0.agent-skills.loader → C0.agent-skills.registry. - -- [ ] **COMMIT (Owner: Aditya | Group: C0.agent-skills.loader | Branch: feature/m3-agent-skills-loader | Planned: Day 17 | Expected: Day 22) - Commit message: "feat(skill): add agent skills loader"** - - [ ] Git [Aditya]: `git checkout master` - - [ ] Git [Aditya]: `git pull origin master` - - [ ] Git [Aditya]: `git checkout -b feature/m3-agent-skills-loader` - - [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Aditya]: Add `AgentSkillSpec` loader that parses `SKILL.md` frontmatter + progressive disclosure sections into structured steps with stable ordering. - - [ ] Code [Aditya]: Map Agent Skills to Tool/Validation definitions with namespaced naming, resource binding slots, and read-only defaults. - - [ ] Code [Aditya]: Support `scripts/`, `references/`, and `assets/` folders with path normalization and safe read-only access rules. - - [ ] Docs [Aditya]: Add `docs/reference/agent_skills.md` describing folder layout, parsing rules, and tool mapping. - - [ ] Tests (Behave) [Aditya]: Add scenarios for valid/invalid SKILL.md parsing, namespaced naming, and step ordering. - - [ ] Tests (Robot) [Aditya]: Add Robot test that loads a sample Agent Skills folder and verifies tool metadata. - - [ ] Tests (ASV) [Aditya]: Add `benchmarks/agent_skills_loader_bench.py` for parsing throughput. - - [ ] Quality [Aditya]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Aditya]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Aditya]: `git commit -m "feat(skill): add agent skills loader"` - - [ ] Git [Aditya]: `git push -u origin feature/m3-agent-skills-loader` - - [ ] Forgejo PR [Aditya]: Open PR from `feature/m3-agent-skills-loader` to `master` with a suitable and thorough description - -- [ ] **COMMIT (Owner: Jeff | Group: C0.agent-skills.registry | Branch: feature/m3-agent-skills-registry | Planned: Day 18 | Expected: Day 22) - Commit message: "feat(skill): integrate agent skills discovery"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m3-agent-skills-registry` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Add config key `skills.agent_skills_paths` with default discovery path and allow multiple folders. - - [ ] Code [Jeff]: Register Agent Skills tools in ToolRegistry with `source=agent_skills` and include source metadata in `agents skill tools` output. - - [ ] Code [Jeff]: Add discovery refresh hook in SkillRegistryService and CLI `agents skill tools` to optionally re-scan Agent Skills paths. - - [ ] Docs [Jeff]: Update `docs/reference/skill_registry.md` and CLI reference with Agent Skills discovery behavior and output fields. - - [ ] Tests (Behave) [Jeff]: Add scenarios for discovery, refresh, and source metadata rendering. - - [ ] Tests (Robot) [Jeff]: Add Robot CLI test that lists Agent Skills tools with source metadata. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/agent_skills_discovery_bench.py` for discovery overhead. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(skill): integrate agent skills discovery"` - - [ ] Git [Jeff]: `git push -u origin feature/m3-agent-skills-registry` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-agent-skills-registry` to `master` with a suitable and thorough description - **Parallel Group C3: Actor Registry + CLI (M3)** **PARALLEL SUBTRACK C3.registry [Jeff]**: Actor registry persistence alignment **PARALLEL SUBTRACK C3.cli [Jeff]**: Actor CLI alignment to YAML-first config @@ -4550,68 +5182,6 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Quality [Aditya]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - [ ] Forgejo PR [Aditya]: Open PR from `develop-aditya` to `master` with a suitable and thorough description. -- [ ] **COMMIT (Owner: Jeff | Group: C2.compiler | Branch: feature/m3-actor-compiler | Planned: Day 14 | Expected: Day 22) - Commit message: "feat(actor): compile actor configs to LangGraph"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m3-actor-compiler` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Implement ActorCompiler that builds LangGraph for LLM, TOOL, and GRAPH actors with tool node wiring. - - [ ] Code [Jeff]: Resolve tool node references through Tool Registry and validate required bindings before compile. - - [ ] Code [Jeff]: Support validation nodes as first-class tool nodes and ensure they are marked read-only in compiled graphs. - - [ ] Code [Jeff]: Enforce deterministic node ordering in compiled graphs for stable test snapshots. - - [ ] Code [Jeff]: Emit compile-time diagnostics that include actor name, node id, and field path on error. - - [ ] Docs [Jeff]: Add `docs/reference/actors_compilation.md` covering compile outputs and error modes. - - [ ] Tests (Behave) [Jeff]: Add `features/actor_compilation.feature` for LLM/GRAPH compilation and tool node wiring. - - [ ] Tests (Robot) [Jeff]: Add `robot/actor_compilation.robot` smoke test compiling all examples. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/actor_compilation_bench.py` for compilation speed. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(actor): compile actor configs to LangGraph"` - - [ ] Git [Jeff]: `git push -u origin feature/m3-actor-compiler` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-actor-compiler` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Jeff | Group: C2.refs | Branch: feature/m3-actor-refs | Planned: Day 15 | Expected: Day 22) - Commit message: "feat(actor): resolve actor references and subgraphs"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m3-actor-refs` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Implement reference resolution, cycle detection, and subgraph wiring for actor refs. - - [ ] Code [Jeff]: Ensure cross-namespace reference resolution follows `[server:]namespace/name` rules. - - [ ] Code [Jeff]: Add explicit errors for ambiguous refs (same name in multiple registries) and include candidate list in error message. - - [ ] Code [Jeff]: Preserve parent/child graph boundaries and annotate compiled graphs with source actor names for debugging. - - [ ] Docs [Jeff]: Update `docs/reference/actors_compilation.md` with reference semantics. - - [ ] Tests (Behave) [Jeff]: Add `features/actor_reference_resolution.feature` for missing/recursive refs. - - [ ] Tests (Robot) [Jeff]: Add `robot/actor_reference_resolution.robot` for subgraph wiring. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/actor_reference_bench.py` for reference resolution performance. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(actor): resolve actor references and subgraphs"` - - [ ] Git [Jeff]: `git push -u origin feature/m3-actor-refs` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-actor-refs` to `master` with a suitable and thorough description - -**Parallel Group C2.context: Actor Context Commands [Jeff]** (depends on C2.loader; post-M2) -- [ ] **COMMIT (Owner: Jeff | Group: C2.context | Branch: feature/m3-actor-context | Planned: Day 17 | Expected: Day 22) - Commit message: "feat(cli): add actor context commands"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m3-actor-context` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Implement `agents actor context list/show/export/import/clear/remove` with `--all` and name filters per spec. - - [ ] Code [Jeff]: Ensure actor context storage uses configured data dir and supports JSON import/export format. - - [ ] Code [Jeff]: Add guardrails for missing contexts and unsafe overwrite confirmations. - - [ ] Code [Jeff]: Add stable sorting for `context list` and `context show` output fields (consistent across formats). - - [ ] Code [Jeff]: Enforce max context file size and return explicit error when exceeded. - - [ ] Docs [Jeff]: Update CLI reference with actor context examples and file format notes. - - [ ] Tests (Behave) [Jeff]: Add `features/actor_context_cli.feature` covering list/show/export/import/clear/remove. - - [ ] Tests (Robot) [Jeff]: Add `robot/actor_context_cli.robot` for context command smoke tests. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/actor_context_cli_bench.py` for command overhead. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(cli): add actor context commands"` - - [ ] Git [Jeff]: `git push -u origin feature/m3-actor-context` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-actor-context` to `master` with a suitable and thorough description - **Parallel Group C3: Skill Protocol & Context [Jeff]** (critical path; depends on C1) - [X] **COMMIT (Owner: Jeff | Group: C3.protocol | Branch: feature/m3-skill-protocol | Planned: Day 16 | Done: Day 12, February 20, 2026) - Commit message: "feat(skill): add skill protocol and metadata"** - [X] Git [Jeff]: `git checkout master` @@ -4811,135 +5381,8 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Git [Luis]: `git push -u origin feature/m3-diff-review` - [ ] Forgejo PR [Luis]: Open PR from `feature/m3-diff-review` to `master` with a suitable and thorough description -**Parallel Group C6: Validation Pipeline [Luis + Jeff]** (depends on C5 and validation attachment config) -- [ ] **COMMIT (Owner: Luis | Group: C6.pipeline | Branch: feature/m3-validation-pipeline | Planned: Day 21 | Expected: Day 22) - Commit message: "feat(validation): add validation pipeline and results model"** - - [ ] Git [Luis]: `git checkout master` - - [ ] Git [Luis]: `git pull origin master` - - [ ] Git [Luis]: `git checkout -b feature/m3-validation-pipeline` - - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Luis]: Implement ValidationCommand, ValidationResult, and ValidationPipeline using Validation attachments from Tool Registry. - - [ ] Code [Luis]: Run validations at end of Execute phase only; do not re-run during Apply per spec. - - [ ] Code [Luis]: Enforce required vs informational validation modes and fix-then-revalidate loop hooks. - - [ ] Code [Luis]: Persist validation summary into Plan metadata for later review. - - [ ] Code [Luis]: Sort validations by (resource, mode, validation name) for deterministic execution order. - - [ ] Code [Luis]: Add per-validation timeout and capture stdout/stderr in ValidationResult for troubleshooting. - - [ ] Code [Luis]: Group validations by resource and cap parallel validation concurrency per resource type. - - [ ] Code [Luis]: Normalize validation output to `passed/message/data` schema even for tool errors. - - [ ] Code [Luis]: Add aggregation helper to compute counts (required_passed, required_failed, info_failed) for CLI display. - - [ ] Code [Luis]: Add guard to skip validations on read-only resources when validation requires write access (should never happen). - - [ ] Docs [Luis]: Add `docs/reference/validation_pipeline.md` with ordering, timeouts, and failure handling. - - [ ] Docs [Luis]: Document concurrency limits and output normalization rules. - - [ ] Tests (Behave) [Luis]: Add `features/validation_pipeline.feature` for pass/fail paths and required/informational modes. - - [ ] Tests (Robot) [Luis]: Add `robot/validation_pipeline.robot` for pipeline smoke tests. - - [ ] Tests (ASV) [Luis]: Add `benchmarks/validation_pipeline_bench.py` for pipeline runtime. - - [ ] Quality [Luis]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Luis]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Luis]: `git commit -m "feat(validation): add validation pipeline and results model"` - - [ ] Git [Luis]: `git push -u origin feature/m3-validation-pipeline` - - [ ] Forgejo PR [Luis]: Open PR from `feature/m3-validation-pipeline` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Jeff | Group: C6.wraps | Branch: feature/m3-validation-wraps | Planned: Day 21 | Expected: Day 22) - Commit message: "feat(validation): support wrapped tools and transforms"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m3-validation-wraps` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Implement validation `wraps` execution path that runs the wrapped Tool and captures its output. - - [ ] Code [Jeff]: Add transform engine that maps wrapped tool output into ValidationResult schema (must output `passed` boolean). - - [ ] Code [Jeff]: Enforce read-only constraints for validations even when wrapping write-capable tools; block if violation. - - [ ] Code [Jeff]: Validate transform output schema at runtime and surface schema errors with tool name + validation name. - - [ ] Code [Jeff]: Add guardrail that prevents `wraps` from invoking MCP tools in MVP (local-only) unless explicitly allowed. - - [ ] Code [Jeff]: Add transform sandboxing (no imports, no file/network access) with explicit allowlist of safe helpers. - - [ ] Code [Jeff]: Add transform execution timeout and max output size guard. - - [ ] Code [Jeff]: Persist wrapped tool raw output in ValidationResult.data when transform fails for debugging. - - [ ] Docs [Jeff]: Update `docs/reference/validation_model.md` with `wraps` + `transform` examples and safety rules. - - [ ] Docs [Jeff]: Add transform error handling examples (schema failure, timeout). - - [ ] Tests (Behave) [Jeff]: Add wrapped-validation scenarios with transform success/fail paths. - - [ ] Tests (Robot) [Jeff]: Add `robot/validation_wraps.robot` for wrapped validation end-to-end. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/validation_wraps_bench.py` for transform overhead. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(validation): support wrapped tools and transforms"` - - [ ] Git [Jeff]: `git push -u origin feature/m3-validation-wraps` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-validation-wraps` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Jeff | Group: C6.gating | Branch: feature/m3-validation-gating | Planned: Day 22 | Expected: Day 22) - Commit message: "feat(validation): integrate validation with apply gating"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m3-validation-gating` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Block apply on required validation failure; surface validation artifacts for review. - - [ ] Code [Jeff]: Ensure informational validation failures do not block apply but are logged in plan status. - - [ ] Code [Jeff]: Add CLI status output for validation summary (required vs informational counts). - - [ ] Code [Jeff]: Ensure automation profile gates (manual/review/full-auto) influence whether apply can proceed automatically. - - [ ] Code [Jeff]: Add explicit error when apply is attempted without Execute completion (phase/processing_state guard). - - [ ] Code [Jeff]: Add `plan status` fields for validation result IDs and last validation timestamp. - - [ ] Code [Jeff]: Add apply gating hook that checks DoD evaluation before validations (fail fast). - - [ ] Docs [Jeff]: Update `docs/reference/plan_actor_integration.md` with validation gating behavior. - - [ ] Docs [Jeff]: Add gating flow diagram with manual/review/full-auto branches. - - [ ] Tests (Behave) [Jeff]: Add `features/validation_gating.feature` for apply blocking. - - [ ] Tests (Robot) [Jeff]: Add `robot/validation_gating.robot` for end-to-end gating. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/validation_gating_bench.py` for gating overhead. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(validation): integrate validation with apply gating"` - - [ ] Git [Jeff]: `git push -u origin feature/m3-validation-gating` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-validation-gating` to `master` with a suitable and thorough description - -**Parallel Group C7: MCP Adapter [Aditya]** (depends on C0.runtime + C1.tool.registry) -- [ ] **COMMIT (Owner: Aditya | Group: C7.mcp | Branch: feature/m3-mcp-adapter | Planned: Day 18 | Expected: Day 22) - Commit message: "feat(skill): add MCP adapter for external tools"** - - [ ] Git [Aditya]: `git checkout master` - - [ ] Git [Aditya]: `git pull origin master` - - [ ] Git [Aditya]: `git checkout -b feature/m3-mcp-adapter` - - [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Aditya]: Implement MCP client adapter conforming to Tool interface with connection config. - - [ ] Code [Aditya]: Register MCP tools in Tool Registry with dynamic discovery from MCP server. - - [ ] Code [Aditya]: Add timeout and retry defaults for MCP calls (local-only for MVP). - - [ ] Code [Aditya]: Add connection health check and explicit error when MCP server is unreachable (include host/port). - - [ ] Code [Aditya]: Cache MCP tool discovery results and expose a manual refresh command in the registry service. - - [ ] Code [Aditya]: Add MCP server allowlist in config and block connections to non-allowlisted hosts. - - [ ] Code [Aditya]: Add per-tool capability mapping (read/write/checkpointable) from MCP metadata where provided. - - [ ] Code [Aditya]: Add local-only guard to prevent MCP execution in read-only plans unless tool is read-only. - - [ ] Docs [Aditya]: Add `docs/reference/skills_mcp.md` with server connection examples. - - [ ] Docs [Aditya]: Document allowlist config keys and refresh behavior. - - [ ] Docs [Aditya]: Add MCP config examples under `examples/tools/` with allowlist and connection settings. - - [ ] Tests (Behave) [Aditya]: Add scenarios that load MCP config examples and assert schema validation passes. - - [ ] Tests (Robot) [Aditya]: Add Robot test that loads MCP config examples. - - [ ] Tests (Behave) [Aditya]: Add `features/skill_mcp.feature` for MCP tool calls. - - [ ] Tests (Robot) [Aditya]: Add `robot/skill_mcp.robot` for MCP adapter smoke test. - - [ ] Tests (ASV) [Aditya]: Add `benchmarks/mcp_adapter_bench.py` for tool invocation latency. - - [ ] Quality [Aditya]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Aditya]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Aditya]: `git commit -m "feat(skill): add MCP adapter for external tools"`. - - [ ] Git [Aditya]: `git push -u origin feature/m3-mcp-adapter` - - [ ] Forgejo PR [Aditya]: Open PR from `feature/m3-mcp-adapter` to `master` with a suitable and thorough description - **NOTE**: C8.providers (built-in provider actors) DELETED — provider actors already exist via Jeff's combined batch work (5 LLM providers + actor registry). -**Parallel Group C9: Plan-Actor Integration (M3) [Jeff]** (depends on C2.loader/C3.compiler + C1.tool.cli + D0b.execute) - **SEQUENTIAL NOTE**: Replace M1 stub actors with compiled actors after actor registry + tool CLI land. -- [ ] **COMMIT (Owner: Jeff | Group: C9.execute | Branch: feature/m3-plan-actor-runtime | Planned: Day 22 | Expected: Day 22) - Commit message: "feat(plan): route strategize/execute through compiled actors"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m3-plan-actor-runtime` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Replace M1 stub actors with compiled actor graphs resolved from ActorRegistry (strategy/execution actors). - - [ ] Code [Jeff]: Pass plan context (projects, resources, invariants, automation profile) into actor runtime; enforce Strategize read-only constraints. - - [ ] Code [Jeff]: Route tool nodes through ToolRunner with binding resolution and sandbox paths; ensure ChangeSet capture remains intact. - - [ ] Code [Jeff]: Record Strategize decisions into plan metadata (temporary JSON) until DecisionService lands; include decision IDs once D3 is available. - - [ ] Code [Jeff]: Add explicit errors for missing actor configs, compile failures, and tool binding failures with actionable messages. - - [ ] Docs [Jeff]: Update `docs/reference/plan_execute.md` with compiled actor runtime notes and failure modes. - - [ ] Tests (Behave) [Jeff]: Add scenarios for compiled actor execution, missing actor errors, and tool binding failures. - - [ ] Tests (Robot) [Jeff]: Add Robot end-to-end test that executes a compiled actor graph with tool calls. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/plan_actor_runtime_bench.py` for compiled execution overhead. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(plan): route strategize/execute through compiled actors"` - - [ ] Git [Jeff]: `git push -u origin feature/m3-plan-actor-runtime` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-plan-actor-runtime` to `master` with a suitable and thorough description - **M3 SUCCESS CRITERIA**: - Actor YAML schema validated; examples load and compile to LangGraph. - Skills execute via SkillContext; built-in file/dir/search/git skills available. @@ -4960,9 +5403,7 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled **Parallel Group D0: ChangeSet + Apply MVP (M1-critical)** **PARALLEL SUBTRACK D0.alpha [Jeff]**: ChangeSet model + tool change capture - **PARALLEL SUBTRACK D0.beta [Luis]**: Apply pipeline + validation gate - **PARALLEL SUBTRACK D0.tests [Brent]**: ChangeSet/apply test coverage - **SEQUENTIAL MERGE NOTE**: D0.alpha must land before D0.beta; D0.tests runs after both. + **SEQUENTIAL MERGE NOTE**: D0.alpha must land before apply pipeline work in M1. - [X] **COMMIT (Owner: Jeff | Group: D0.alpha | Branch: feature/m1-changeset-core | Planned: Day 9 | Done: Day 9, February 17, 2026 09:01:17 +0000) - Commit message: "feat(execute): add changeset model and change capture"** - [X] Git [Jeff]: `git checkout master` @@ -4985,42 +5426,6 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [X] Git [Jeff]: `git branch -d feature/m1-changeset-core` - [X] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. -- [ ] **COMMIT (Owner: Luis | Group: D0.beta | Branch: feature/m1-apply-pipeline | Planned: Day 9 | Expected: Day 15) - Commit message: "feat(apply): add validation-gated apply pipeline"** - - [ ] Git [Luis]: `git checkout master` - - [ ] Git [Luis]: `git pull origin master` - - [ ] Git [Luis]: `git checkout -b feature/m1-apply-pipeline` - - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Luis]: Implement Apply pipeline that merges ChangeSet into the real resource only when required validations pass; set plan apply outcome to `applied` or `constrained` accordingly. - - [ ] Code [Luis]: Add `ApplyService` and integrate with PlanLifecycleService `apply_plan()` flow (persist summary + timestamps + apply outcome). - - [ ] Code [Luis]: Add minimal validation gate stub (`ValidationResult.passed`) and block Apply on failures with `constrained` state and actionable error message. - - [ ] Docs [Luis]: Add `docs/reference/apply_pipeline.md` with flow diagram and failure cases. - - [ ] Tests (Behave) [Luis]: Add scenarios for apply success, validation failure, and idempotent re-apply blocking. - - [ ] Tests (Robot) [Luis]: Add Robot test that applies a ChangeSet and verifies disk changes. - - [ ] Tests (ASV) [Luis]: Add `benchmarks/apply_pipeline_bench.py` for apply runtime baseline. - - [ ] Quality [Luis]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Luis]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Luis]: `git commit -m "feat(apply): add validation-gated apply pipeline"` - - [ ] Git [Luis]: `git push -u origin feature/m1-apply-pipeline` - - [ ] Forgejo PR [Luis]: Open PR from `feature/m1-apply-pipeline` to `master` with a suitable and thorough description - -- [ ] **COMMIT (Owner: Brent | Group: D0.tests | Branch: feature/m1-apply-tests | Planned: Day 10 | Expected: Day 17) - Commit message: "test(apply): cover changeset and apply pipeline"** - - [ ] Git [Brent]: `git checkout master` - - [ ] Git [Brent]: `git pull origin master` - - [ ] Git [Brent]: `git checkout -b feature/m1-apply-tests` - - [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Tests (Behave) [Brent]: Add ChangeSet/apply scenarios for multiple file changes and rollback on validation failure. - - [ ] Tests (Behave) [Brent]: Add scenarios asserting apply summary fields in `plan status` output. - - [ ] Tests (Robot) [Brent]: Add Robot suite that exercises sandbox → changeset → apply flow. - - [ ] Docs [Brent]: Update `docs/development/testing.md` with apply pipeline suites. - - [ ] Tests (ASV) [Brent]: Add `benchmarks/apply_tests_bench.py` for test runtime baseline. - - [ ] Quality [Brent]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Brent]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Brent]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Brent]: `git commit -m "test(apply): cover changeset and apply pipeline"` - - [ ] Git [Brent]: `git push -u origin feature/m1-apply-tests` - - [ ] Forgejo PR [Brent]: Open PR from `feature/m1-apply-tests` to `master` with a suitable and thorough description - - [X] **COMMIT (Owner: Jeff | Group: D0b.execute | Branch: feature/m1-plan-execute | Planned: Day 11 | Expected: Day 13) - Commit message: "feat(plan): execute strategize and execute via actors"** - [X] Git [Jeff]: `git checkout master` @@ -5046,7 +5451,6 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [X] Git [Jeff]: `git commit -m "feat(plan): execute strategize and execute via actors"` - [X] Git [Jeff]: `git push -u origin feature/m1-plan-execute` - [X] Forgejo PR [Jeff]: Open PR from `feature/m1-plan-execute` to `master` with a suitable and thorough description. -- [X] **COMMIT (Owner: Jeff | Group: D0b.apply | Branch: feature/m2-plan-apply-review | Planned: Day 12 | Expected: Day 15) - Commit message: "feat(plan): add diff review and apply integration"** - [X] **COMMIT (Owner: Jeff | Group: D0b.apply | Branch: feature/m2-plan-apply-review | Planned: Day 12 | Expected: Day 15) - Commit message: "feat(plan): add diff review and apply integration"** - [X] Git [Jeff]: `git checkout master` - [X] Git [Jeff]: `git pull origin master` @@ -5069,353 +5473,8 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [X] Forgejo PR [Jeff]: Open PR from `feature/m2-plan-apply-review` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Luis | Group: D1.apply | Branch: feature/m3-validation-apply | Planned: Day 15 | Expected: Day 21) - Commit message: "feat(apply): run validation attachments"** - - [ ] Git [Luis]: `git checkout master` - - [ ] Git [Luis]: `git pull origin master` - - [ ] Git [Luis]: `git checkout -b feature/m3-validation-apply` - - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Luis]: Add `ValidationRunner` integration that executes attached validations before Apply. - - [ ] Code [Luis]: Block Apply on `required` validation failures and record results in plan metadata. - - [ ] Docs [Luis]: Add `docs/reference/validation_pipeline.md` with required vs informational behavior. - - [ ] Tests (Behave) [Luis]: Add scenarios for required failure blocking and informational pass-through. - - [ ] Tests (Robot) [Luis]: Add Robot test that attaches a validation and verifies apply gating. - - [ ] Tests (ASV) [Luis]: Add `benchmarks/validation_pipeline_bench.py` for validation runtime baseline. - - [ ] Quality [Luis]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes. - - [ ] Git [Luis]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Luis]: `git commit -m "feat(apply): run validation attachments"` - - [ ] Git [Luis]: `git push -u origin feature/m3-validation-apply` - - [ ] Forgejo PR [Luis]: Open PR from `feature/m3-validation-apply` to `master` with a suitable and thorough description - -- [ ] **COMMIT (Owner: Jeff | Group: D1.cli | Branch: feature/m3-validation-status | Planned: Day 16 | Expected: Day 22) - Commit message: "feat(cli): surface validation summaries"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m3-validation-status` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Add validation summary output to `plan status` and `plan list`. - - [ ] Docs [Jeff]: Update CLI reference with validation summary fields. - - [ ] Tests (Behave) [Jeff]: Add scenarios for validation summary rendering. - - [ ] Tests (Robot) [Jeff]: Add Robot test that shows validation results in plan status. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/validation_status_bench.py` for output rendering overhead. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(cli): surface validation summaries"` - - [ ] Git [Jeff]: `git push -u origin feature/m3-validation-status` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-validation-status` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Jeff | Group: D1b.reversion | Branch: feature/m4-phase-reversion | Planned: Day 21 | Expected: Day 26) - Commit message: "feat(plan): add phase reversion state machine"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m4-phase-reversion` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Implement Execute-to-Strategize reversion in `PlanLifecycleService` when constraints are too restrictive (validation failures block apply and automation profile permits reversion). - - [ ] Code [Jeff]: Implement Apply-to-Strategize reversion from `constrained` terminal state, resetting phase to Strategize with preserved context and sandbox state. - - [ ] Code [Jeff]: Add `auto_reversion_from_apply` threshold check from the resolved `AutomationProfile` — only auto-revert if the profile's `auto_reversion_from_apply` flag is set. - - [ ] Code [Jeff]: Record each reversion as a `reversion` decision in the plan's decision tree with source phase, target phase, reason, and timestamp. - - [ ] Code [Jeff]: Wire reversion into `PlanLifecycleService` phase transition logic with explicit guard against infinite reversion loops (max 3 reversions per plan execution). - - [ ] Code [Jeff]: Add `plan revert --to-phase ` CLI command for manual reversion. - - [ ] Docs [Jeff]: Add `docs/reference/phase_reversion.md` documenting reversion triggers, automation profile thresholds, and loop guards. - - [ ] Tests (Behave) [Jeff]: Add `features/phase_reversion.feature` with scenarios for auto-reversion, manual reversion, loop guard, and profile-gated behavior. - - [ ] Tests (Robot) [Jeff]: Add `robot/phase_reversion.robot` for end-to-end reversion flow. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/phase_reversion_bench.py` for reversion overhead. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(plan): add phase reversion state machine"` - - [ ] Git [Jeff]: `git push -u origin feature/m4-phase-reversion` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-phase-reversion` to `master` with a suitable and thorough description - -- [ ] **COMMIT (Owner: Luis | Group: D1b.recovery | Branch: feature/m4-error-recovery | Planned: Day 22 | Expected: Day 26) - Commit message: "feat(plan): add error recovery patterns and CLI hints"** - - [ ] Git [Luis]: `git checkout master` - - [ ] Git [Luis]: `git pull origin master` - - [ ] Git [Luis]: `git checkout -b feature/m4-error-recovery` - - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Luis]: Record `error_recovery` decision type in the decision tree during Execute phase failures, capturing error category, recovery action taken, and retry count. - - [ ] Code [Luis]: Add structured recovery hints to CLI error output (e.g., "use `agents plan prompt ` to resume", "use `agents plan revert --to-phase strategize` to restart strategy"). - - [ ] Code [Luis]: Wire retry/self-repair loop into Execute phase up to the configured retry limit from the automation profile (`max_retries` field). - - [ ] Code [Luis]: Add `plan errors ` CLI command that shows all error decisions with recovery hints and retry history. - - [ ] Code [Luis]: Capture structured error metadata (phase, actor, tool_call, stack_summary) into `error_details` JSON field on plan. - - [ ] Docs [Luis]: Add `docs/reference/error_recovery.md` documenting error categories, recovery patterns per phase, and retry behavior. - - [ ] Tests (Behave) [Luis]: Add `features/error_recovery.feature` with scenarios for retry exhaustion, recovery hint output, and error decision recording. - - [ ] Tests (Robot) [Luis]: Add `robot/error_recovery.robot` for end-to-end error and recovery flow. - - [ ] Tests (ASV) [Luis]: Add `benchmarks/error_recovery_bench.py` for error handling overhead. - - [ ] Quality [Luis]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Luis]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Luis]: `git commit -m "feat(plan): add error recovery patterns and CLI hints"` - - [ ] Git [Luis]: `git push -u origin feature/m4-error-recovery` - - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-error-recovery` to `master` with a suitable and thorough description - - -- [ ] **COMMIT (Owner: Hamza | Group: D2.model | Branch: feature/m4-invariant-model | Planned: Day 19 | Expected: Day 26) - Commit message: "feat(domain): add invariant model and storage"** - - [ ] Git [Hamza]: `git checkout master` - - [ ] Git [Hamza]: `git pull origin master` - - [ ] Git [Hamza]: `git checkout -b feature/m4-invariant-model` - - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Hamza]: Add `Invariant` model with scope (global/project/action/plan), text, and source references. - - [ ] Code [Hamza]: Add persistence tables for invariants with precedence ordering. - - [ ] Docs [Hamza]: Add `docs/reference/invariants.md` with precedence rules. - - [ ] Tests (Behave) [Hamza]: Add scenarios for invariant validation and precedence ordering. - - [ ] Tests (Robot) [Hamza]: Add Robot test that lists invariants by scope. - - [ ] Tests (ASV) [Hamza]: Add `benchmarks/invariant_model_bench.py` for validation throughput. - - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes. - - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Hamza]: `git commit -m "feat(domain): add invariant model and storage"` - - [ ] Git [Hamza]: `git push -u origin feature/m4-invariant-model` - - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-invariant-model` to `master` with a suitable and thorough description - -- [ ] **COMMIT (Owner: Jeff | Group: D2.reconcile | Branch: feature/m4-invariant-reconcile | Planned: Day 20 | Expected: Day 26) - Commit message: "feat(plan): reconcile invariants in strategize"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m4-invariant-reconcile` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Add Invariant Reconciliation Actor invocation at the start of Strategize. - - [ ] Code [Jeff]: Record `invariant_enforced` decisions and persist resolved invariants into plan metadata. - - [ ] Docs [Jeff]: Add `docs/reference/invariant_reconciliation.md` describing conflict resolution. - - [ ] Tests (Behave) [Jeff]: Add scenarios for precedence resolution and decision recording. - - [ ] Tests (Robot) [Jeff]: Add Robot test that reconciles invariants during plan use. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/invariant_reconcile_bench.py` for reconciliation overhead. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(plan): reconcile invariants in strategize"` - - [ ] Git [Jeff]: `git push -u origin feature/m4-invariant-reconcile` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-invariant-reconcile` to `master` with a suitable and thorough description - -- [ ] **COMMIT (Owner: Jeff | Group: D2.cli | Branch: feature/m4-invariant-cli | Planned: Day 21 | Expected: Day 26) - Commit message: "feat(cli): add invariant commands"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m4-invariant-cli` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Implement `agents invariant add/list/remove` with scope flags and namespaced filters. - - [ ] Docs [Jeff]: Update CLI reference with invariant command examples. - - [ ] Tests (Behave) [Jeff]: Add scenarios for add/list/remove across scopes. - - [ ] Tests (Robot) [Jeff]: Add Robot CLI test for invariant list output. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/invariant_cli_bench.py` for CLI parsing overhead. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(cli): add invariant commands"` - - [ ] Git [Jeff]: `git push -u origin feature/m4-invariant-cli` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-invariant-cli` to `master` with a suitable and thorough description - -**Parallel Group D3: Decision Tree (M4)** - **PARALLEL SUBTRACK D3.domain [Hamza]**: Decision model + context snapshots - **PARALLEL SUBTRACK D3.service [Hamza]**: Decision recording service - **PARALLEL SUBTRACK D3.cli [Hamza]**: Plan tree/explain CLI - **SEQUENTIAL MERGE NOTE**: D3.domain → D3.service → D3.cli. - -- [ ] **COMMIT (Owner: Hamza | Group: D3.domain | Branch: feature/m4-decision-domain | Planned: Day 21 | Expected: Day 26) - Commit message: "feat(domain): add decision model and context snapshots"** - - [ ] Git [Hamza]: `git checkout master` - - [ ] Git [Hamza]: `git pull origin master` - - [ ] Git [Hamza]: `git checkout -b feature/m4-decision-domain` - - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Hamza]: Add `DecisionType`, `ContextSnapshot`, and `Decision` models with correction fields. - - [ ] Docs [Hamza]: Add `docs/reference/decision_model.md` with examples and schema notes. - - [ ] Tests (Behave) [Hamza]: Add `features/decision_model.feature` for validation and helpers. - - [ ] Tests (Robot) [Hamza]: Add `robot/decision_model.robot` smoke tests. - - [ ] Tests (ASV) [Hamza]: Add `benchmarks/decision_model_bench.py` for decision validation throughput. - - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes. - - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Hamza]: `git commit -m "feat(domain): add decision model and context snapshots"` - - [ ] Git [Hamza]: `git push -u origin feature/m4-decision-domain` - - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-domain` to `master` with a suitable and thorough description - -- [ ] **COMMIT (Owner: Hamza | Group: D3.service | Branch: feature/m4-decision-service | Planned: Day 22 | Expected: Day 26) - Commit message: "feat(service): add decision recording and snapshot store"** - - [ ] Git [Hamza]: `git checkout master` - - [ ] Git [Hamza]: `git pull origin master` - - [ ] Git [Hamza]: `git checkout -b feature/m4-decision-service` - - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Hamza]: Implement `DecisionService` with record/list/tree helpers and snapshot storage. - - [ ] Docs [Hamza]: Add `docs/reference/decision_service.md` covering recording and snapshots. - - [ ] Tests (Behave) [Hamza]: Add `features/decision_recording.feature` scenarios. - - [ ] Tests (Robot) [Hamza]: Add `robot/decision_recording.robot` integration smoke tests. - - [ ] Tests (ASV) [Hamza]: Add `benchmarks/decision_recording_bench.py` for record throughput. - - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes. - - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Hamza]: `git commit -m "feat(service): add decision recording and snapshot store"` - - [ ] Git [Hamza]: `git push -u origin feature/m4-decision-service` - - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-service` to `master` with a suitable and thorough description - -- [ ] **COMMIT (Owner: Hamza | Group: D3.cli | Branch: feature/m4-decision-cli | Planned: Day 23 | Expected: Day 26) - Commit message: "feat(cli): add plan tree and explain commands"** - - [ ] Git [Hamza]: `git checkout master` - - [ ] Git [Hamza]: `git pull origin master` - - [ ] Git [Hamza]: `git checkout -b feature/m4-decision-cli` - - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Hamza]: Implement `plan tree` and `plan explain` with `--show-superseded`, `--show-context`, and `--show-reasoning`. - - [ ] Docs [Hamza]: Update CLI reference for decision viewing commands. - - [ ] Tests (Behave) [Hamza]: Add tree/explain scenarios including superseded handling. - - [ ] Tests (Robot) [Hamza]: Add `robot/decision_cli.robot` smoke tests. - - [ ] Tests (ASV) [Hamza]: Add `benchmarks/decision_cli_bench.py` for tree rendering overhead. - - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes. - - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Hamza]: `git commit -m "feat(cli): add plan tree and explain commands"` - - [ ] Git [Hamza]: `git push -u origin feature/m4-decision-cli` - - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-cli` to `master` with a suitable and thorough description - -**Parallel Group D4: Decision Correction (M4)** - **PARALLEL SUBTRACK D4.revert [Jeff]**: Revert corrections - **PARALLEL SUBTRACK D4.append [Jeff]**: Append corrections - **SEQUENTIAL MERGE NOTE**: D4.revert lands before D4.append. - -- [ ] **COMMIT (Owner: Jeff | Group: D4.revert | Branch: feature/m4-decision-revert | Planned: Day 24 | Expected: Day 26) - Commit message: "feat(service): add decision correction revert flow"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m4-decision-revert` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Implement correction impact analysis, dry-run report, and revert execution. - - [ ] Docs [Jeff]: Add `docs/reference/decision_correction.md` for revert behavior and dry-run output. - - [ ] Tests (Behave) [Jeff]: Add revert + dry-run scenarios. - - [ ] Tests (Robot) [Jeff]: Add revert integration tests with checkpoint rollback. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/decision_correction_revert_bench.py` for correction overhead. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(service): add decision correction revert flow"` - - [ ] Git [Jeff]: `git push -u origin feature/m4-decision-revert` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-decision-revert` to `master` with a suitable and thorough description - -- [ ] **COMMIT (Owner: Jeff | Group: D4.append | Branch: feature/m4-decision-append | Planned: Day 25 | Expected: Day 26) - Commit message: "feat(service): add decision correction append flow"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m4-decision-append` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Implement append corrections as new subtree with lineage and subplan spawning. - - [ ] Docs [Jeff]: Extend correction docs for append mode and guidance usage. - - [ ] Tests (Behave) [Jeff]: Add append correction scenarios. - - [ ] Tests (Robot) [Jeff]: Add append correction smoke test. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/decision_correction_append_bench.py` for append overhead. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(service): add decision correction append flow"` - - [ ] Git [Jeff]: `git push -u origin feature/m4-decision-append` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-decision-append` to `master` with a suitable and thorough description - -**Parallel Group D5: Decision Persistence [Hamza + Luis]** (depends on D1) -- [ ] **COMMIT (Owner: Hamza | Group: D5.db | Branch: feature/m4-decision-persistence | Planned: Day 24 | Expected: Day 26) - Commit message: "feat(db): add decision tables"** - - [ ] Git [Hamza]: `git checkout master` - - [ ] Git [Hamza]: `git pull origin master` - - [ ] Git [Hamza]: `git checkout -b feature/m4-decision-persistence` - - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Hamza]: Add Alembic migrations for `decisions` and `context_snapshots` with indexes. - - [ ] Code [Hamza]: Add indexes for plan_id, decision_type, and superseded flags for fast tree queries. - - [ ] Code [Hamza]: Store decision JSON payloads with deterministic ordering for stable diffs and audits. - - [ ] Docs [Hamza]: Update `docs/reference/database_schema.md` with decision tables. - - [ ] Tests (Behave) [Hamza]: Add migration verification scenarios. - - [ ] Tests (Robot) [Hamza]: Add DB migration smoke test. - - [ ] Tests (ASV) [Hamza]: Add `benchmarks/decision_migration_bench.py` for migration baseline. - - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Hamza]: `git commit -m "feat(db): add decision tables"`. - - [ ] Git [Hamza]: `git push -u origin feature/m4-decision-persistence` - - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-persistence` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Hamza | Group: D5.repo | Branch: feature/m4-decision-persistence | Planned: Day 25 | Expected: Day 26) - Commit message: "feat(repo): add decision repositories"** - - [ ] Git [Hamza]: `git checkout master` - - [ ] Git [Hamza]: `git pull origin master` - - [ ] Git [Hamza]: `git checkout -b feature/m4-decision-persistence` - - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Hamza]: Implement DecisionRepository + ContextSnapshotRepository with tree queries and max-sequence helpers. - - [ ] Code [Hamza]: Add repository methods for superseded decision lookup and subtree retrieval. - - [ ] Code [Hamza]: Add repository method to fetch ordered decision path from root to a given decision (for explain output). - - [ ] Docs [Hamza]: Document repository interfaces in `docs/reference/repositories.md`. - - [ ] Tests (Behave) [Hamza]: Add decision persistence scenarios (create/query/superseded). - - [ ] Tests (Robot) [Hamza]: Add repository integration smoke test. - - [ ] Tests (ASV) [Hamza]: Add `benchmarks/decision_repository_bench.py` for tree query performance. - - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Hamza]: `git commit -m "feat(repo): add decision repositories"`. - - [ ] Git [Hamza]: `git push -u origin feature/m4-decision-persistence` - - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-persistence` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Luis | Group: D5.di | Branch: feature/m4-decision-di | Planned: Day 26 | Expected: Day 26) - Commit message: "feat(di): wire decision services"** - - [ ] Git [Luis]: `git checkout master` - - [ ] Git [Luis]: `git pull origin master` - - [ ] Git [Luis]: `git checkout -b feature/m4-decision-di` - - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Luis]: Wire decision repositories + services into DI and CLI. - - [ ] Code [Luis]: Inject DecisionService into PlanLifecycleService so strategize/execute can record decisions automatically. - - [ ] Docs [Luis]: Update DI docs for decision wiring. - - [ ] Tests (Behave) [Luis]: Add DI wiring scenarios for decision commands. - - [ ] Tests (Robot) [Luis]: Add CLI smoke test using persisted decisions. - - [ ] Tests (ASV) [Luis]: Add `benchmarks/decision_di_bench.py` for DI resolution overhead. - - [ ] Quality [Luis]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Luis]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Luis]: `git commit -m "feat(di): wire decision services"`. - - [ ] Git [Luis]: `git push -u origin feature/m4-decision-di` - - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-decision-di` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Brent | Group: D5.tests | Branch: feature/m4-decision-tests | Planned: Day 27 | Expected: Day 27) - Commit message: "test(persistence): add decision persistence suites"** - - [ ] Git [Brent]: `git checkout master` - - [ ] Git [Brent]: `git pull origin master` - - [ ] Git [Brent]: `git checkout -b feature/m4-decision-tests` - - [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Tests (Behave) [Brent]: Add `features/decision_persistence.feature` scenarios. - - [ ] Tests (Behave) [Brent]: Add scenarios for superseded decisions, correction attempts, and tree depth filtering. - - [ ] Tests (Behave) [Brent]: Add output snapshots for `plan explain --format json` and `plan tree --format yaml`. - - [ ] Tests (Robot) [Brent]: Add `robot/decision_persistence.robot` E2E coverage. - - [ ] Docs [Brent]: Update `docs/development/testing.md` with decision suites. - - [ ] Tests (ASV) [Brent]: Add `benchmarks/decision_persistence_bench.py` for DB persistence throughput. - - [ ] Quality [Brent]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Brent]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Brent]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Brent]: `git commit -m "test(persistence): add decision persistence suites"`. - - [ ] Git [Brent]: `git push -u origin feature/m4-decision-tests` - - [ ] Forgejo PR [Brent]: Open PR from `feature/m4-decision-tests` to `master` with a suitable and thorough description - -**Parallel Group DOD: Definition of Done + Invariants [Luis + Jeff]** (depends on D2/D4) -- [ ] **COMMIT (Owner: Luis | Group: DOD.dod | Branch: feature/m4-definition-of-done | Planned: Day 26 | Expected: Day 26) - Commit message: "feat(dod): enforce definition-of-done gating"** - - [ ] Git [Luis]: `git checkout master` - - [ ] Git [Luis]: `git pull origin master` - - [ ] Git [Luis]: `git checkout -b feature/m4-definition-of-done` - - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Luis]: Evaluate `definition_of_done` before apply; block apply with clear error if unmet. - - [ ] Code [Luis]: Ensure DoD templating uses plan arguments and preserves template in plan metadata. - - [ ] Code [Luis]: Add DoD evaluation hook to capture pass/fail reasoning and store in plan validation summary. - - [ ] Code [Luis]: Add DoD evaluator interface with a default text matcher implementation (regex/substring checks). - - [ ] Code [Luis]: Add CLI output in `plan status` showing DoD evaluation summary (passed/failed + message). - - [ ] Docs [Luis]: Add `docs/reference/definition_of_done.md` with examples. - - [ ] Docs [Luis]: Include a template rendering example with plan args and a failure output example. - - [ ] Tests (Behave) [Luis]: Add DoD pass/fail scenarios. - - [ ] Tests (Robot) [Luis]: Add DoD integration smoke test. - - [ ] Tests (ASV) [Luis]: Add `benchmarks/dod_evaluation_bench.py` for evaluation overhead. - - [ ] Quality [Luis]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Luis]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Luis]: `git commit -m "feat(dod): enforce definition-of-done gating"`. - - [ ] Git [Luis]: `git push -u origin feature/m4-definition-of-done` - - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-definition-of-done` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Jeff | Group: DOD.invariants | Branch: feature/m4-invariants | Planned: Day 27 | Expected: Day 26) - Commit message: "feat(invariant): add invariant models and enforcement"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m4-invariants` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Add invariant models, merge order (plan > project > action > global), and enforcement before strategize. - - [ ] Code [Jeff]: Add Invariant Reconciliation Actor role and record `invariant_enforced` decisions. - - [ ] Code [Jeff]: Add `agents invariant add/list/remove` CLI with scope flags. - - [ ] Code [Jeff]: Persist invariants in DB with scope fields and integrate with plan creation defaults. - - [ ] Code [Jeff]: Add explicit error when invariant text is empty or duplicates an existing invariant in the same scope. - - [ ] Code [Jeff]: Add `InvariantScope` enum (global/project/action/plan) and normalize scope precedence for merges. - - [ ] Code [Jeff]: Add CLI output showing invariant source scope and attachment ID for removal. - - [ ] Code [Jeff]: Add migration for `invariants` table and `invariant_attachments` table (project/plan/action references). - - [ ] Docs [Jeff]: Add `docs/reference/invariants.md` and update CLI reference. - - [ ] Docs [Jeff]: Add examples for scope precedence and reconciliation actor outputs. - - [ ] Tests (Behave) [Jeff]: Add invariant merge + violation scenarios. - - [ ] Tests (Robot) [Jeff]: Add invariant CLI integration tests. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/invariant_merge_bench.py` for merge overhead. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(invariant): add invariant models and enforcement"`. - - [ ] Git [Jeff]: `git push -u origin feature/m4-invariants` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-invariants` to `master` with a suitable and thorough description ### Section 7: Subplans & Parallelism [M5] @@ -5681,276 +5740,12 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [X] Git [Brent]: `git checkout master` - [X] Git [Brent]: `git branch -d feature/m5-subplan-tests` -**Parallel Group E2: Subplan Spawning [Jeff + Aditya]** (depends on D2 + E1) -- [ ] **COMMIT (Owner: Jeff | Group: E2.service | Branch: feature/m5-subplan-service | Planned: Day 26 | Expected: Day 28) - Commit message: "feat(service): add subplan service and spawn workflow"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m5-subplan-service` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Implement `SubplanService` with `spawn_subplan`, `spawn_batch`, tree queries, and bounded context builder. - - [ ] Code [Jeff]: Build bounded context from parent plan decisions + project context policies; enforce token/file limits. - - [ ] Code [Jeff]: Inherit automation profile + invariants from parent plan; allow subplan overrides from decisions. - - [ ] Code [Jeff]: Persist subplan config into child Plan metadata (`subplan_config`) and link `spawn_decision_id`. - - [ ] Code [Jeff]: Link SUBPLAN_SPAWN decisions to created subplans and status tracking. - - [ ] Code [Jeff]: Enforce `max_parallel` and dependency ordering at spawn time; reject invalid dependency lists with explicit error. - - [ ] Code [Jeff]: Add idempotency guard to avoid double-spawn on retries (hash plan_id + decision_id). - - [ ] Code [Jeff]: Add `SubplanService.list_children(parent_plan_id)` and `get_child_statuses(parent_plan_id)` helpers for CLI/status output. - - [ ] Code [Jeff]: Add spawn audit log entry with decision_id, child_plan_id, and derived context stats. - - [ ] Code [Jeff]: Normalize subplan names to include parent namespaced name + sequence number for readability. - - [ ] Code [Jeff]: Add explicit error when requested resource scope is not linked to parent project(s). - - [ ] Docs [Jeff]: Add `docs/reference/subplan_service.md`. - - [ ] Docs [Jeff]: Document idempotency, naming convention, and spawn audit log format. - - [ ] Tests (Behave) [Jeff]: Add subplan spawn scenarios (inheritance, overrides, dependency ordering). - - [ ] Tests (Robot) [Jeff]: Add subplan spawn integration tests. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/subplan_spawn_bench.py` for spawn throughput. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(service): add subplan service and spawn workflow"` - - [ ] Git [Jeff]: `git push -u origin feature/m5-subplan-service` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m5-subplan-service` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Aditya | Group: E2.actor | Branch: feature/m5-subplan-actor | Planned: Day 26 | Expected: Day 28) - Commit message: "feat(actor): add plan_subplan tool and decision emission"** - - [ ] Git [Aditya]: `git checkout master` - - [ ] Git [Aditya]: `git pull origin master` - - [ ] Git [Aditya]: `git checkout -b feature/m5-subplan-actor` - - [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Aditya]: Add `plan_subplan` tool to strategy actors and emit SUBPLAN_SPAWN decisions. - - [ ] Code [Aditya]: Support `parallel=true` to emit SUBPLAN_PARALLEL_SPAWN and include dependency list. - - [ ] Code [Aditya]: Include merge strategy, resource scope, and context view overrides in decision payload. - - [ ] Code [Aditya]: Validate that subplan tool payload includes at least one resource scope or project ref. - - [ ] Code [Aditya]: Add schema validation for `max_parallel`, `merge_strategy`, and dependency list in tool payload. - - [ ] Code [Aditya]: Add defaulting rules for omitted fields (inherit from action/plan; explicit override markers). - - [ ] Code [Aditya]: Emit decision rationale text with summary of why subplan was spawned (for explain output). - - [ ] Docs [Aditya]: Update actor YAML examples for subplan emission. - - [ ] Docs [Aditya]: Add a minimal `plan_subplan` tool payload example and a parallel spawn example with dependencies. - - [ ] Tests (Behave) [Aditya]: Add scenarios for subplan decision emission (parallel + dependencies). - - [ ] Tests (Robot) [Aditya]: Add actor tool integration smoke tests. - - [ ] Tests (ASV) [Aditya]: Add `benchmarks/subplan_actor_tool_bench.py` for tool invocation overhead. - - [ ] Quality [Aditya]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Aditya]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Aditya]: `git commit -m "feat(actor): add plan_subplan tool and decision emission"` - - [ ] Git [Aditya]: `git push -u origin feature/m5-subplan-actor` - - [ ] Forgejo PR [Aditya]: Open PR from `feature/m5-subplan-actor` to `master` with a suitable and thorough description - -**Parallel Group E3: Parallel Execution [Luis + Jeff]** (depends on E1/E2) -- [ ] **COMMIT (Owner: Luis | Group: E3.exec | Branch: feature/m5-subplan-exec | Planned: Day 27 | Expected: Day 28) - Commit message: "feat(service): add subplan scheduler and execution"** - - [ ] Git [Luis]: `git checkout master` - - [ ] Git [Luis]: `git pull origin master` - - [ ] Git [Luis]: `git checkout -b feature/m5-subplan-exec` - - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Luis]: Add subplan scheduler with `max_parallel`, dependency ordering, and fail-fast handling. - - [ ] Code [Luis]: Support sequential and parallel execution modes based on SubplanConfig. - - [ ] Code [Luis]: Track status updates for subplans and propagate to parent plan (processing/complete/errored). - - [ ] Code [Luis]: Add cancellation propagation from parent to child subplans. - - [ ] Code [Luis]: Add worker-pool abstraction with bounded concurrency and deterministic scheduling order. - - [ ] Code [Luis]: Add retry/backoff policy for failed subplan execution (configurable per automation profile). - - [ ] Code [Luis]: Persist execution timestamps for each subplan attempt and expose in parent plan status. - - [ ] Code [Luis]: Add scheduler telemetry counters (queued/running/completed/errored) for diagnostics. - - [ ] Code [Luis]: Ensure scheduler honors read-only plans (reject write-capable tools in subplans). - - [ ] Docs [Luis]: Add `docs/reference/subplan_execution.md`. - - [ ] Docs [Luis]: Document scheduler ordering, retry policy, and cancellation propagation. - - [ ] Tests (Behave) [Luis]: Add parallel + dependency execution scenarios. - - [ ] Tests (Robot) [Luis]: Add parallel execution integration tests. - - [ ] Tests (ASV) [Luis]: Add `benchmarks/subplan_scheduler_bench.py` for scheduler overhead. - - [ ] Quality [Luis]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Luis]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Luis]: `git commit -m "feat(service): add subplan scheduler and execution"` - - [ ] Git [Luis]: `git push -u origin feature/m5-subplan-exec` - - [ ] Forgejo PR [Luis]: Open PR from `feature/m5-subplan-exec` to `master` with a suitable and thorough description - -**Parallel Group E4: Result Merging [Jeff]** (depends on E3) -- [ ] **COMMIT (Owner: Jeff | Group: E4.merge | Branch: feature/m5-subplan-merge | Planned: Day 28 | Expected: Day 28) - Commit message: "feat(merge): add subplan merge strategies"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m5-subplan-merge` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Add three-way merge strategy for file changes and conflict markers. - - [ ] Code [Jeff]: Add sequential merge and JSON merge strategies; expose merge result artifacts. - - [ ] Code [Jeff]: Add conflict artifact model (file_path, conflict_type, base/left/right snippets). - - [ ] Code [Jeff]: Store merge output as ChangeSet and attach to parent plan for review. - - [ ] Code [Jeff]: Add merge summary metadata (files merged, conflicts count) for `plan status` output. - - [ ] Code [Jeff]: Add deterministic merge ordering (by resource, path) to make diff outputs stable for tests. - - [ ] Code [Jeff]: Add merge conflict resolution hints in artifacts (suggested resolution path). - - [ ] Code [Jeff]: Add guard that blocks auto-apply when unresolved conflicts exist. - - [ ] Docs [Jeff]: Add `docs/reference/subplan_merge.md`. - - [ ] Docs [Jeff]: Include conflict artifact schema and sample output for `plan diff`. - - [ ] Tests (Behave) [Jeff]: Add merge + conflict scenarios. - - [ ] Tests (Robot) [Jeff]: Add merge integration tests for multi-subplan plans. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/subplan_merge_bench.py` for merge performance. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(merge): add subplan merge strategies"` - - [ ] Git [Jeff]: `git push -u origin feature/m5-subplan-merge` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m5-subplan-merge` to `master` with a suitable and thorough description - -**Parallel Group E5: Multi-Project Plans [Hamza]** (depends on E2/E4) -- [ ] **COMMIT (Owner: Hamza | Group: E5.multi | Branch: feature/m5-multi-project | Planned: Day 29 | Expected: Day 28) - Commit message: "feat(plan): add multi-project subplan support"** - - [ ] Git [Hamza]: `git checkout master` - - [ ] Git [Hamza]: `git pull origin master` - - [ ] Git [Hamza]: `git checkout -b feature/m5-multi-project` - - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Hamza]: Allow plans to target multiple projects with separate resource link contexts. - - [ ] Code [Hamza]: Ensure sandbox isolation and cross-project dependency resolution. - - [ ] Code [Hamza]: Add plan metadata to track project-specific ChangeSets and validation summaries. - - [ ] Code [Hamza]: Add project-scoped context view resolution so each subplan only sees its project resources. - - [ ] Code [Hamza]: Add `ProjectLink` alias resolution rules for multi-project plans (unique alias per plan). - - [ ] Code [Hamza]: Add CLI output for `plan status` to show per-project ChangeSet summaries. - - [ ] Code [Hamza]: Enforce that a plan cannot mix read-only and write-capable projects without explicit override. - - [ ] Docs [Hamza]: Add `docs/reference/multi_project_plans.md`. - - [ ] Docs [Hamza]: Add examples for multi-project `plan use` and explain alias resolution. - - [ ] Tests (Behave) [Hamza]: Add multi-project subplan scenarios. - - [ ] Tests (Robot) [Hamza]: Add multi-project integration tests. - - [ ] Tests (ASV) [Hamza]: Add `benchmarks/multi_project_bench.py` for multi-project overhead. - - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Hamza]: `git commit -m "feat(plan): add multi-project subplan support"` - - [ ] Git [Hamza]: `git push -u origin feature/m5-multi-project` - - [ ] Forgejo PR [Hamza]: Open PR from `feature/m5-multi-project` to `master` with a suitable and thorough description - ### Section 8: Large Project Autonomy & Context [M6] **Target: Milestone M6 (+30 days)** **Local-mode only**: large-project autonomy is required; server connectivity remains stubbed. -**Parallel Group G1: Large-Project Decomposition [Jeff]** -- [ ] **COMMIT (Owner: Jeff | Group: G1.decompose | Branch: feature/m6-large-decompose | Planned: Day 26 | Expected: Day 31) - Commit message: "feat(plan): add large-project decomposition and dependency closure"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m6-large-decompose` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Add hierarchical decomposition with 4+ levels and bounded context per subplan. - - [ ] Code [Jeff]: Implement decomposition heuristics (max_files_per_subplan, max_tokens_per_subplan, language/dir clustering). - - [ ] Code [Jeff]: Add dependency closure computation for large graphs and DAG execution ordering. - - [ ] Code [Jeff]: Add bounded dependency closure with cutoff thresholds and memoization for 10K+ files. - - [ ] Code [Jeff]: Record decomposition decisions in DecisionService (strategy_choice + subplan_spawn entries). - - [ ] Code [Jeff]: Add fallback decomposition strategy when heuristics fail (single subplan with warning). - - [ ] Code [Jeff]: Add config keys in Settings for `planner.max_depth`, `planner.max_files_per_subplan`, `planner.max_tokens_per_subplan`, `planner.min_files_per_subplan` with defaults. - - [ ] Code [Jeff]: Add deterministic clustering order (directory depth, language priority, file size) to make decomposition stable. - - [ ] Code [Jeff]: Add decomposition summary metrics (subplan count, max depth, avg size) stored in plan metadata. - - [ ] Code [Jeff]: Add guard to avoid spawning subplans when project is below threshold; default to single plan. - - [ ] Docs [Jeff]: Add `docs/reference/large_project_decomposition.md`. - - [ ] Docs [Jeff]: Document config keys, default thresholds, and example decomposition outputs. - - [ ] Tests (Behave) [Jeff]: Add deep hierarchy + dependency closure scenarios. - - [ ] Tests (Robot) [Jeff]: Add large-project decomposition integration tests. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/large_project_decompose_bench.py` for decomposition runtime. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(plan): add large-project decomposition and dependency closure"` - - [ ] Git [Jeff]: `git push -u origin feature/m6-large-decompose` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-large-decompose` to `master` with a suitable and thorough description - -**Parallel Group G2: Checkpointing & Rollback [Luis]** -- [ ] **COMMIT (Owner: Luis | Group: G2.checkpoint | Branch: feature/m6-checkpoint | Planned: Day 27 | Expected: Day 31) - Commit message: "feat(checkpoint): add checkpointing and rollback"** - - [ ] Git [Luis]: `git checkout master` - - [ ] Git [Luis]: `git pull origin master` - - [ ] Git [Luis]: `git checkout -b feature/m6-checkpoint` - - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Luis]: Add checkpoint declarations for tools and plan-level rollback policy. - - [ ] Code [Luis]: Add `checkpoints` table (checkpoint_id ULID, plan_id, sandbox_ref, created_at, metadata_json). - - [ ] Code [Luis]: Implement `plan rollback ` command. - - [ ] Code [Luis]: Implement git-worktree checkpoint snapshots (commit hash or patch) and rollback restore. - - [ ] Code [Luis]: Wire rollback into decision correction revert flow for reuse. - - [ ] Code [Luis]: Add checkpoint retention policy (max checkpoints per plan) with auto-prune on new checkpoints. - - [ ] Code [Luis]: Store checkpoint reason/source (tool name, phase) in metadata for auditability. - - [ ] Code [Luis]: Add CLI output to `plan rollback` showing restored file counts and changed paths. - - [ ] Code [Luis]: Add guard preventing rollback when plan is applied or sandbox is missing. - - [ ] Docs [Luis]: Add `docs/reference/checkpointing.md`. - - [ ] Docs [Luis]: Include checkpoint retention defaults and rollback error cases. - - [ ] Tests (Behave) [Luis]: Add checkpoint/rollback scenarios. - - [ ] Tests (Robot) [Luis]: Add rollback integration tests. - - [ ] Tests (ASV) [Luis]: Add `benchmarks/checkpoint_rollback_bench.py` for rollback latency. - - [ ] Quality [Luis]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Luis]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Luis]: `git commit -m "feat(checkpoint): add checkpointing and rollback"` - - [ ] Git [Luis]: `git push -u origin feature/m6-checkpoint` - - [ ] Forgejo PR [Luis]: Open PR from `feature/m6-checkpoint` to `master` with a suitable and thorough description - -**Parallel Group G3: Semantic Validation [Luis]** -- [ ] **COMMIT (Owner: Luis | Group: G3.semantic | Branch: feature/m6-semantic-validation | Planned: Day 27 | Expected: Day 31) - Commit message: "feat(validation): add semantic validation service"** - - [ ] Git [Luis]: `git checkout master` - - [ ] Git [Luis]: `git pull origin master` - - [ ] Git [Luis]: `git checkout -b feature/m6-semantic-validation` - - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Luis]: Add semantic validation hooks during strategize/execute and error-pattern checks. - - [ ] Code [Luis]: Add built-in semantic checks for syntax errors, missing imports, and broken references for Python projects. - - [ ] Code [Luis]: Expose semantic validation as Validation tools so they can be attached per resource. - - [ ] Code [Luis]: Add rule registry for semantic validators (dependency cycles, API misuse, missing symbols). - - [ ] Code [Luis]: Integrate semantic validation results into ValidationPipeline as informational by default. - - [ ] Code [Luis]: Add config keys for enabling/disabling semantic validation per project and per plan (default on for Python). - - [ ] Code [Luis]: Add severity mapping (info/warn/error) and map required vs informational behavior. - - [ ] Code [Luis]: Add output schema normalization so validations return `passed`, `message`, and `data` fields consistently. - - [ ] Code [Luis]: Add caching for semantic checks keyed by file hash to avoid rework on unchanged files. - - [ ] Docs [Luis]: Add `docs/reference/semantic_validation.md`. - - [ ] Docs [Luis]: Add section on required vs informational validation attachment modes. - - [ ] Tests (Behave) [Luis]: Add semantic validation scenarios. - - [ ] Tests (Robot) [Luis]: Add semantic validation integration tests. - - [ ] Tests (ASV) [Luis]: Add `benchmarks/semantic_validation_bench.py` for validation cost. - - [ ] Quality [Luis]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Luis]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Luis]: `git commit -m "feat(validation): add semantic validation service"` - - [ ] Git [Luis]: `git push -u origin feature/m6-semantic-validation` - - [ ] Forgejo PR [Luis]: Open PR from `feature/m6-semantic-validation` to `master` with a suitable and thorough description - -**Parallel Group G4: Context Tiers & Views [Hamza]** -- [ ] **COMMIT (Owner: Hamza | Group: G4.context | Branch: feature/m6-context-tiers | Planned: Day 28 | Expected: Day 31) - Commit message: "feat(context): add hot/warm/cold tiers and actor views"** - - [ ] Git [Hamza]: `git checkout master` - - [ ] Git [Hamza]: `git pull origin master` - - [ ] Git [Hamza]: `git checkout -b feature/m6-context-tiers` - - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Hamza]: Implement hot/warm/cold tiers with indexing, LRU eviction, and promotion/demotion. - - [ ] Code [Hamza]: Add tier storage backends (in-memory hot, sqlite warm, file-backed cold). - - [ ] Code [Hamza]: Add per-actor context views (strategist/executor/reviewer) and filtered presentation. - - [ ] Code [Hamza]: Add summarization hook when demoting to cold tier. - - [ ] Code [Hamza]: Enforce project-scoped filtering (ScopedBackendView) so actors never see resources outside the plan's project set. - - [ ] Code [Hamza]: Add `skeleton_ratio` support to cap inherited context size for subplans. - - [ ] Code [Hamza]: Add tier budget settings (max_tokens_hot, max_decisions_warm, max_decisions_cold) and defaults per project. - - [ ] Code [Hamza]: Add deterministic ordering for tier retrieval (most-recent-first with stable tie-breakers). - - [ ] Code [Hamza]: Add cold-tier compaction job to merge adjacent summaries and cap file size. - - [ ] Code [Hamza]: Add metrics for tier hit/miss counts and expose via `agents diagnostics`. - - [ ] Docs [Hamza]: Add `docs/reference/context_tiers.md`. - - [ ] Docs [Hamza]: Document tier budgets, eviction rules, and summarization policy. - - [ ] Tests (Behave) [Hamza]: Add context tier scenarios. - - [ ] Tests (Robot) [Hamza]: Add context tier integration tests. - - [ ] Tests (ASV) [Hamza]: Add `benchmarks/context_tiers_bench.py` for tier lookup performance. - - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Hamza]: `git commit -m "feat(context): add hot/warm/cold tiers and actor views"` - - [ ] Git [Hamza]: `git push -u origin feature/m6-context-tiers` - - [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-context-tiers` to `master` with a suitable and thorough description - -**Parallel Group G5: Cost & Risk Estimation [Hamza]** -- [ ] **COMMIT (Owner: Hamza | Group: G5.estimate | Branch: feature/m6-estimation | Planned: Day 28 | Expected: Day 31) - Commit message: "feat(estimation): add cost and risk estimation actor"** - - [ ] Git [Hamza]: `git checkout master` - - [ ] Git [Hamza]: `git pull origin master` - - [ ] Git [Hamza]: `git checkout -b feature/m6-estimation` - - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Hamza]: Add optional `estimation_actor` role and cost/risk estimation outputs. - - [ ] Code [Hamza]: Persist estimation output to plan metadata (cost_estimate, risk_score, duration_estimate). - - [ ] Code [Hamza]: Invoke estimation during `plan use` and surface estimates in `plan status` output. - - [ ] Code [Hamza]: Add estimation output schema with currency, token estimates, and confidence ranges. - - [ ] Code [Hamza]: Add opt-out flag `--no-estimate` for `plan use` and persist `estimate_skipped` reason. - - [ ] Code [Hamza]: Add error handling when estimation actor fails (fallback to informational warning). - - [ ] Docs [Hamza]: Add `docs/reference/estimation.md` with output format. - - [ ] Docs [Hamza]: Add CLI examples showing estimate fields in `plan status` output. - - [ ] Tests (Behave) [Hamza]: Add estimation scenarios. - - [ ] Tests (Robot) [Hamza]: Add estimation integration smoke tests. - - [ ] Tests (ASV) [Hamza]: Add `benchmarks/estimation_actor_bench.py` for estimation runtime. - - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Hamza]: `git commit -m "feat(estimation): add cost and risk estimation actor"` - - [ ] Git [Hamza]: `git push -u origin feature/m6-estimation` - - [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-estimation` to `master` with a suitable and thorough description - **Parallel Group G5b: Output Rendering Framework [Jeff]** (prerequisite for G6.cli polish) - [X] **COMMIT (Owner: Jeff | Group: G5b.render | Branch: feature/m4-output-rendering | Planned: Day 20 | Expected: Day 24) - Commit message: "feat(cli): add output rendering framework with materialization strategies"** @@ -5983,30 +5778,6 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - Vulture whitelist updated with all new public API symbols - 50 Behave scenarios (233 steps), 1 Robot suite, 1 ASV benchmark file -**Parallel Group G6: CLI Polish [Jeff]** (depends on G5b.render) -- [ ] **COMMIT (Owner: Jeff | Group: G6.cli | Branch: feature/m6-cli-polish | Planned: Day 29 | Expected: Day 31) - Commit message: "chore(cli): polish help and output"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m6-cli-polish` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Standardize help text, progress indicators, and error messages with recovery hints. - - [ ] Code [Jeff]: Ensure `--format` outputs are consistent (rich/color/table/plain/json/yaml) across core commands. - - [ ] Code [Jeff]: Ensure `plain` format uses ASCII-only output to support log pipelines. - - [ ] Code [Jeff]: Add stable column names and ordering for list commands (`action list`, `plan list`, `project list`, `resource list`). - - [ ] Code [Jeff]: Add `--format json/yaml` schema docs and align field names across commands. - - [ ] Code [Jeff]: Add unified error envelope for JSON/YAML outputs (`error.code`, `error.message`, `error.details`). - - [ ] Docs [Jeff]: Update CLI output examples where needed. - - [ ] Docs [Jeff]: Add a CLI output contract section in `docs/reference/cli_output.md`. - - [ ] Tests (Behave) [Jeff]: Add `features/cli_output_formats.feature` covering rich/plain/json/yaml formatting for core commands. - - [ ] Tests (Robot) [Jeff]: Add CLI UX smoke tests for critical commands. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/cli_render_bench.py` for output rendering overhead. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "chore(cli): polish help and output"` - - [ ] Git [Jeff]: `git push -u origin feature/m6-cli-polish` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-cli-polish` to `master` with a suitable and thorough description - **--- MERGE POINT 2: Day 30 - Large Project Autonomy Target (LOCAL MODE ONLY) ---** By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is deferred): @@ -6017,91 +5788,6 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - Operate entirely in local mode (ACP/LSP + server client stubs in place, not implemented). -### Section 9: Server Connectivity (Stubs Only) [By Day 30] - -**Target: Deliver stubs by M6 (Day 30); full server implementation remains post-Day 30** - -**Parallel Group F0: Server Client Stubs [Luis]** (required for M6; no server implementation) -- [ ] **COMMIT (Owner: Luis | Group: F0.stubs | Branch: feature/m6-server-stubs | Planned: Day 28 | Expected: Day 31) - Commit message: "feat(interfaces): add server client stubs"** - - [ ] Git [Luis]: `git checkout master` - - [ ] Git [Luis]: `git pull origin master` - - [ ] Git [Luis]: `git checkout -b feature/m6-server-stubs` - - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Luis]: Add protocol stubs for `ServerClient`, `RemoteExecutionClient`, and `AuthClient` with NotImplementedError. - - [ ] Code [Luis]: Add `ServerConnectionConfig` model (server_url, namespace, auth_token_ref, tls_verify) with validation. - - [ ] Code [Luis]: Add config keys (`core.server_url`, `core.server_namespace`, `core.server_tls_verify`) and ensure they load from config/env. - - [ ] Code [Luis]: Add `agents connect ` CLI stub in `cli/commands/server_client.py`. - - [ ] Code [Luis]: Implement `agents connect` to persist server_url into config and print an explicit "server mode not implemented" warning. - - [ ] Code [Luis]: Add `agents info` output field for Server Mode: `disabled` vs `stubbed` (based on config). - - [ ] Code [Luis]: Add environment variable support (`CLEVERAGENTS_SERVER_URL`, `CLEVERAGENTS_SERVER_NAMESPACE`) with precedence documented. - - [ ] Code [Luis]: Add stub methods that return explicit error envelopes in JSON/YAML outputs (avoid stack traces). - - [ ] Code [Luis]: Add unit helper `is_server_enabled()` and use it to guard server-only commands. - - [ ] Docs [Luis]: Add `docs/reference/server_client_stubs.md` noting client-only behavior. - - [ ] Docs [Luis]: Document config precedence (CLI flag > config file > env) for server settings. - - [ ] Tests (Behave) [Luis]: Add stub behavior scenarios. - - [ ] Tests (Behave) [Luis]: Add scenarios for env var override and config precedence order. - - [ ] Tests (Robot) [Luis]: Add CLI stub smoke test. - - [ ] Tests (ASV) [Luis]: Add `benchmarks/server_stub_bench.py` (baseline no-op). - - [ ] Quality [Luis]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Luis]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Luis]: `git commit -m "feat(interfaces): add server client stubs"` - - [ ] Git [Luis]: `git push -u origin feature/m6-server-stubs` - - [ ] Forgejo PR [Luis]: Open PR from `feature/m6-server-stubs` to `master` with a suitable and thorough description - -**Parallel Group F1: ACP + LSP Stubs [Jeff + Luis]** (M6; local mode only) - **PARALLEL SUBTRACK F1.acp [Luis]**: ACP in-process facade + event stream stub - **PARALLEL SUBTRACK F1.lsp [Jeff]**: LSP server stub + wiring to ACP facade - **SEQUENTIAL MERGE NOTE**: F1.acp → F1.lsp. - -- [ ] **COMMIT (Owner: Luis | Group: F1.acp | Branch: feature/m6-acp-local | Planned: Day 29 | Expected: Day 31) - Commit message: "feat(acp): add local ACP facade stubs"** - - [ ] Git [Luis]: `git checkout master` - - [ ] Git [Luis]: `git pull origin master` - - [ ] Git [Luis]: `git checkout -b feature/m6-acp-local` - - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Luis]: Add ACP request/response models for session, plan lifecycle, registry access, and event streaming envelopes. - - [ ] Code [Luis]: Implement in-process ACP facade that maps ACP calls to existing services in local mode (no network). - - [ ] Code [Luis]: Add ACP event stream stub with in-memory queue and explicit "not implemented for remote" errors. - - [ ] Code [Luis]: Add ACP version negotiation helper with default version and rejection for unsupported versions. - - [ ] Docs [Luis]: Add `docs/reference/acp_local.md` describing local-mode ACP behavior and stubbed server calls. - - [ ] Tests (Behave) [Luis]: Add scenarios for ACP request validation, session create/list, and plan lifecycle calls routed to services. - - [ ] Tests (Robot) [Luis]: Add Robot smoke test that calls ACP facade endpoints via CLI wrapper. - - [ ] Tests (ASV) [Luis]: Add `benchmarks/acp_facade_bench.py` for request serialization overhead. - - [ ] Quality [Luis]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Luis]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Luis]: `git commit -m "feat(acp): add local ACP facade stubs"` - - [ ] Git [Luis]: `git push -u origin feature/m6-acp-local` - - [ ] Forgejo PR [Luis]: Open PR from `feature/m6-acp-local` to `master` with a suitable and thorough description - -- [ ] **COMMIT (Owner: Jeff | Group: F1.lsp | Branch: feature/m6-lsp-stub | Planned: Day 29 | Expected: Day 31) - Commit message: "feat(lsp): add LSP server stub"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m6-lsp-stub` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Add minimal LSP server entrypoint that supports initialize/shutdown and reports stubbed capability set. - - [ ] Code [Jeff]: Wire LSP requests to ACP facade (local mode) and return explicit "not implemented" responses for unsupported methods. - - [ ] Code [Jeff]: Add CLI command `agents lsp` to launch the stub server with logging and PID output. - - [ ] Docs [Jeff]: Add `docs/reference/lsp_stub.md` with usage notes and supported methods. - - [ ] Tests (Behave) [Jeff]: Add scenarios for LSP initialize/shutdown handshake and stub error responses. - - [ ] Tests (Robot) [Jeff]: Add Robot smoke test that launches the LSP stub and validates startup banner. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/lsp_stub_bench.py` for startup latency. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(lsp): add LSP server stub"` - - [ ] Git [Jeff]: `git push -u origin feature/m6-lsp-stub` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-lsp-stub` to `master` with a suitable and thorough description - -**M7 SUCCESS CRITERIA** (Post-Day 30): -- `agents [--data-dir PATH] [--config-path PATH] connect ` establishes connection to an external server. -- Plans can be synced and executed on a remote server. -- Real-time updates received via WebSocket from server. -- Remote projects can be specified and executed on server. - - - - **Parallel Group 10A: Async Infrastructure [Luis]** - [ ] **COMMIT (Owner: Luis | Group: 10A.async | Branch: feature/m6-async-infra | Planned: Day 27 | Expected: Day 36) - Commit message: "feat(async): add async command execution and workers"** - [ ] Git [Luis]: `git checkout master` @@ -6602,316 +6288,6 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [x] Forgejo PR [Hamza]: Open PR from `feature/m4-concurrency-cleanup` to `master` with description "Add cleanup commands and retention policies with tests.". -### Section 15: ACMS & UKO (Advanced Context Management) [Post-M6] - -**Target: Begin scaffolding by Day 25; full implementation after M6 (local mode only)** - -**Parallel Group ACMS1: UKO Ontology Scaffold [Hamza]** -- [ ] **COMMIT (Owner: Hamza | Group: ACMS1.uko | Branch: feature/m6-acms-uko-schema | Planned: Day 26 | Expected: Day 31) - Commit message: "feat(uko): add UKO ontology scaffolding"** - - [ ] Git [Hamza]: `git checkout master` - - [ ] Git [Hamza]: `git pull origin master` - - [ ] Git [Hamza]: `git checkout -b feature/m6-acms-uko-schema` - - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Hamza]: Add UKO Layer 0-3 ontology skeleton (RDF/TTL) under `docs/ontology/uko.ttl` with version headers. - - [ ] Code [Hamza]: Define base URI, version IRI, and prefix conventions for layers and language-specific nodes. - - [ ] Code [Hamza]: Add minimal Layer 0 nodes (Resource, Artifact, CodeArtifact, Document) to allow end-to-end parsing. - - [ ] Code [Hamza]: Add Python loaders for UKO nodes (URI parsing, inheritance, versioning metadata). - - [ ] Code [Hamza]: Add a validation pass that rejects undefined prefixes and missing `rdf:type` for nodes. - - [ ] Code [Hamza]: Add ontology version registry (current version + supported versions) for future migrations. - - [ ] Code [Hamza]: Add unit helper to resolve layer inheritance (Layer 3 -> 2 -> 1 -> 0). - - [ ] Docs [Hamza]: Add `docs/reference/uko.md` describing layers, URI format, and extension points. - - [ ] Docs [Hamza]: Add a minimal example ontology snippet and parsing walkthrough. - - [ ] Tests (Behave) [Hamza]: Add `features/uko_ontology.feature` for URI parsing and inheritance checks. - - [ ] Tests (Robot) [Hamza]: Add `robot/uko_ontology.robot` smoke tests for ontology load. - - [ ] Tests (ASV) [Hamza]: Add `benchmarks/uko_load_bench.py` for load throughput. - - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Hamza]: `git commit -m "feat(uko): add UKO ontology scaffolding"` - - [ ] Git [Hamza]: `git push -u origin feature/m6-acms-uko-schema` - - [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-acms-uko-schema` to `master` with a suitable and thorough description - -**Parallel Group ACMS2: Context Request Protocol [Jeff]** (depends on ACMS1 + CTX1) -- [ ] **COMMIT (Owner: Jeff | Group: ACMS2.crp | Branch: feature/m6-acms-crp-models | Planned: Day 27 | Expected: Day 31) - Commit message: "feat(acms): add context request protocol models"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m6-acms-crp-models` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Add `ContextRequest`, `ContextFragment`, `DetailLevel`, and `ContextBudget` models with validation. - - [ ] Code [Jeff]: Add built-in `builtin/context` skill with tools `request_context`, `query_history`, and `get_context_budget` (stubbed to ACMS). - - [ ] Code [Jeff]: Add `ContextRequest` fields for `focus`, `breadth`, `depth`, `strategy`, `temporal_scope`, and `skeleton_ratio` with defaulting rules. - - [ ] Code [Jeff]: Add `ContextFragment` metadata (uko_uri, provenance, relevance_score, token_count, detail_level) and enforce token_count >= 0. - - [ ] Code [Jeff]: Add `DetailLevelMap` registry with name->integer resolution and inheritance support. - - [ ] Code [Jeff]: Add `ContextRequest` validation for invalid depth names and unknown strategies. - - [ ] Docs [Jeff]: Add `docs/reference/crp.md` with request fields, detail levels, and examples. - - [ ] Docs [Jeff]: Document `DetailLevelMap` resolution rules and defaults. - - [ ] Tests (Behave) [Jeff]: Add `features/crp_models.feature` for validation and serialization ordering. - - [ ] Tests (Robot) [Jeff]: Add `robot/crp_models.robot` smoke tests. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/crp_model_bench.py` for validation throughput. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(acms): add context request protocol models"` - - [ ] Git [Jeff]: `git push -u origin feature/m6-acms-crp-models` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-acms-crp-models` to `master` with a suitable and thorough description - -**Parallel Group ACMS3: Context Strategies & Registry [Hamza]** (depends on CTX1/CTX2) -- [ ] **COMMIT (Owner: Hamza | Group: ACMS3.strategy | Branch: feature/m6-acms-strategy-registry | Planned: Day 27 | Expected: Day 31) - Commit message: "feat(acms): add context strategy registry"** - - [ ] Git [Hamza]: `git checkout master` - - [ ] Git [Hamza]: `git pull origin master` - - [ ] Git [Hamza]: `git checkout -b feature/m6-acms-strategy-registry` - - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Hamza]: Define `ContextStrategy` interface and StrategyRegistry with plugin discovery. - - [ ] Code [Hamza]: Add stub strategies (keyword, semantic, graph, temporal) with feature flags and no-op defaults. - - [ ] Code [Hamza]: Add `ContextStrategyResult` model (fragments, stats, errors) with deterministic ordering. - - [ ] Code [Hamza]: Add configuration to enable/disable strategies per project context policy. - - [ ] Code [Hamza]: Add per-strategy timeout and max-fragment limits in registry config. - - [ ] Code [Hamza]: Add registry validation that strategies declare supported resource types. - - [ ] Docs [Hamza]: Add `docs/reference/context_strategies.md` with strategy contracts and outputs. - - [ ] Docs [Hamza]: Document strategy config keys (timeouts, max fragments, enable/disable). - - [ ] Tests (Behave) [Hamza]: Add `features/context_strategy_registry.feature` for registration and selection. - - [ ] Tests (Robot) [Hamza]: Add `robot/context_strategy_registry.robot` smoke tests. - - [ ] Tests (ASV) [Hamza]: Add `benchmarks/context_strategy_bench.py` for registry lookup. - - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Hamza]: `git commit -m "feat(acms): add context strategy registry"` - - [ ] Git [Hamza]: `git push -u origin feature/m6-acms-strategy-registry` - - [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-acms-strategy-registry` to `master` with a suitable and thorough description - -**Parallel Group ACMS4: Strategy Coordinator & Fusion Engine [Jeff]** (depends on ACMS2/ACMS3) -- [ ] **COMMIT (Owner: Jeff | Group: ACMS4.fusion | Branch: feature/m6-acms-fusion-engine | Planned: Day 28 | Expected: Day 31) - Commit message: "feat(acms): add strategy coordinator and fusion engine"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m6-acms-fusion-engine` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Implement StrategyCoordinator with parallel execution and budget allocation. - - [ ] Code [Jeff]: Implement FusionEngine to dedupe fragments, resolve detail conflicts, and pack within budget. - - [ ] Code [Jeff]: Allocate budget proportionally by strategy confidence and enforce per-strategy max caps. - - [ ] Code [Jeff]: Add greedy knapsack packing with deterministic tie-breakers (relevance, detail level, token count). - - [ ] Code [Jeff]: Add fragment dedupe by UKO URI + hash of rendered text to avoid duplicates across strategies. - - [ ] Code [Jeff]: Add budget overage guard to drop lowest-relevance fragments and emit warnings. - - [ ] Docs [Jeff]: Add `docs/reference/acms_fusion.md` with flow diagrams and budget semantics. - - [ ] Docs [Jeff]: Document StrategyCoordinator execution order and error handling. - - [ ] Tests (Behave) [Jeff]: Add `features/acms_fusion.feature` for dedupe and budget enforcement. - - [ ] Tests (Robot) [Jeff]: Add `robot/acms_fusion.robot` integration smoke tests. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/acms_fusion_bench.py` for fusion runtime. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(acms): add strategy coordinator and fusion engine"` - - [ ] Git [Jeff]: `git push -u origin feature/m6-acms-fusion-engine` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-acms-fusion-engine` to `master` with a suitable and thorough description - -**Parallel Group ACMS5: Scoped Backend Views [Hamza]** (depends on B2.project + CTX1) -- [ ] **COMMIT (Owner: Hamza | Group: ACMS5.scoped | Branch: feature/m6-acms-scoped-view | Planned: Day 28 | Expected: Day 31) - Commit message: "feat(acms): add scoped backend view filtering"** - - [ ] Git [Hamza]: `git checkout master` - - [ ] Git [Hamza]: `git pull origin master` - - [ ] Git [Hamza]: `git checkout -b feature/m6-acms-scoped-view` - - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Hamza]: Implement ScopedBackendView that filters text/vector/graph queries to project resources. - - [ ] Code [Hamza]: Add enforcement hooks in context retrieval services and StrategyCoordinator. - - [ ] Code [Hamza]: Add allowlist/denylist resolution for resource scopes using project resource links and aliases. - - [ ] Code [Hamza]: Log and reject context requests that reference resources outside scope (security guard). - - [ ] Code [Hamza]: Add unit helper to resolve alias -> resource_id mapping and validate uniqueness. - - [ ] Code [Hamza]: Add guard for mixed project scopes (explicit error when request spans unlinked projects). - - [ ] Docs [Hamza]: Add `docs/reference/scoped_backend_view.md` with security guarantees. - - [ ] Docs [Hamza]: Add examples of allowlist/denylist configurations. - - [ ] Tests (Behave) [Hamza]: Add `features/scoped_view.feature` for cross-project isolation. - - [ ] Tests (Robot) [Hamza]: Add `robot/scoped_view.robot` smoke tests. - - [ ] Tests (ASV) [Hamza]: Add `benchmarks/scoped_view_bench.py` for filter overhead. - - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Hamza]: `git commit -m "feat(acms): add scoped backend view filtering"` - - [ ] Git [Hamza]: `git push -u origin feature/m6-acms-scoped-view` - - [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-acms-scoped-view` to `master` with a suitable and thorough description - -**Parallel Group ACMS6: Skeleton Compression [Jeff]** (depends on ACMS4 + G4 context tiers) -- [ ] **COMMIT (Owner: Jeff | Group: ACMS6.skeleton | Branch: feature/m6-acms-skeleton-compress | Planned: Day 29 | Expected: Day 31) - Commit message: "feat(acms): add skeleton compressor"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m6-acms-skeleton-compress` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Implement skeleton compressor that produces compressed inherited context with `skeleton_ratio`. - - [ ] Code [Jeff]: Integrate skeleton output into subplan context inheritance and strategy coordinator budgets. - - [ ] Code [Jeff]: Add stable ordering for compressed fragments to avoid non-deterministic context payloads. - - [ ] Code [Jeff]: Persist skeleton metadata (ratio, token counts, source decision IDs) for auditability. - - [ ] Code [Jeff]: Add `skeleton_ratio` validation (0.0-1.0) and default handling per plan. - - [ ] Code [Jeff]: Add compression summary (original tokens vs compressed tokens) stored in plan metadata. - - [ ] Docs [Jeff]: Add `docs/reference/skeleton_compressor.md` with ratios and examples. - - [ ] Docs [Jeff]: Add example of skeleton output for a multi-decision plan. - - [ ] Tests (Behave) [Jeff]: Add `features/skeleton_compressor.feature` for compression thresholds. - - [ ] Tests (Robot) [Jeff]: Add `robot/skeleton_compressor.robot` smoke tests. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/skeleton_compressor_bench.py` for compression overhead. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(acms): add skeleton compressor"` - - [ ] Git [Jeff]: `git push -u origin feature/m6-acms-skeleton-compress` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-acms-skeleton-compress` to `master` with a suitable and thorough description - ---- - -### Section 16: Context Indexing [Days 15-17] - -**Parallel Group CTX1: Repository Indexing [Hamza]** -- [ ] **COMMIT (Owner: Hamza | Group: CTX1.index | Branch: feature/m4-context-indexing | Planned: Day 15 | Expected: Day 26) - Commit message: "feat(context): add repo indexing service"** - - [ ] Git [Hamza]: `git checkout master` - - [ ] Git [Hamza]: `git pull origin master` - - [ ] Git [Hamza]: `git checkout -b feature/m4-context-indexing` - - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Hamza]: Implement indexing service with file tree, language detection, and incremental refresh. - - [ ] Code [Hamza]: Add index metadata table (resource_id, indexed_at, file_count, token_estimate). - - [ ] Code [Hamza]: Enforce max file size and total size limits from project context policy. - - [ ] Code [Hamza]: Add file hashing (content hash + mtime) to skip unchanged files during incremental refresh. - - [ ] Code [Hamza]: Persist per-file index records (path, language, hash, token_count) with indexes on resource_id/path. - - [ ] Code [Hamza]: Add `IndexingService.refresh(resource_id)` that returns summary stats (added/updated/removed counts). - - [ ] Code [Hamza]: Add file ignore handling using project include/exclude globs and default ignore list. - - [ ] Code [Hamza]: Add language detection fallback (by extension when content sniff fails). - - [ ] Docs [Hamza]: Add `docs/reference/context_indexing.md`. - - [ ] Docs [Hamza]: Document index storage schema and refresh behavior. - - [ ] Tests (Behave) [Hamza]: Add `features/context_indexing.feature` scenarios. - - [ ] Tests (Robot) [Hamza]: Add indexing integration tests. - - [ ] Tests (ASV) [Hamza]: Add `benchmarks/context_indexing_bench.py` for indexing throughput baseline. - - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Hamza]: `git commit -m "feat(context): add repo indexing service"` - - [ ] Git [Hamza]: `git push -u origin feature/m4-context-indexing` - - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-context-indexing` to `master` with a suitable and thorough description - -**Parallel Group CTX2: Embedding Index [Hamza]** -- [ ] **COMMIT (Owner: Hamza | Group: CTX2.embedding | Branch: feature/m4-context-embedding | Planned: Day 16 | Expected: Day 26) - Commit message: "feat(context): add optional embedding search"** - - [ ] Git [Hamza]: `git checkout master` - - [ ] Git [Hamza]: `git pull origin master` - - [ ] Git [Hamza]: `git checkout -b feature/m4-context-embedding` - - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Hamza]: Add embedding-based search with opt-in flag and fallback to full-text search. - - [ ] Code [Hamza]: Add embedding index metadata and cache invalidation on repo updates. - - [ ] Code [Hamza]: Add embedding provider abstraction (model name, batch size, rate limit) with local-only default. - - [ ] Code [Hamza]: Store embedding vectors in a local vector store (FAISS or sqlite-vec) and map back to file paths. - - [ ] Code [Hamza]: Add config keys `context.embedding.enabled`, `context.embedding.model`, and `context.embedding.max_chunks`. - - [ ] Code [Hamza]: Add chunking strategy (max tokens per chunk, overlap) with deterministic ordering. - - [ ] Code [Hamza]: Add embedding cache keys and reuse logic to avoid re-embedding unchanged files. - - [ ] Docs [Hamza]: Add `docs/reference/embedding_search.md`. - - [ ] Docs [Hamza]: Document embedding storage format and cache invalidation rules. - - [ ] Tests (Behave) [Hamza]: Add `features/embedding_search.feature` scenarios. - - [ ] Tests (Robot) [Hamza]: Add embedding search integration tests. - - [ ] Tests (ASV) [Hamza]: Add `benchmarks/embedding_search_bench.py` for search runtime baseline. - - [ ] Quality [Hamza]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Hamza]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Hamza]: `git commit -m "feat(context): add optional embedding search"` - - [ ] Git [Hamza]: `git push -u origin feature/m4-context-embedding` - - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-context-embedding` to `master` with a suitable and thorough description - ---- - -### Section 17: Skill Registry [Days 17-18] - -**Target: Days 17-18 (after Tool/Skill base registry work in C0/C3)** -**Dependencies**: C0.skill.domain + C0.skill.registry + C1.tool.registry + C3.context; MCP refresh depends on C7.mcp. - -**Parallel Group SK: Skill Registry Completion [Jeff + Luis + Rui + Aditya]** - **PARALLEL SUBTRACK SK1.core [Jeff]**: Flattened tool sets, includes, capability summary - **PARALLEL SUBTRACK SK2.persistence [Luis]**: Persistence extensions for flattened tools - **PARALLEL SUBTRACK SK3.cli [Aditya]**: CLI `skill tools/refresh` and output parity - **PARALLEL SUBTRACK SK4.refresh [Aditya]**: MCP refresh hooks and dynamic updates - **SEQUENTIAL MERGE NOTE**: SK2.persistence must land before SK1.core + SK3.cli to avoid schema mismatches; SK4.refresh depends on C7.mcp and can land after SK1.core. - -- [ ] **COMMIT (Owner: Jeff | Group: SK1.core | Branch: feature/m4-skill-registry-core | Planned: Day 18 | Expected: Day 26) - Commit message: "feat(skill): add registry flattening and capability summaries"** - - [ ] Git [Jeff]: `git checkout master` - - [ ] Git [Jeff]: `git pull origin master` - - [ ] Git [Jeff]: `git checkout -b feature/m4-skill-registry-core` - - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Jeff]: Implement skill flattening that resolves `includes`, named tool refs, and anonymous inline tools into a deterministic flattened list. - - [ ] Code [Jeff]: Detect include cycles and emit a clear error listing the cycle path (`skillA -> skillB -> skillA`). - - [ ] Code [Jeff]: Implement per-tool override merging (shallow merge) with explicit disallow list for non-overridable fields. - - [ ] Code [Jeff]: Compute capability summary (read/write/checkpointable/idempotent) for each skill from flattened tool metadata. - - [ ] Code [Jeff]: Add `SkillRegistry.tools(name)` and `SkillRegistry.validate_plan(plan)` to support actor activation and plan validation. - - [ ] Code [Jeff]: Add deterministic ordering for flattened tools (include order, then tool name). - - [ ] Code [Jeff]: Add error reporting that includes source file and line when overrides fail. - - [ ] Docs [Jeff]: Add `docs/reference/skill_registry.md` describing flattening rules, overrides, and validation errors. - - [ ] Docs [Jeff]: Add example of flattened output with inline tools and includes. - - [ ] Tests (Behave) [Jeff]: Add `features/skill_registry.feature` scenarios for includes, overrides, cycle detection, and missing tool refs. - - [ ] Tests (Robot) [Jeff]: Add `robot/skill_registry.robot` for add/list/show/tools flows. - - [ ] Tests (ASV) [Jeff]: Add `benchmarks/skill_flatten_bench.py` for flattening throughput. - - [ ] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Jeff]: `git commit -m "feat(skill): add registry flattening and capability summaries"` - - [ ] Git [Jeff]: `git push -u origin feature/m4-skill-registry-core` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-skill-registry-core` to `master` with a suitable and thorough description - -- [ ] **COMMIT (Owner: Luis | Group: SK2.persistence | Branch: feature/m4-skill-registry-db | Planned: Day 17 | Expected: Day 26) - Commit message: "feat(skill): persist flattened tool sets"** - - [ ] Git [Luis]: `git checkout master` - - [ ] Git [Luis]: `git pull origin master` - - [ ] Git [Luis]: `git checkout -b feature/m4-skill-registry-db` - - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Luis]: Add migration fields/tables to store `flattened_tools_json`, `includes_json`, and `capability_summary_json` for each skill. - - [ ] Code [Luis]: Persist original skill YAML text and computed flattening hash for refresh invalidation. - - [ ] Code [Luis]: Extend SkillRepository to read/write flattened tool sets and invalidate cached summaries on update. - - [ ] Code [Luis]: Add uniqueness constraint for skill names and index on namespace for list filters. - - [ ] Code [Luis]: Add repository method to recompute flattening hash on update and store in DB. - - [ ] Docs [Luis]: Update `docs/reference/database_schema.md` with skill registry persistence fields. - - [ ] Docs [Luis]: Add mapping table of persistence fields to domain model properties. - - [ ] Tests (Behave) [Luis]: Add `features/skill_registry_persistence.feature` scenarios for add/update/refresh persistence. - - [ ] Tests (Robot) [Luis]: Add repository persistence smoke tests for skills. - - [ ] Tests (ASV) [Luis]: Add `benchmarks/skill_registry_persist_bench.py` for persistence overhead. - - [ ] Quality [Luis]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Luis]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Luis]: `git commit -m "feat(skill): persist flattened tool sets"` - - [ ] Git [Luis]: `git push -u origin feature/m4-skill-registry-db` - - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-skill-registry-db` to `master` with a suitable and thorough description - -- [ ] **COMMIT (Owner: Aditya | Group: SK3.cli | Branch: feature/m4-skill-registry-cli | Planned: Day 18 | Expected: Day 26) - Commit message: "feat(cli): add skill tools and refresh commands"** - - [ ] Git [Aditya]: `git checkout master` - - [ ] Git [Aditya]: `git pull origin master` - - [ ] Git [Aditya]: `git checkout -b feature/m4-skill-registry-cli` - - [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Aditya]: Add `agents skill tools ` to show flattened tool list and capability summary. - - [ ] Code [Aditya]: Add `agents skill refresh |--all` to recompute flattening and sync MCP-backed skills. - - [ ] Code [Aditya]: Update `skill list/show` output with includes, tool counts, and capability summary fields. - - [ ] Code [Aditya]: Add `--format json/yaml` output schema for tools/refresh output. - - [ ] Code [Aditya]: Add CLI errors for refresh when skill not found or MCP sync fails. - - [ ] Docs [Aditya]: Update CLI reference with skill tools/refresh examples and output columns. - - [ ] Docs [Aditya]: Document refresh side effects and caching behavior. - - [ ] Tests (Behave) [Aditya]: Add `features/skill_cli.feature` scenarios for tools/refresh and list/show output. - - [ ] Tests (Robot) [Aditya]: Add `robot/skill_cli.robot` for CLI smoke tests. - - [ ] Tests (ASV) [Aditya]: Add `benchmarks/skill_cli_bench.py` for CLI overhead baseline. - - [ ] Quality [Aditya]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Aditya]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Aditya]: `git commit -m "feat(cli): add skill tools and refresh commands"` - - [ ] Git [Aditya]: `git push -u origin feature/m4-skill-registry-cli` - - [ ] Forgejo PR [Aditya]: Open PR from `feature/m4-skill-registry-cli` to `master` with a suitable and thorough description - -- [ ] **COMMIT (Owner: Aditya | Group: SK4.refresh | Branch: feature/m4-skill-registry-refresh | Planned: Day 19 | Expected: Day 26) - Commit message: "feat(skill): add MCP refresh hooks"** - - [ ] Git [Aditya]: `git checkout master` - - [ ] Git [Aditya]: `git pull origin master` - - [ ] Git [Aditya]: `git checkout -b feature/m4-skill-registry-refresh` - - [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - - [ ] Code [Aditya]: Implement `SkillRegistry.refresh(name)` and `refresh_all()` to recompute flattened tool sets on demand. - - [ ] Code [Aditya]: Wire MCP `notifications/tools/list_changed` to trigger skill refresh and registry cache invalidation. - - [ ] Code [Aditya]: Add safeguard to skip refresh when tool registry is unavailable; emit a single warning with recovery steps. - - [ ] Code [Aditya]: Add refresh debounce window to avoid repeated refresh storms from MCP notifications. - - [ ] Code [Aditya]: Add refresh result summary (skills refreshed, failures) for CLI output. - - [ ] Docs [Aditya]: Add `docs/reference/skill_refresh.md` with MCP refresh behavior and troubleshooting. - - [ ] Docs [Aditya]: Document debounce defaults and manual refresh usage. - - [ ] Tests (Behave) [Aditya]: Add `features/skill_refresh.feature` scenarios for MCP update propagation. - - [ ] Tests (Robot) [Aditya]: Add `robot/skill_refresh.robot` for refresh smoke tests. - - [ ] Tests (ASV) [Aditya]: Add `benchmarks/skill_refresh_bench.py` for refresh overhead. - - [ ] Quality [Aditya]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [ ] Git [Aditya]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [ ] Git [Aditya]: `git commit -m "feat(skill): add MCP refresh hooks"` - - [ ] Git [Aditya]: `git push -u origin feature/m4-skill-registry-refresh` - - [ ] Forgejo PR [Aditya]: Open PR from `feature/m4-skill-registry-refresh` to `master` with a suitable and thorough description - ---- - ### Section 18: Deferred Work Deferred items remain planned but are not part of the 30-day MVP scope. @@ -7267,4 +6643,3 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Git [Luis]: `git commit -m "feat(security): add safety profile enforcement"` - [ ] Git [Luis]: `git push -u origin feature/m7-post-safety` - [ ] Forgejo PR [Luis]: Open PR from `feature/m7-post-safety` to `master` with a suitable and thorough description -