diff --git a/implementation_plan.md b/implementation_plan.md index d02b29901..40773f43a 100644 --- a/implementation_plan.md +++ b/implementation_plan.md @@ -31,20 +31,26 @@ ## Guiding Principles -- Build CleverAgents per `docs/specification.md`; this plan only sequences work and dependencies so the specification stays the single source of truth. -- Implement the spec-defined plan lifecycle (Strategize -> Execute -> Apply) from Action templates, with tool-based execution in a sandbox and validations before apply; local mode first, server stubs only until post-30-day scope. -- Implement the core registries (Project/Resource, Tool/Skill/Validation) with namespaced identifiers; resources use ULIDs, actions/tools/skills/projects use namespaced names. -- Use configuration-first YAML for actions, actors, tools, skills, resource types, automation profiles, and validations; `${ENV_VAR}` interpolation is supported per spec and CLI overrides are allowed only where the spec permits. -- Enforce strict typing, fail-fast errors, structured logging, and all tests via `nox` (Behave + Robot + ASV) with coverage >=97%. -- Good commit hygiene: each commit includes code + docs + tests + benchmarks, is independently revertible, and leaves `nox` passing. +- Keep `docs/specification.md` as the single source of truth; this plan sequences work only and stays minimal. +- Local mode is the only supported execution target through Day 30; server connectivity is stub-only (interfaces raising `NotImplementedError`) after M6. +- Implement the plan lifecycle exactly: Strategize (read-only) → Execute (sandboxed) → Apply (validation-gated merge) → applied. +- Use namespaced identifiers for actions, actors, tools, skills, projects, and automation profiles; use ULIDs only for plans, decisions, resources, and validation attachments. +- Resource-first architecture: Resource Types define physical/virtual resources, DAG constraints, and sandbox strategy; registries persist Resources, Tools, Skills, Actors, Providers, and Validations. +- Tool runtime owns mutation: tool lifecycle (discover/activate/execute/deactivate), resource binding resolution, and ChangeSet tracking drive apply/rollback. +- Decision trees and invariants are first-class; correction recomputes only affected subtrees; the Invariant Reconciliation Actor runs before strategize. +- Deliver ACMS v1 in local mode by M6 (UKO + CRP + Context Assembly Pipeline); keep details in the spec, not here. +- Configuration-first YAML for actions, actors, tools, skills, resource types, validations, and automation profiles with `${ENV_VAR}` interpolation. +- Enforce strict typing and quality gates via `nox` (Behave + Robot + ASV) with coverage >=97%. ### Core Architectural Requirements -**Scalability**: Deliver ACMS v1 (UKO/CRP/context pipeline) with large-project support by M6, per spec. +**Scalability**: ACMS v1 (UKO/CRP/context pipeline) in local mode by M6. -**Reliability**: Deliver sandbox + checkpoints, tool-based change tracking, validations, and invariant enforcement per spec. +**Reliability**: Sandboxed execution, tool-based change tracking, validation-gated apply, and checkpoints per spec. -**Autonomy with Control**: Deliver automation profiles, decision-tree recording, and correction workflows per spec. +**Autonomy with Control**: Decision-tree recording, invariants, automation profiles, and correction flows per spec. + +**Registry-First**: Resource/Tool/Skill/Actor/Validation registries with namespaced IDs and spec-aligned lifecycles. ### Continuous Testing and Documentation Policy - Do not mark any parent checklist item complete until **all** subordinate Code, Document, Tests tasks and any generated `Fix - ...` tasks are resolved and the associated Notes section has the latest context. @@ -657,24 +663,24 @@ The following work from the previous implementation has been completed and will | Milestone | Target Date | Description | |-----------|-------------|-------------| -| **M0: Foundation** | Day 0 (Current) | Preserve existing LangGraph infrastructure and tooling baseline. | -| **M1: Local Source Code MVP** | +7 days | Action YAML -> plan use -> strategize/execute/apply with sandboxed, tool-based change tracking on source code only. | -| **M2: Projects & Resources** | +10 days | Resource/project registries + CLI, git-checkout + fs directory support, local sandbox strategies. | -| **M3: Actors, Tools, Skills, Validations** | +14 days | Actor YAML + compilation, tool/skill/validation registries, built-in file/search/git tools, MCP adapter (local). | -| **M4: Decisions & Invariants** | +21 days | Decision recording + correction, invariants + automation profiles, plan tree/explain/correct CLI. | -| **M5: Subplans & Parallelism** | +25 days | Subplan spawning, parallel execution, merge strategies, multi-project support. | -| **M6: Large Project Autonomy** | +30 days | ACMS v1 (local), deep subplans, autonomous large-project workflows. | -| **M7: Server Stubs** | +35+ days | Client-side server stubs only (no server implementation in this project). | -| **M8: UX & Rendering** | +40 days | Output rendering formats, UX polish, remaining spec items. | +| **M0: Foundation** | 2026-02-11 (Day 0) | Preserve existing LangGraph infrastructure and tooling baseline. | +| **M1: Local Source Code MVP** | 2026-02-18 (Day 7) | Action YAML -> plan use -> strategize/execute/apply with sandboxed, tool-based change tracking on source code only. | +| **M2: Projects & Resources** | 2026-02-21 (Day 10) | Resource/project registries + CLI, git-checkout + fs-directory support, local sandbox strategies. | +| **M3: Actors, Tools, Skills, Validations** | 2026-02-25 (Day 14) | Actor YAML + compilation, tool/skill/validation registries, built-in file/search/git tools, MCP adapter (local). | +| **M4: Decisions & Invariants** | 2026-03-04 (Day 21) | Decision recording + correction, invariants + automation profiles, plan tree/explain/correct CLI. | +| **M5: Subplans & Parallelism** | 2026-03-08 (Day 25) | Subplan spawning, parallel execution, merge strategies, multi-project support. | +| **M6: Large Project Autonomy** | 2026-03-13 (Day 30) | ACMS v1 (local), deep subplans, autonomous large-project workflows. | +| **M7: Server Stubs (Client Only)** | 2026-03-18 (Day 35) | Client-side server stubs only (no server implementation in this project). | +| **M8: UX & Rendering** | 2026-03-23 (Day 40) | Output rendering formats, UX polish, remaining spec items. | ### Critical Path to 7-Day MVP (Source Code Only) **WEEK 1 GOAL**: A minimally usable application that can: -1. Register an action from YAML via `agents action create --config ` (name, description, definition_of_done, actors, args, optional invariants/automation profile). -2. Register a git-checkout resource and link it to a project via `agents resource add git-checkout --path ` + `agents project link-resource `. +1. Register an action from YAML via `agents action create --config ` (namespaced name, description, definition_of_done, actors, args, invariants, optional automation profile). +2. Create a project and link a local `git-checkout` resource via `agents project create --resource ` + `agents resource add git-checkout --path ` + `agents project link-resource `. 3. Use the action on one or more projects via `agents plan use [--automation-profile ...] [--invariant ...] [--arg name=value] ...` (Strategize phase). -4. Execute in a per-plan sandbox (git_worktree, lazy per-resource) via `agents plan execute ` and record tool-based changes. -5. Apply sandbox changes via `agents plan apply [--yes] ` after required validations pass. +4. Execute in a per-plan sandbox (git_worktree for git-checkout resources) via `agents plan execute ` with tool-based change tracking. +5. Apply sandbox changes via `agents plan apply [--yes] ` after required validations (if any) pass. Detailed tasks, ownership, and sequencing live in the Implementation Checklist (Sections 3-6). @@ -683,9 +689,9 @@ Detailed tasks, ownership, and sequencing live in the Implementation Checklist ( - Workstream A: Plan lifecycle + action/plan alignment + persistence (Section 3). - Workstream B: Project/resource registry + CLI + sandbox strategies (Section 4). - Workstream C: Actor/tool/skill/validation registries + built-in tools (Section 5). -- Workstream D: Tool router + change tracking + apply pipeline (Section 6). +- Workstream D: Tool router + change tracking + apply pipeline (Section 5/6). - Workstream Q: Quality automation maintenance (Section 0). -- Workstream T: Testing (Section T, Brent through 2026-02-27, Rui after). +- Workstream T: Testing (Brent through 2026-02-27, Rui after). ## Quick Reference for Development @@ -732,7 +738,7 @@ nox -s docs # Build documentation ``` agents version | info | diagnostics | init agents session create | list | show | delete | export | import | tell -agents project create | link-resource | unlink-resource | list | show | validations | delete | context (set|show|inspect|simulate) +agents project create | link-resource | unlink-resource | list | show | delete | context (set|show|inspect|simulate) agents validation add | attach | detach agents actor run | add | remove | list | show | context (remove|list|show|export|import|clear) agents skill add | remove | list | show | tools @@ -747,10 +753,9 @@ agents invariant add | list | remove ### Environment Variables (CLEVERAGENTS_* only) ```bash -# Core configuration +# Core configuration (see spec Configuration section for the full list) CLEVERAGENTS_HOME=~/.cleveragents CLEVERAGENTS_LOG_LEVEL=INFO -CLEVERAGENTS_API_KEY= # Development CLEVERAGENTS_DEBUG=true @@ -761,40 +766,55 @@ CLEVERAGENTS_TEST_MODE=true ### 2026-02-12 (Day 2 since kickoff on 2026-02-11) - Timeline reference: Day 7/M1 = 2026-02-18, Day 10/M2 = 2026-02-21, Day 14/M3 = 2026-02-25, Day 21/M4 = 2026-03-04, Day 25/M5 = 2026-03-08, Day 30/M6 = 2026-03-13, Day 35/M7 = 2026-03-18. -- Team summary (Ahead/Behind | Overall Risk | Pace Model): **Behind ~8-10 days** | Overall risk = HIGH | Pace model assumes local-only scope, 3 core build tracks (A/B/C), Rui unavailable through 2026-02-27, and a full rebaseline of plan/action/CLI + registries. -- Rebaseline update: A5+ checklist blocks are being reformatted to the new commit/coverage standard and milestone-prefixed branch names; no ETA change yet. +- Snapshot (Team Status | Overall Risk | Pace Notes): **Behind ~8-10 days** | Overall risk = HIGH | Pre-rebaseline pacing, server scope still in queue, Rui unavailable through 2026-02-27. - Milestone forecast (Target -> ETA | Delta | Risk): - - M1 (target 2026-02-18) -> ETA 2026-02-26 | +8d | HIGH - - M2 (target 2026-02-21) -> ETA 2026-03-02 | +9d | HIGH - - M3 (target 2026-02-25) -> ETA 2026-03-09 | +12d | MED-HIGH - - M4 (target 2026-03-04) -> ETA 2026-03-18 | +14d | MED-HIGH - - M5 (target 2026-03-08) -> ETA 2026-03-23 | +15d | MEDIUM - - M6 (target 2026-03-13) -> ETA 2026-03-31 | +18d | MEDIUM + - M1 (2026-02-18) -> ETA 2026-02-26 | +8d | HIGH + - M2 (2026-02-21) -> ETA 2026-03-02 | +9d | HIGH + - M3 (2026-02-25) -> ETA 2026-03-09 | +12d | MED-HIGH + - M4 (2026-03-04) -> ETA 2026-03-18 | +14d | MED-HIGH + - M5 (2026-03-08) -> ETA 2026-03-23 | +15d | MEDIUM + - M6 (2026-03-13) -> ETA 2026-03-31 | +18d | MEDIUM - Track forecast (Track | Status | ETA | Risk | Blocking): - - Track A (Plan lifecycle + action/plan rebaseline) | behind ~6-8d | ETA M1+ | HIGH | action/plan model + persistence + CLI refactor - - Track B (Projects + resources + sandbox) | not started | ETA M2+ | HIGH | resource registry + resource types + sandbox strategies missing - - Track C (Actors + tools + skills + validations) | not started | ETA M3+ | HIGH | tool/skill/validation registries + actor YAML v3 missing - - Track D (Decision tree + invariants + automation) | not started | ETA M4+ | HIGH | decision persistence + correction + invariant flow absent + - Track A (Plan lifecycle + persistence) | behind ~6-8d | ETA M1+ | HIGH | action/plan alignment + persistence wiring + - Track B (Projects/resources + sandbox) | not started | ETA M2+ | HIGH | resource registry + sandbox strategies missing + - Track C (Actors/tools/skills/validations) | not started | ETA M3+ | HIGH | registries + actor YAML missing + - Track D (Change tracking + apply pipeline) | not started | ETA M1+ | HIGH | tool runtime + change tracking absent - Track Q (Quality automation) | ahead | ETA on-time | LOW | gates landed, only maintenance adjustments - Track T (Testing) | at risk (Rui out) | ETA slips 4-6d | HIGH | QA load on Brent/Jeff until Rui returns - Developer forecast (Name | Availability | Load | Risk | Focus): - - Jeff | available | critical-path overloaded | HIGH | tool router + plan execute/apply integration + CLI rebaseline - - Luis | available | high | MEDIUM | plan model alignment + persistence + sandbox/change tracking - - Hamza | available | high | HIGH | resource registry + resource types + project linking - - Aditya | available | medium | MEDIUM | actor YAML schema + examples + skill config - - Brent | available | high (QA pickup) | MED-HIGH | test coverage + nox verification for M1/M2 tracks + - Jeff | available | critical-path overloaded | HIGH | CLI rebaseline + tool router + execute/apply integration + - Luis | available | high | MEDIUM | persistence + sandbox/change tracking + - Hamza | available | high | HIGH | resource registry + project linking + - Aditya | available | medium | MEDIUM | actor YAML + skill config + - Brent | available | high (QA pickup) | MED-HIGH | tests + nox verification for M1/M2 - Rui | unavailable 2026-02-13 to 2026-02-27 | zero | HIGH | tasks reassigned; resume after 2026-02-27 - Mike/Brian | standby | low | LOW | none -- Current codebase delta vs spec (verified today): - - Actions are CLI-created with ULID `action_id`, draft state, and legacy flags; YAML config loader/schema and config-only creation are missing. - - Plan model includes an Action phase and uses `project_ids` ULIDs; plan state/phase and action linkage are not spec-aligned. - - PlanLifecycleService is in-memory; persistence-backed repositories, migrations, and DI wiring are not implemented. - - Legacy plan workflow (`tell/build/apply`) is still primary; v3 lifecycle is not connected to execution or tool routing. - - Project model is path-based (`.cleveragents`); no namespaced project registry or resource linking per spec. - - Resource registry/types/DAG, sandbox strategies, and auto-discovery handlers are absent. - - Tool/skill/validation registries, tool runtime lifecycle, and tool-based ChangeSet tracking are absent. - - Actor configuration is v2 format; actor YAML v3 schema, graph compilation, and skill integration are missing. - - Decision tree, invariants, automation profiles, validations, ACMS, and output rendering formats are not implemented. + +### 2026-02-13 (Day 3 since kickoff on 2026-02-11) +- Timeline reference: Day 7/M1 = 2026-02-18, Day 10/M2 = 2026-02-21, Day 14/M3 = 2026-02-25, Day 21/M4 = 2026-03-04, Day 25/M5 = 2026-03-08, Day 30/M6 = 2026-03-13, Day 35/M7 = 2026-03-18. +- Snapshot (Team Status | Overall Risk | Pace Notes): **Behind ~4-6 days** | Overall risk = HIGH | CI rebaseline to Hatch + nox confirmed; M2 resource scope trimmed to git-checkout + fs-mount + fs-directory/file; local-only MVP confirmed. +- Milestone forecast (Target -> ETA | Delta | Risk): + - M1 (2026-02-18) -> ETA 2026-02-22 | +4d | HIGH + - M2 (2026-02-21) -> ETA 2026-02-27 | +6d | HIGH + - M3 (2026-02-25) -> ETA 2026-03-07 | +10d | MED-HIGH + - M4 (2026-03-04) -> ETA 2026-03-17 | +13d | MED-HIGH + - M5 (2026-03-08) -> ETA 2026-03-23 | +15d | MEDIUM + - M6 (2026-03-13) -> ETA 2026-03-31 | +18d | MEDIUM +- Track forecast (Track | Status | ETA | Risk | Blocking): + - Track A (Plan lifecycle + persistence) | behind ~3-5d | ETA M1+4 | HIGH | action model rebaseline + repo/persistence wiring + - Track B (Projects/resources + sandbox) | behind ~6-8d | ETA M2+6 | HIGH | resource registry + git_worktree sandbox + - Track C (Actors/tools/skills/validations) | behind ~7-10d | ETA M3+10 | MED-HIGH | tool/skill/validation registries + actor YAML v3 + - Track D (Change tracking + apply pipeline) | behind ~6-9d | ETA M1+7 | HIGH | tool runtime + changeset + apply gating + - Track Q (Quality automation) | slightly behind | ETA M1+2 | MED | CI not yet nox/Hatch aligned; coverage gate mismatch + - Track T (Testing) | at risk (Rui out) | ETA slips 4-6d | HIGH | QA load on Brent + feature owners +- Developer forecast (Name | Availability | Load | Risk | Focus): + - Jeff | available | critical-path overloaded | HIGH | action model rebaseline, CLI rebaseline, tool runtime + execute/apply integration + - Luis | available | high | MEDIUM | persistence wiring + sandbox strategy + apply pipeline + - Hamza | available | high | HIGH | resource registry + project linking + resource type schemas + - Aditya | available | medium | MEDIUM | actor/skill YAML + hierarchical graph configs + - Brent | available | high (QA + CI) | MED-HIGH | CLI coverage + nox/CI alignment + integration tests + - Rui | unavailable 2026-02-13 to 2026-02-27 | zero | HIGH | testing tasks deferred or reassigned + - Mike/Brian | standby | low | LOW | none ## Implementation Checklist @@ -809,20 +829,14 @@ Execute all required tests through the appropriate `nox` sessions—never call ` **Commit Completion Rule**: A **COMMIT** item is checked only after every subtask is complete, `nox` has passed, coverage is verified >=97%, and `git commit -m ""` (using the commit message in the COMMIT header) has been executed. **Gitflow Standard (required for every COMMIT item)**: -- Every **parallel subtrack** must list explicit Git subtasks with the exact commands shown below and a concrete branch name. If a subtrack spans multiple COMMIT items, the branch is shared and each COMMIT item must explicitly reference that branch name. +- Every **COMMIT** block must include explicit Git subtasks with the exact commands for: checkout master, pull master, create/checkout the feature branch, merge `origin/master` into the branch before final tests, `git add .`, and `git commit -m ""`. +- Do **not** list Git command tasks outside a **COMMIT** block; any Git command must be a child of the owning **COMMIT** item. - Branches follow Gitflow naming: `feature/
-` (one branch per subtrack unless the subtrack explicitly states otherwise). - **Merge policy**: merging from a feature branch into `master` is done in **Forgejo via PR only** (no CLI merge to master). -- Required Git subtasks (must appear under each subtrack before its COMMIT items): - - `git checkout master` - - `git pull origin master` - - `git checkout -b feature/` - - `git push -u origin feature/` - - `git fetch origin && git merge origin/master` (run before final tests and before commit) - - Forgejo PR: open PR from `feature/` to `master`, wait for CI + review, merge in UI (no CLI merge) - - `git branch -d feature/` - - `git push origin --delete feature/` -- **Compatibility note**: If any existing subtrack still lists `git checkout master && git merge --no-ff feature/...`, treat that line as deprecated and replace it with the Forgejo PR step above (do not CLI-merge to master). -- **Missing Git steps**: If a COMMIT block lacks explicit Git tasks, prepend the Gitflow Standard commands above using the branch name from the COMMIT header before starting work. +- **Push prohibition**: do **not** include any `git push` commands in checklist items (pushing is handled outside the checklist). +- **PR requirement**: every branch with one or more commits must have a Forgejo PR task with an explicit description; merge happens in the Forgejo UI after CI + review. +- **Branch cleanup**: include local branch deletion commands after PR merge; remote deletion, if desired, should be done in Forgejo UI (no push commands). +- **Compatibility note**: If any existing subtrack still lists CLI merges (e.g., `git checkout master && git merge --no-ff feature/...`), replace with the Forgejo PR step above. ### Updated Team Assignments (by Expertise) @@ -977,15 +991,11 @@ Merge points and acceptance checks are tracked as checklist items under each mil **Parallel Group Q0-Minimum Gates [Brent - blocks merges]** -- [X] Git [Brent]: `git checkout master` -- [X] Git [Brent]: `git pull origin master` -- [X] Git [Brent]: `git checkout -b feature/q0-min-precommit` -- [X] Git [Brent]: `git push -u origin feature/q0-min-precommit` -- [X] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [X] Forgejo PR [Brent]: Open PR from `feature/q0-min-precommit` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [X] Git [Brent]: `git branch -d feature/q0-min-precommit` -- [X] Git [Brent]: `git push origin --delete feature/q0-min-precommit` - [X] **COMMIT (Owner: Brent | Group: Q0-Minimum | Branch: feature/q0-min-precommit) - Commit message: "feat(qa): add pre-commit baseline hooks"** - done on 2026-02-12 07:21:52 +0000 + - [X] Git [Brent]: `git checkout master` + - [X] Git [Brent]: `git pull origin master` + - [X] Git [Brent]: `git checkout -b feature/q0-min-precommit` + - [X] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [X] Code [Brent]: Add `pre-commit>=3.6.0` to `pyproject.toml` dev dependencies and ensure it is included in the `dev` extra. - [X] Code [Brent]: Create `.pre-commit-config.yaml` pinned to specific hook versions; include `ruff format`, `ruff check`, `pyright`, `check-merge-conflict`, `end-of-file-fixer`, `trailing-whitespace`. - [X] Code [Brent]: Add `pyrightconfig.json` validation to pre-commit (hook that fails if config missing or invalid). @@ -997,17 +1007,17 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [X] Tests (ASV) [Brent]: Add `asv/benchmarks/precommit_config_bench.py` to benchmark config parsing and hook list extraction. - [X] Quality [Brent]: Run `nox` (all default sessions, including benchmark). - [X] Quality [Brent]: Verify coverage >=97% via `nox -s coverage_report`. + - [X] Git [Brent]: `git add .` - [X] Commit [Brent]: `git commit -m "feat(qa): add pre-commit baseline hooks"`. + - [X] Forgejo PR [Brent]: Open PR from `feature/q0-min-precommit` to `master`, wait for CI + review, merge in UI (no CLI merge) + - [X] Git [Brent]: `git checkout master` + - [X] Git [Brent]: `git branch -d feature/q0-min-precommit` -- [ ] Git [Brent]: `git checkout master` -- [ ] Git [Brent]: `git pull origin master` -- [ ] Git [Brent]: `git checkout -b feature/q0-min-ci` -- [ ] Git [Brent]: `git push -u origin feature/q0-min-ci` -- [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Brent]: Open PR from `feature/q0-min-ci` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Brent]: `git branch -d feature/q0-min-ci` -- [ ] Git [Brent]: `git push origin --delete feature/q0-min-ci` - [ ] **COMMIT (Owner: Brent | Group: Q0-Minimum | Branch: feature/q0-min-ci) - Commit message: "feat(ci): add nox-based PR validation workflow"** + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git pull origin master` + - [ ] Git [Brent]: `git checkout -b feature/q0-min-ci` + - [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [X] Code [Brent]: Update `.forgejo/workflows/ci.yml` to install dependencies via Hatch and run `nox` (unit + integration + typecheck + lint + coverage_report); do not add GitHub workflows. - done on 2026-02-12 - [X] Code [Brent]: Ensure CI uses Python 3.13, caches pip/Hatch artifacts, and uploads `nox` logs on failure. - done on 2026-02-12 - [X] Code [Brent]: Fail pipeline if any `nox` session fails or coverage <97% (explicit coverage gate). - done on 2026-02-12 @@ -1017,85 +1027,89 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [X] Tests (ASV) [Brent]: Add `asv/benchmarks/ci_yaml_parse_bench.py` to benchmark workflow parsing and key lookup. - done on 2026-02-12 (benchmarks/ci_yaml_parse_bench.py) - [X] Quality [Brent]: Run `nox` (all default sessions, including benchmark). - done on 2026-02-12 (1673 scenarios passed, 0 failed) - [X] 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%. - done on 2026-02-12 (97% total, fail-under=97 passes) + - [ ] Git [Brent]: `git add .` (only after coverage check passes) - [ ] Commit [Brent]: `git commit -m "feat(ci): add nox-based PR validation workflow"`. + - [ ] Forgejo PR [Brent]: Open PR from `feature/q0-min-ci` to `master`, wait for CI + review, merge in UI (no CLI merge) + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git branch -d feature/q0-min-ci` -- [ ] Git [Brent]: `git checkout master` -- [ ] Git [Brent]: `git pull origin master` -- [ ] Git [Brent]: `git checkout -b feature/q0-min-coverage` -- [ ] Git [Brent]: `git push -u origin feature/q0-min-coverage` -- [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Brent]: Open PR from `feature/q0-min-coverage` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Brent]: `git branch -d feature/q0-min-coverage` -- [ ] Git [Brent]: `git push origin --delete feature/q0-min-coverage` -- [ ] **COMMIT (Owner: Brent | Group: Q0-Minimum | Branch: feature/q0-min-coverage) - Commit message: "feat(qa): enforce coverage >=97%"** - - [ ] Code [Brent]: Update `nox -s coverage_report` (or equivalent session) to fail when coverage <97% and emit a clear error message. - - [ ] Code [Brent]: Wire coverage threshold enforcement into CI summary output (explicit failure line for parsing). - - [ ] Docs [Brent]: Update `docs/development/testing.md` with new coverage requirement and sample output. +- [ ] **COMMIT (Owner: Brent | Group: Q0-Minimum | Branch: feature/q0-min-coverage) - Commit message: "feat(qa): enforce coverage >=97% in CI"** + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git pull origin master` + - [ ] Git [Brent]: `git checkout -b feature/q0-min-coverage` + - [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Brent]: Ensure `nox -s coverage_report` fails below 97% and emits a single-line error message suitable for CI parsing. + - [ ] Code [Brent]: Update CI summary output (or job annotations) to surface the 97% threshold failure line clearly. + - [ ] Docs [Brent]: Update `docs/development/testing.md` with the 97% coverage requirement and a sample failure output. - [ ] Tests (Behave) [Brent]: Add a scenario that parses coverage config and asserts threshold >=97%. - [ ] Tests (Robot) [Brent]: Add a Robot test that runs `nox -s coverage_report` and asserts pass/fail behavior. - [ ] Tests (ASV) [Brent]: Add `asv/benchmarks/coverage_report_bench.py` for coverage report runtime baseline. - [ ] Quality [Brent]: Run `nox` (all default sessions, including benchmark). + - [ ] Git [Brent]: `git add .` (only after coverage check passes) + - [ ] Git [Brent]: `git commit -m "feat(qa): enforce coverage >=97% in CI"` (only after coverage check passes) + - [ ] Forgejo PR [Brent]: Open PR from `feature/q0-min-coverage` to `master` with description "Enforce 97% coverage via nox coverage_report with explicit CI summary output and updated docs/tests.". + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git branch -d feature/q0-min-coverage` - [ ] 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%. - - [ ] Commit [Brent]: `git commit -m "feat(qa): enforce coverage >=97%"`. **Parallel Group Q0-Advanced Gates [Brent - AFTER M1]** -- [ ] Git [Brent]: `git checkout master` -- [ ] Git [Brent]: `git pull origin master` -- [ ] Git [Brent]: `git checkout -b feature/q0-adv-security` -- [ ] Git [Brent]: `git push -u origin feature/q0-adv-security` -- [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Brent]: Open PR from `feature/q0-adv-security` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Brent]: `git branch -d feature/q0-adv-security` -- [ ] Git [Brent]: `git push origin --delete feature/q0-adv-security` -- [ ] **COMMIT (Owner: Brent | Group: Q0-Advanced | Branch: feature/q0-adv-security) - Commit message: "feat(qa): add security scanning hooks"** - - [ ] Code [Brent]: Add `bandit[toml]>=1.7.5` and `semgrep` dev dependencies; configure rules in `pyproject.toml`. - - [ ] Code [Brent]: Add pre-commit hooks for Bandit + Semgrep with minimal safe ruleset and explicit exclude patterns. - - [ ] Code [Brent]: Add `nox -s security` session that runs Bandit + Semgrep with config files. - - [ ] Docs [Brent]: Document security scan expectations in `docs/development/quality-automation.md`. - - [ ] Tests (Behave) [Brent]: Add scenario verifying Bandit/Semgrep hooks are declared in `.pre-commit-config.yaml`. - - [ ] Tests (Robot) [Brent]: Add Robot test that runs `nox -s security` (create session if missing). +- [ ] **COMMIT (Owner: Brent | Group: Q0-Advanced | Branch: feature/q0-adv-security) - Commit message: "feat(qa): align security scans with nox"** + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git pull origin master` + - [ ] Git [Brent]: `git checkout -b feature/q0-adv-security` + - [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Brent]: Ensure `bandit[toml]>=1.7.5` and `semgrep` are in dev dependencies and configured in `pyproject.toml` + `.semgrep.yml`. + - [ ] Code [Brent]: Ensure pre-commit hooks for Bandit + Semgrep are present with explicit exclude patterns. + - [ ] Code [Brent]: Align `nox -s security` session to run Bandit + Semgrep with the same configs used in CI. + - [ ] Docs [Brent]: Document security scan expectations and severity gates in `docs/development/quality-automation.md`. + - [ ] Tests (Behave) [Brent]: Add a scenario verifying Bandit/Semgrep hooks are declared in `.pre-commit-config.yaml`. + - [ ] Tests (Robot) [Brent]: Add a Robot test that runs `nox -s security`. - [ ] Tests (ASV) [Brent]: Add `asv/benchmarks/security_scan_bench.py` to baseline scan runtime. - [ ] Quality [Brent]: Run `nox` (all default sessions, including benchmark). + - [ ] Git [Brent]: `git add .` (only after coverage check passes) + - [ ] Git [Brent]: `git commit -m "feat(qa): align security scans with nox"` (only after coverage check passes) + - [ ] Forgejo PR [Brent]: Open PR from `feature/q0-adv-security` to `master` with description "Align security scanning (Bandit + Semgrep) across pre-commit, nox, and CI with documented severity gates.". + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git branch -d feature/q0-adv-security` - [ ] 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%. - - [ ] Commit [Brent]: `git commit -m "feat(qa): add security scanning hooks"`. -- [ ] Git [Brent]: `git checkout master` -- [ ] Git [Brent]: `git pull origin master` -- [ ] Git [Brent]: `git checkout -b feature/q0-adv-complexity` -- [ ] Git [Brent]: `git push -u origin feature/q0-adv-complexity` -- [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Brent]: Open PR from `feature/q0-adv-complexity` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Brent]: `git branch -d feature/q0-adv-complexity` -- [ ] Git [Brent]: `git push origin --delete feature/q0-adv-complexity` -- [ ] **COMMIT (Owner: Brent | Group: Q0-Advanced | Branch: feature/q0-adv-complexity) - Commit message: "feat(qa): add complexity monitoring"** - - [ ] Code [Brent]: Add `radon>=6.0.1` and a `nox -s complexity` session with threshold <=10. - - [ ] Code [Brent]: Add complexity check to CI matrix (non-blocking until M3) and print summary. - - [ ] Docs [Brent]: Document complexity thresholds and exceptions policy. - - [ ] Tests (Behave) [Brent]: Add scenario that asserts radon configuration exists. - - [ ] Tests (Robot) [Brent]: Add Robot test that runs `nox -s complexity` on a fixture module. +- [ ] **COMMIT (Owner: Brent | Group: Q0-Advanced | Branch: feature/q0-adv-complexity) - Commit message: "feat(qa): align complexity checks with nox"** + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git pull origin master` + - [ ] Git [Brent]: `git checkout -b feature/q0-adv-complexity` + - [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Brent]: Ensure `radon>=6.0.1` is in dev dependencies and `nox -s complexity` enforces the agreed thresholds. + - [ ] Code [Brent]: Align CI to call `nox -s complexity` (non-blocking until M3) and emit a summary line for parsing. + - [ ] Docs [Brent]: Document complexity thresholds, exception policy, and how to interpret CI output. + - [ ] Tests (Behave) [Brent]: Add a scenario that asserts radon configuration exists. + - [ ] Tests (Robot) [Brent]: Add a Robot test that runs `nox -s complexity` on a fixture module. - [ ] Tests (ASV) [Brent]: Add `asv/benchmarks/complexity_scan_bench.py` for radon runtime baseline. - [ ] Quality [Brent]: Run `nox` (all default sessions, including benchmark). + - [ ] Git [Brent]: `git add .` (only after coverage check passes) + - [ ] Git [Brent]: `git commit -m "feat(qa): align complexity checks with nox"` (only after coverage check passes) + - [ ] Forgejo PR [Brent]: Open PR from `feature/q0-adv-complexity` to `master` with description "Align radon complexity checks with nox + CI outputs and document thresholds.". + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git branch -d feature/q0-adv-complexity` - [ ] 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%. - - [ ] Commit [Brent]: `git commit -m "feat(qa): add complexity monitoring"`. -- [ ] Git [Brent]: `git checkout master` -- [ ] Git [Brent]: `git pull origin master` -- [ ] Git [Brent]: `git checkout -b feature/q0-adv-docs` -- [ ] Git [Brent]: `git push -u origin feature/q0-adv-docs` -- [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Brent]: Open PR from `feature/q0-adv-docs` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Brent]: `git branch -d feature/q0-adv-docs` -- [ ] Git [Brent]: `git push origin --delete feature/q0-adv-docs` -- [ ] **COMMIT (Owner: Brent | Group: Q0-Advanced | Branch: feature/q0-adv-docs) - Commit message: "docs(qa): add quality automation guide"** - - [ ] Docs [Brent]: Create `docs/development/quality-automation.md` with hook lists, CI steps, and troubleshooting. - - [ ] Docs [Brent]: Link the guide from `README.md` and `CONTRIBUTING.md`. - - [ ] Tests (Behave) [Brent]: Add scenario verifying the guide exists and is linked. - - [ ] Tests (Robot) [Brent]: Add Robot doc build smoke test via `nox -s docs`. +- [ ] **COMMIT (Owner: Brent | Group: Q0-Advanced | Branch: feature/q0-adv-docs) - Commit message: "docs(qa): refresh quality automation guide"** + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git pull origin master` + - [ ] Git [Brent]: `git checkout -b feature/q0-adv-docs` + - [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Docs [Brent]: Refresh `docs/development/quality-automation.md` to reflect nox matrix, CI job names, and coverage >=97% gate. + - [ ] Docs [Brent]: Link the guide from `README.md` and `CONTRIBUTING.md` (verify links still valid). + - [ ] Tests (Behave) [Brent]: Add a scenario verifying the guide exists and is linked from README/CONTRIBUTING. + - [ ] Tests (Robot) [Brent]: Add a Robot doc build smoke test via `nox -s docs`. - [ ] Tests (ASV) [Brent]: Add `asv/benchmarks/docs_build_bench.py` for docs build runtime baseline. - [ ] Quality [Brent]: Run `nox` (all default sessions, including benchmark). + - [ ] Git [Brent]: `git add .` (only after coverage check passes) + - [ ] Git [Brent]: `git commit -m "docs(qa): refresh quality automation guide"` (only after coverage check passes) + - [ ] Forgejo PR [Brent]: Open PR from `feature/q0-adv-docs` to `master` with description "Refresh quality automation guide with updated nox/CI matrix and coverage gate details.". + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git branch -d feature/q0-adv-docs` - [ ] 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%. - - [ ] Commit [Brent]: `git commit -m "docs(qa): add quality automation guide"`. --- @@ -1177,33 +1191,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [X] **A2.1** [Luis] Extend Action model with additional fields (follow-up): - [X] Field `estimation_actor: str | None` - optional actor for cost/risk estimation (already present at `action.py:219`) - [X] Field `review_actor: str | None` - optional actor for code review (already present at `action.py:211`) - - [ ] Field `safety_profile: SafetyProfile | None` - safety constraints (DEFERRED to post-30; see Stage POST1) - - [ ] **A2.2** [Luis] Define `SafetyProfile` model (DEFERRED to post-30; see Stage POST1): - - [ ] Field `allowed_skill_categories: list[str] | None` - whitelist of skill types - - [ ] Field `require_checkpoints: bool` - require checkpointable skills - - [ ] Field `require_sandbox: bool` - require sandbox for all resources - - [ ] Field `require_human_approval: bool` - require approval at Apply - - [ ] Field `max_cost_usd: float | None` - budget cap - - [ ] Field `max_retries: int` - maximum retry attempts - - [ ] **A2.3** [Rui] Write tests for extended action model (DEFERRED to post-30; see Stage POST1): - - [ ] Scenario: Action with estimation_actor validates correctly - - [ ] Scenario: Safety profile enforced during execution **Parallel Group A2b: Action/Plan Spec Rebaseline (M1-critical)** **PARALLEL SUBTRACK A2b.alpha [Jeff]**: Action model alignment + YAML-first semantics **PARALLEL SUBTRACK A2b.beta [Luis]**: Plan model alignment + action/project linkage **PARALLEL SUBTRACK A2b.gamma [Aditya]**: Action YAML schema + examples + loader **SEQUENTIAL MERGE NOTE**: A2b.alpha + A2b.beta + A2b.gamma must land before A4b CLI rebaseline. -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m1-action-model` -- [ ] Git [Jeff]: `git push -u origin feature/m1-action-model` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m1-action-model` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m1-action-model` -- [ ] Git [Jeff]: `git push origin --delete feature/m1-action-model` - [ ] **COMMIT (Owner: Jeff | Group: A2b.alpha | Branch: feature/m1-action-model) - Commit message: "feat(domain): align action model with spec"** - - [ ] Code [Jeff]: Update `src/cleveragents/domain/models/core/action.py` to remove `action_id` and make namespaced name the unique identifier. + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m1-action-model` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Jeff]: Update `src/cleveragents/domain/models/core/action.py` to remove `action_id` and make the namespaced name the unique identifier. - [ ] Code [Jeff]: Replace `short_description` with required `description`, keep optional `long_description`, and preserve stable serialization order. - [ ] Code [Jeff]: Align `ActionState` to `available`/`archived` only; default to `available` and remove draft-only behavior. - [ ] Code [Jeff]: Add optional `automation_profile`, `invariant_actor`, and `invariants` list with trimming, de-dup, and blank rejection. @@ -1219,15 +1218,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/action_model_bench.py` for argument parsing + templating throughput. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. -- [X] Git [Jeff]: `git checkout master` -- [X] Git [Jeff]: `git pull origin master` -- [X] Git [Jeff]: `git checkout -b feature/m1-plan-model` -- [X] Git [Jeff]: `git push -u origin feature/m1-plan-model` -- [X] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [X] Forgejo PR [Jeff]: Open PR from `feature/m1-plan-model` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [X] Git [Jeff]: `git branch -d feature/m1-plan-model` -- [X] Git [Jeff]: `git push origin --delete feature/m1-plan-model` -- [X] **COMMIT (Owner: Luis | Group: A2b.beta | Branch: feature/m1-plan-model) - Commit message: "feat(domain): align plan model with spec"** + - [ ] Git [Jeff]: `git add .` + - [ ] Git [Jeff]: `git commit -m "feat(domain): align action model with spec"` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m1-action-model` to `master` with description "Align action domain model to spec: YAML-first naming, invariants, and argument typing; updates docs + tests." + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m1-action-model` +- [X] **COMMIT (Owner: Luis | Group: A2b.beta | Branch: feature/m1-plan-model) - Commit message: "feat(domain): align plan model with spec"** - done on 2026-02-12 22:58:15 -0500 + - [X] Git [Jeff]: `git checkout master` + - [X] Git [Jeff]: `git pull origin master` + - [X] Git [Jeff]: `git checkout -b feature/m1-plan-model` + - [X] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [x] Code [Jeff]: Remove Action phase from `PlanPhase`; align lifecycle to strategize/execute/apply/applied. - [x] Code [Jeff]: Replace `action_state` with `processing_state` only; enforce phase/state consistency per spec. - [x] Code [Jeff]: Add `action_name` (namespaced) and remove `action_id` usage throughout plan model. @@ -1243,15 +1243,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [x] Tests (ASV) [Jeff]: Add `asv/benchmarks/plan_model_bench.py` for plan validation + serialization. - [x] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). NOTE: Benchmark fails because ASV installs from git HEAD; uncommitted code not available in ASV env. All other sessions pass. - [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%. -- [ ] Git [Aditya]: `git checkout master` -- [ ] Git [Aditya]: `git pull origin master` -- [ ] Git [Aditya]: `git checkout -b feature/m1-action-schema` -- [ ] Git [Aditya]: `git push -u origin feature/m1-action-schema` -- [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Aditya]: Open PR from `feature/m1-action-schema` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Aditya]: `git branch -d feature/m1-action-schema` -- [ ] Git [Aditya]: `git push origin --delete feature/m1-action-schema` + - [X] Git [Jeff]: `git add .` + - [X] Git [Jeff]: `git commit -m "feat(domain): align plan model with spec"` + - [X] Forgejo PR [Jeff]: Open PR from `feature/m1-plan-model` to `master`, wait for CI + review, merge in UI (no CLI merge) + - [X] Git [Jeff]: `git checkout master` + - [X] Git [Jeff]: `git branch -d feature/m1-plan-model` - [ ] **COMMIT (Owner: Aditya | Group: A2b.gamma | Branch: feature/m1-action-schema) - Commit message: "docs(action): add action YAML schema and examples"** + - [ ] Git [Aditya]: `git checkout master` + - [ ] Git [Aditya]: `git pull origin master` + - [ ] Git [Aditya]: `git checkout -b feature/m1-action-schema` + - [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Docs [Aditya]: Author `docs/schema/action.schema.yaml` with required fields, versioning, and namespaced name validation. - [ ] Docs [Aditya]: Add schema blocks for arguments, invariants, automation_profile, inputs_schema, and optional actor refs. - [ ] Docs [Aditya]: Add action examples under `examples/actions/` (minimal, invariant-heavy, read-only, estimation-actor, inputs_schema). @@ -1263,6 +1264,11 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Aditya]: Add `asv/benchmarks/action_schema_bench.py` for YAML schema validation throughput. - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Aditya]: `git add .` + - [ ] Git [Aditya]: `git commit -m "docs(action): add action YAML schema and examples"` + - [ ] Forgejo PR [Aditya]: Open PR from `feature/m1-action-schema` to `master` with description "Introduce action YAML schema + examples and loader validation; aligns action configs with spec for M1.". + - [ ] Git [Aditya]: `git checkout master` + - [ ] Git [Aditya]: `git branch -d feature/m1-action-schema` - [X] **Stage A3: Plan State Machine** (Day 1-2) - COMPLETED 2026-02-05 - [X] Code: Implement plan lifecycle state machine @@ -1294,17 +1300,13 @@ Merge points and acceptance checks are tracked as checklist items under each mil **PARALLEL SUBTRACK A4b.alpha [Jeff]**: Action/plan CLI alignment to spec **PARALLEL SUBTRACK A4b.beta [Brent]**: Behave + Robot CLI coverage after A4b.alpha **SEQUENTIAL MERGE NOTE**: A4b.alpha depends on A2b.alpha/beta/gamma; A4b.beta runs after A4b.alpha to lock outputs. -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m1-cli-rebaseline` -- [ ] Git [Jeff]: `git push -u origin feature/m1-cli-rebaseline` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m1-cli-rebaseline` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m1-cli-rebaseline` -- [ ] Git [Jeff]: `git push origin --delete feature/m1-cli-rebaseline` - [ ] **COMMIT (Owner: Jeff | Group: A4b.alpha | Branch: feature/m1-cli-rebaseline) - Commit message: "feat(cli): rebaseline action and plan lifecycle commands"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m1-cli-rebaseline` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Enforce config-only `agents action create --config` (no legacy flags), add `--update` and `--dry-run`. - - [ ] Code [Jeff]: Remove or deprecate `action available`; align `action list/show/archive` to namespaced names only. + - [ ] Code [Jeff]: Remove `action available`; align `action list/show/archive` to namespaced names only. - [ ] Code [Jeff]: Update `plan use` to accept positional projects, parse `--arg name=value`, and apply automation_profile/invariants. - [ ] Code [Jeff]: Add actor override flags (`--strategy-actor`, `--execution-actor`, `--estimation-actor`, `--invariant-actor`) and validate actors. - [ ] Code [Jeff]: Route CLI to persistence-backed PlanLifecycleService via DI (no in-memory fallback). @@ -1315,15 +1317,17 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/cli_rebaseline_bench.py` for CLI parsing overhead. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. -- [ ] Git [Brent]: `git checkout master` -- [ ] Git [Brent]: `git pull origin master` -- [ ] Git [Brent]: `git checkout -b feature/m1-cli-tests` -- [ ] Git [Brent]: `git push -u origin feature/m1-cli-tests` -- [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Brent]: Open PR from `feature/m1-cli-tests` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Brent]: `git branch -d feature/m1-cli-tests` -- [ ] Git [Brent]: `git push origin --delete feature/m1-cli-tests` + - [ ] Git [Jeff]: `git add .` + - [ ] Git [Jeff]: `git commit -m "feat(cli): rebaseline action and plan lifecycle commands"` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m1-cli-rebaseline` to `master` with description "Rebaseline action/plan CLI to spec (config-only action create, plan use args/invariants, updated outputs) with tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m1-cli-rebaseline` + - [ ] **COMMIT (Owner: Brent | Group: A4b.beta | Branch: feature/m1-cli-tests) - Commit message: "test(cli): cover plan lifecycle commands"** + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git pull origin master` + - [ ] Git [Brent]: `git checkout -b feature/m1-cli-tests` + - [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Tests (Behave) [Brent]: Add coverage for `plan execute`, `plan apply`, `plan status`, `plan list`, `plan cancel` (success + error paths). - [ ] Tests (Behave) [Brent]: Add negative cases for invalid automation profile, invalid invariant actor, unknown action. - [ ] Tests (Behave) [Brent]: Add output snapshot assertions for table columns and JSON/YAML formats. @@ -1332,6 +1336,11 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Brent]: Add `asv/benchmarks/plan_cli_smoke_bench.py` for CLI argument parsing overhead. - [ ] Quality [Brent]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Brent]: `git add .` + - [ ] Git [Brent]: `git commit -m "test(cli): cover plan lifecycle commands"` + - [ ] Forgejo PR [Brent]: Open PR from `feature/m1-cli-tests` to `master` with description "Add Behave + Robot CLI coverage for plan lifecycle commands and output formats.". + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git branch -d feature/m1-cli-tests` **Parallel Group A5: Plan Persistence (M1-critical)** **PARALLEL SUBTRACK A5.alpha [Jeff]**: Alembic migrations for action/plan tables @@ -1340,15 +1349,11 @@ Merge points and acceptance checks are tracked as checklist items under each mil **PARALLEL CONTINUOUS [Brent]**: Persistence tests added inside each commit **SEQUENTIAL NOTE**: `action_arguments` migration must land after `actions` migration; A5.legacy should land after A4b CLI alignment + A5.gamma persistence wiring. **SEQUENTIAL NOTE**: A5.alpha migrations must match A2b fields; rebase Alembic head after A2b merges before cutting follow-on revisions. -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m1-db-actions` -- [ ] Git [Jeff]: `git push -u origin feature/m1-db-actions` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m1-db-actions` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m1-db-actions` -- [ ] Git [Jeff]: `git push origin --delete feature/m1-db-actions` - [ ] **COMMIT (Owner: Jeff | Group: A5.alpha | Branch: feature/m1-db-actions) - Commit message: "feat(db): add actions and action_invariants tables"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m1-db-actions` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Add Alembic migration skeleton with explicit down_revision dependency and naming conventions for indexes/constraints. - [ ] Code [Jeff]: Create `actions` table with **namespaced_name (PK)**, `namespace`, `name`, and actor refs (strategy/execution/review/apply/estimation/invariant). - [ ] Code [Jeff]: Add `state` enum column (`available`/`archived`) with default `available` (no draft state). @@ -1363,7 +1368,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/db_migration_actions_bench.py` for migration runtime baseline. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` + - [ ] Git [Jeff]: `git commit -m "feat(db): add actions and action_invariants tables"` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m1-db-actions` to `master` with description "Add actions + action_invariants tables aligned to spec with indices and migration tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m1-db-actions` - [ ] **COMMIT (Owner: Jeff | Group: A5.alpha | Branch: feature/m1-db-actions) - Commit message: "feat(db): add action_arguments table"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m1-db-actions` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Add Alembic migration for `action_arguments` table with FK to `actions.namespaced_name` and ordered `position` for deterministic argument ordering. - [ ] Code [Jeff]: Add columns for `name`, `arg_type` (string/integer/float/boolean/list), `requirement`, `description`, `default_value_json`, `min_value`, `max_value`, `validation_pattern`. - [ ] Code [Jeff]: Add check constraints for numeric min/max ordering and non-empty argument names. @@ -1374,7 +1388,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/db_migration_action_args_bench.py` for migration baseline. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` + - [ ] Git [Jeff]: `git commit -m "feat(db): add action_arguments table"` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m1-db-actions` to `master` with description "Add action_arguments table for action argument persistence with ordering and constraints.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m1-db-actions` - [ ] **COMMIT (Owner: Jeff | Group: A5.alpha | Branch: feature/m1-db-actions) - Commit message: "feat(db): add lifecycle_plans and plan_projects tables"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m1-db-actions` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Add Alembic migration for `lifecycle_plans` with ULID PK and identity fields (parent_plan_id, root_plan_id, attempt). - [ ] Code [Jeff]: Add core plan columns: `namespaced_name`, `namespace`, `description`, `definition_of_done` (rendered). - [ ] Code [Jeff]: Add lifecycle columns: `phase` enum (strategize/execute/apply), `processing_state` enum (queued/processing/errored/complete/cancelled), and phase timestamps. @@ -1390,7 +1413,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/db_migration_plans_bench.py` for migration runtime baseline. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` + - [ ] Git [Jeff]: `git commit -m "feat(db): add lifecycle_plans and plan_projects tables"` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m1-db-actions` to `master` with description "Add lifecycle_plans + plan_projects schema aligned to spec with indexes and migration tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m1-db-actions` - [ ] **COMMIT (Owner: Jeff | Group: A5.alpha | Branch: feature/m1-db-actions) - Commit message: "feat(db): add plan arguments and plan invariants tables"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m1-db-actions` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Add `plan_arguments` table with plan_id, name, value_json, value_type, and `position` for stable ordering. - [ ] Code [Jeff]: Add `plan_invariants` table with plan_id, invariant_text, source_scope (plan/action/project/global), optional `position`, and created_at. - [ ] Code [Jeff]: Add uniqueness constraint on (plan_id, name) for arguments and (plan_id, invariant_text) for invariants. @@ -1401,15 +1433,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/db_migration_plan_args_bench.py` for migration runtime baseline. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m1-orm-models` -- [ ] Git [Luis]: `git push -u origin feature/m1-orm-models` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m1-orm-models` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m1-orm-models` -- [ ] Git [Luis]: `git push origin --delete feature/m1-orm-models` + - [ ] Git [Jeff]: `git add .` + - [ ] Git [Jeff]: `git commit -m "feat(db): add plan arguments and plan invariants tables"` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m1-db-actions` to `master` with description "Add plan_arguments + plan_invariants schema and constraints aligned to spec.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m1-db-actions` - [ ] **COMMIT (Owner: Luis | Group: A5.beta | Branch: feature/m1-orm-models) - Commit message: "feat(models): add action and lifecycle plan ORM models"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m1-orm-models` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [X] Code [Luis]: Add SQLAlchemy base model mixins for ULID PKs, timestamps, and JSON columns (reused by plan/resource models). - [X] Code [Luis]: Implement `ActionModel` with PK `namespaced_name`, namespace/name, description/long_description, actor refs, DoD, automation_profile, invariant_actor, state (available/archived), inputs_schema_json, tags_json, created_by. - [X] Code [Luis]: Implement `ActionInvariantModel` with FK to actions by namespaced_name, invariant_text, position, and created_at. @@ -1426,15 +1459,38 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/orm_mapping_bench.py` for Action/Plan mapping throughput. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m1-repositories` -- [ ] Git [Jeff]: `git push -u origin feature/m1-repositories` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m1-repositories` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m1-repositories` -- [ ] Git [Jeff]: `git push origin --delete feature/m1-repositories` + - [ ] Git [Luis]: `git add .` + - [ ] Git [Luis]: `git commit -m "feat(models): add action and lifecycle plan ORM models"` + - [ ] Forgejo PR [Luis]: Open PR from `feature/m1-orm-models` to `master` with description "Add/align ORM models for action + plan persistence to match spec fields and ordering.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m1-orm-models` +- [ ] **COMMIT (Owner: Luis | Group: A5.beta2 | Branch: feature/m1-orm-models-refactor) - Commit message: "refactor(models): align action/plan ORM with spec IDs"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m1-orm-models-refactor` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Luis]: Update `LifecycleActionModel` to use namespaced name as the primary key (remove `action_id` ULID) and align column names with spec (`description`, `long_description`, `automation_profile`, `invariant_actor`, `inputs_schema_json`, `tags_json`). + - [ ] Code [Luis]: Update `LifecyclePlanModel` to reference `action_name` (namespaced) instead of `action_id`; replace `project_ids` with serialized `project_links` per spec. + - [ ] Code [Luis]: Add/align plan metadata fields (`automation_profile`, `invariants`, `arguments` + `arguments_order`, `validation_summary`, `decision_root_id`, `error_details_json`) and remove legacy fields no longer in spec. + - [ ] Code [Luis]: Align `processing_state` enum values to spec and remove legacy `state` values that no longer apply. + - [ ] Code [Luis]: Update ORM relationships to use namespaced names and ensure ordering for arguments/invariants/project links. + - [ ] Code [Luis]: Update `to_domain()`/`from_domain()` mappers for actions/plans to reflect new identifiers and serialized fields. + - [ ] Docs [Luis]: Update ORM mapping notes in `docs/reference/database_schema.md` to reflect the new identifiers and column mappings. + - [ ] Tests (Behave) [Luis]: Add scenarios verifying ORM round-trip with namespaced IDs and project links. + - [ ] Tests (Robot) [Luis]: Add Robot test that loads an action + plan and asserts new field mappings. + - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/orm_refactor_bench.py` for mapping throughput baseline. + - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). + - [ ] Git [Luis]: `git add .` (only after coverage check passes) + - [ ] Git [Luis]: `git commit -m "refactor(models): align action/plan ORM with spec IDs"` (only after coverage check passes) + - [ ] Forgejo PR [Luis]: Open PR from `feature/m1-orm-models-refactor` to `master` with description "Align ORM models with spec identifiers (namespaced action IDs, plan action_name linkage, project_links serialization) and update mappings/tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m1-orm-models-refactor` + - [ ] 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%. - [ ] **COMMIT (Owner: Jeff | Group: A5.gamma | Branch: feature/m1-repositories) - Commit message: "feat(repo): add action and lifecycle plan repositories"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m1-repositories` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Define repository interfaces in `src/cleveragents/domain/repositories/` for ActionRepository and PlanRepository (methods + expected errors). - [X] Code [Luis]: Implement ActionRepository CRUD keyed by namespaced_name with deterministic ordering (created_at) and filters (namespace, state, automation_profile). (completed by Luis) - [ ] Code [Jeff]: Implement ActionRepository persistence for arguments + invariants with ordered `position` preservation. @@ -1448,15 +1504,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/repository_query_bench.py` for list + filter performance. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m1-lifecycle-service` -- [ ] Git [Luis]: `git push -u origin feature/m1-lifecycle-service` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m1-lifecycle-service` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m1-lifecycle-service` -- [ ] Git [Luis]: `git push origin --delete feature/m1-lifecycle-service` + - [ ] Git [Jeff]: `git add .` + - [ ] Git [Jeff]: `git commit -m "feat(repo): add action and lifecycle plan repositories"` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m1-repositories` to `master` with description "Add action + plan repositories and repository interfaces with ordered persistence and filters.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m1-repositories` - [ ] **COMMIT (Owner: Luis | Group: A5.gamma | Branch: feature/m1-lifecycle-service) - Commit message: "feat(service): persist plan lifecycle via repositories"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m1-lifecycle-service` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Update `PlanLifecycleService` to use repositories instead of in-memory dicts. - [ ] Code [Luis]: Replace in-memory action/plan maps with repository lookups in `get_action`, `get_plan`, and list helpers. - [ ] Code [Luis]: Persist action creation keyed by namespaced_name with arguments/invariants and enforce uniqueness. @@ -1470,7 +1527,17 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/plan_lifecycle_service_bench.py` for persistence operations. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` + - [ ] Git [Luis]: `git commit -m "feat(service): persist plan lifecycle via repositories"` + - [ ] Forgejo PR [Luis]: Open PR from `feature/m1-lifecycle-service` to `master` with description "Persist plan lifecycle via repositories + UoW; remove in-memory lifecycle storage.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m1-lifecycle-service` + - [ ] **COMMIT (Owner: Luis | Group: A5.gamma | Branch: feature/m1-lifecycle-service) - Commit message: "feat(di): wire lifecycle repos and services"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m1-lifecycle-service` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Register ActionRepository + PlanRepository in `application/container.py` and UnitOfWork. - [ ] Code [Luis]: Register PlanLifecycleService with repository dependencies and settings in container. - [ ] Code [Luis]: Inject lifecycle service into CLI commands; remove direct service instantiation in `action.py` and `plan.py`. @@ -1481,16 +1548,17 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/di_container_bench.py` for container resolution overhead. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` + - [ ] Git [Luis]: `git commit -m "feat(di): wire lifecycle repos and services"` + - [ ] Forgejo PR [Luis]: Open PR from `feature/m1-lifecycle-service` to `master` with description "Wire lifecycle repositories + services in DI container and CLI entrypoints.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m1-lifecycle-service` -- [ ] Git [Brent]: `git checkout master` -- [ ] Git [Brent]: `git pull origin master` -- [ ] Git [Brent]: `git checkout -b feature/m1-persistence-tests` -- [ ] Git [Brent]: `git push -u origin feature/m1-persistence-tests` -- [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Brent]: Open PR from `feature/m1-persistence-tests` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Brent]: `git branch -d feature/m1-persistence-tests` -- [ ] Git [Brent]: `git push origin --delete feature/m1-persistence-tests` - [ ] **COMMIT (Owner: Brent | Group: A5.tests | Branch: feature/m1-persistence-tests) - Commit message: "test(persistence): add plan/action persistence suites"** + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git pull origin master` + - [ ] Git [Brent]: `git checkout -b feature/m1-persistence-tests` + - [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Tests (Behave) [Brent]: Add plan persistence scenarios (create, update phase/state, list filters, plan tree, concurrency). - [ ] Tests (Behave) [Brent]: Add action persistence scenarios (create, list available, archive guard, action arguments persisted). - [ ] Tests (Behave) [Brent]: Add cross-restart scenarios verifying plan status persists across process restarts. @@ -1500,6 +1568,11 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Brent]: Add `asv/benchmarks/persistence_suites_bench.py` for DB read/write baselines. - [ ] Quality [Brent]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Brent]: `git add .` + - [ ] Git [Brent]: `git commit -m "test(persistence): add plan/action persistence suites"` + - [ ] Forgejo PR [Brent]: Open PR from `feature/m1-persistence-tests` to `master` with description "Add Behave/Robot persistence coverage for action + plan repositories and migrations.". + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git branch -d feature/m1-persistence-tests` - [X] **Stage A6: Automation Levels Foundation** (Day 4-5) **[Luis]** - [X] Code: Implement basic automation level support @@ -1554,15 +1627,11 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [X] Scenario: Invalid automation level in settings falls back to manual **Parallel Group A5.legacy: Remove legacy plan build/apply path (M1-critical)** -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m1-remove-legacy-plan` -- [ ] Git [Jeff]: `git push -u origin feature/m1-remove-legacy-plan` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m1-remove-legacy-plan` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m1-remove-legacy-plan` -- [ ] Git [Jeff]: `git push origin --delete feature/m1-remove-legacy-plan` - [ ] **COMMIT (Owner: Jeff | Group: A5.legacy | Branch: feature/m1-remove-legacy-plan) - Commit message: "refactor(plan): remove legacy plan service and CLI"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m1-remove-legacy-plan` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Remove `PlanService` usage from CLI (`plan tell/build/apply/new/current/list/cd/continue`) and delete command handlers from `src/cleveragents/cli/commands/plan.py`. - [ ] Code [Jeff]: Remove or quarantine legacy `plan_service.py`, `plan_legacy.py`, and legacy CLI helpers; add explicit NotImplementedError where needed. - [ ] Code [Jeff]: Remove `PlanService` wiring from `src/cleveragents/application/container.py` and any references from `cli/commands/auto_debug.py`. @@ -1574,21 +1643,22 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Update asv suite to remove legacy plan benchmarks and add v3 lifecycle baseline benchmark. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` + - [ ] Git [Jeff]: `git commit -m "refactor(plan): remove legacy plan service and CLI"` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m1-remove-legacy-plan` to `master` with description "Remove legacy plan build/apply CLI and services after v3 lifecycle is fully wired.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m1-remove-legacy-plan` **Parallel Group A6: Automation Profiles Foundation [Jeff + Luis]** (M4-critical; depends on A5 persistence) **PARALLEL SUBTRACK A6.core [Jeff]**: Profile model + built-ins + schema **PARALLEL SUBTRACK A6.service [Luis]**: Profile resolution + precedence **PARALLEL SUBTRACK A6.cli [Jeff]**: CLI commands for profiles **SEQUENTIAL MERGE NOTE**: A6.core must land before A6.service/cli; A6.service must land before gating integration in Section 6. -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m4-automation-profiles-core` -- [ ] Git [Jeff]: `git push -u origin feature/m4-automation-profiles-core` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-automation-profiles-core` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m4-automation-profiles-core` -- [ ] Git [Jeff]: `git push origin --delete feature/m4-automation-profiles-core` - [ ] **COMMIT (Owner: Jeff | Group: A6.core | Branch: feature/m4-automation-profiles-core) - Commit message: "feat(domain): add automation profile model and built-ins"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m4-automation-profiles-core` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [X] Code [Luis]: Add `AutomationLevel` enum (manual/review/full) in plan domain model. (completed by Luis as foundation) - [X] Code [Luis]: Add config setting + env var (`CLEVERAGENTS_AUTOMATION_LEVEL`) with precedence plan > session > global. (completed by Luis) - [ ] Code [Jeff]: Add `AutomationProfile` model with **10 confidence thresholds + 3 boolean safety flags** per spec; validate 0.0–1.0 ranges and boolean types. @@ -1601,15 +1671,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/automation_profile_bench.py` for profile validation. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m4-automation-profiles-service` -- [ ] Git [Luis]: `git push -u origin feature/m4-automation-profiles-service` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m4-automation-profiles-service` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m4-automation-profiles-service` -- [ ] Git [Luis]: `git push origin --delete feature/m4-automation-profiles-service` + - [ ] Git [Jeff]: `git add .` + - [ ] Git [Jeff]: `git commit -m "feat(domain): add automation profile model and built-ins"` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-automation-profiles-core` to `master` with description "Add automation profile domain model, built-ins, schema, and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m4-automation-profiles-core` - [ ] **COMMIT (Owner: Luis | Group: A6.service | Branch: feature/m4-automation-profiles-service) - Commit message: "feat(service): resolve automation profiles with precedence"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m4-automation-profiles-service` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [X] Code [Luis]: Add `automation_level` handling to `use_action()` and auto transition logic for execute/apply. (completed by Luis) - [X] Code [Luis]: Add pause/resume behavior for review-before-apply mode. (completed by Luis) - [ ] Code [Luis]: Add `AutomationProfileService` to resolve profiles with precedence (plan > action > project > global). @@ -1621,15 +1692,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/automation_profile_resolution_bench.py` for resolution latency. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m4-automation-profiles-cli` -- [ ] Git [Jeff]: `git push -u origin feature/m4-automation-profiles-cli` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-automation-profiles-cli` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m4-automation-profiles-cli` -- [ ] Git [Jeff]: `git push origin --delete feature/m4-automation-profiles-cli` + - [ ] Git [Luis]: `git add .` + - [ ] Git [Luis]: `git commit -m "feat(service): resolve automation profiles with precedence"` + - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-automation-profiles-service` to `master` with description "Add automation profile resolution service, persistence, and config precedence with tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m4-automation-profiles-service` - [ ] **COMMIT (Owner: Jeff | Group: A6.cli | Branch: feature/m4-automation-profiles-cli) - Commit message: "feat(cli): add automation-profile commands"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m4-automation-profiles-cli` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [X] Code [Luis]: Add `--automation-level` to `plan use` and add `plan set-automation-level` command. (completed by Luis) - [ ] Code [Jeff]: Implement `agents automation-profile add/remove/list/show` commands with YAML config input and schema version guard. - [ ] Code [Jeff]: Add `--update` behavior with clear conflict errors; preserve original created_at on update. @@ -1644,18 +1716,19 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/automation_profile_cli_bench.py` for CLI parsing. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` + - [ ] Git [Jeff]: `git commit -m "feat(cli): add automation-profile commands"` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-automation-profiles-cli` to `master` with description "Add automation-profile CLI commands, output formats, and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m4-automation-profiles-cli` **Parallel Group A4c: Plan Diagnostics & Artifacts [Jeff]** (post-M1; depends on C5.diff + C9.execute) **SEQUENTIAL NOTE**: A4c should not start until ChangeSet diff artifacts are stable (C5.diff) and plan execution writes plan metadata (C9.execute/C9.apply). -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m4-plan-diagnostics` -- [ ] Git [Jeff]: `git push -u origin feature/m4-plan-diagnostics` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-plan-diagnostics` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m4-plan-diagnostics` -- [ ] Git [Jeff]: `git push origin --delete feature/m4-plan-diagnostics` - [ ] **COMMIT (Owner: Jeff | Group: A4c.plan-diff | Branch: feature/m4-plan-diagnostics) - Commit message: "feat(cli): add plan diff command"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m4-plan-diagnostics` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Add `agents plan diff ` and `agents plan diff --correction ` CLI wiring with rich/plain/json/yaml output. - [ ] Code [Jeff]: Load ChangeSet + DiffBuilder artifacts for the plan or correction attempt, fail with explicit error when missing. - [ ] Code [Jeff]: Normalize diff output grouping by resource with stable ordering for snapshot tests. @@ -1665,7 +1738,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/plan_diff_cli_bench.py` for diff rendering overhead. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` + - [ ] Git [Jeff]: `git commit -m "feat(cli): add plan diff command"` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-plan-diagnostics` to `master` with description "Add plan diff CLI command with ChangeSet rendering and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m4-plan-diagnostics` - [ ] **COMMIT (Owner: Jeff | Group: A4c.artifacts | Branch: feature/m4-plan-diagnostics) - Commit message: "feat(cli): add plan artifacts and prompt commands"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m4-plan-diagnostics` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement `agents plan artifacts ` to list stored artifacts (decision snapshots, diff, logs, validation summaries). - [ ] Code [Jeff]: Implement `agents plan prompt ` to append guidance and record a `prompt_definition` decision. - [ ] Code [Jeff]: Persist prompt guidance as plan metadata for follow-on execution and attach to decision tree. @@ -1675,21 +1757,22 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/plan_artifacts_cli_bench.py` for listing overhead. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` + - [ ] Git [Jeff]: `git commit -m "feat(cli): add plan artifacts and prompt commands"` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-plan-diagnostics` to `master` with description "Add plan artifacts + prompt CLI commands with persistence and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m4-plan-diagnostics` **Parallel Group A7: Session Management [Jeff + Luis + Brent]** (M3; post-M1; depends on actor registry + plan lifecycle) **PARALLEL SUBTRACK A7.domain [Jeff]**: Session domain models + service contracts **PARALLEL SUBTRACK A7.persistence [Luis]**: DB tables + repositories + service implementation **PARALLEL SUBTRACK A7.cli [Brent]**: Session CLI commands + output formatting **SEQUENTIAL NOTE**: A7.domain must land before A7.persistence/cli; A7.cli depends on A7.persistence service wiring. -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m3-session-domain` -- [ ] Git [Jeff]: `git push -u origin feature/m3-session-domain` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-session-domain` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m3-session-domain` -- [ ] Git [Jeff]: `git push origin --delete feature/m3-session-domain` - [ ] **COMMIT (Owner: Jeff | Group: A7.domain | Branch: feature/m3-session-domain) - Commit message: "feat(session): add session domain models and contracts"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m3-session-domain` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Add `Session` and `SessionMessage` domain models with ULID IDs, actor ref, timestamps, and role enum (user/assistant/system/tool). - [ ] Code [Jeff]: Add message validation for role/content presence and stable ordering by sequence number. - [ ] Code [Jeff]: Add `SessionService` interface contracts (create/list/show/delete/append/export/import) with error types. @@ -1699,15 +1782,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/session_model_bench.py` for validation throughput. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m3-session-persistence` -- [ ] Git [Luis]: `git push -u origin feature/m3-session-persistence` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m3-session-persistence` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m3-session-persistence` -- [ ] Git [Luis]: `git push origin --delete feature/m3-session-persistence` + - [ ] Git [Jeff]: `git add .` + - [ ] Git [Jeff]: `git commit -m "feat(session): add session domain models and contracts"` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-session-domain` to `master` with description "Add session domain models + service contracts with docs and tests." + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m3-session-domain` - [ ] **COMMIT (Owner: Luis | Group: A7.persistence | Branch: feature/m3-session-persistence) - Commit message: "feat(session): add session persistence and repositories"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m3-session-persistence` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Add DB tables `sessions` and `session_messages` with indexes on session_id, created_at, and actor_name. - [ ] Code [Luis]: Implement SessionRepository + SessionMessageRepository with pagination and message append semantics. - [ ] Code [Luis]: Implement SessionService concrete class with export/import JSON payloads and truncation guards. @@ -1718,15 +1802,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/session_persistence_bench.py` for write/read throughput. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. -- [ ] Git [Brent]: `git checkout master` -- [ ] Git [Brent]: `git pull origin master` -- [ ] Git [Brent]: `git checkout -b feature/m3-session-cli` -- [ ] Git [Brent]: `git push -u origin feature/m3-session-cli` -- [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Brent]: Open PR from `feature/m3-session-cli` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Brent]: `git branch -d feature/m3-session-cli` -- [ ] Git [Brent]: `git push origin --delete feature/m3-session-cli` + - [ ] Git [Luis]: `git add .` + - [ ] Git [Luis]: `git commit -m "feat(session): add session persistence and repositories"` + - [ ] Forgejo PR [Luis]: Open PR from `feature/m3-session-persistence` to `master` with description "Add session persistence tables + repositories + service wiring with tests." + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m3-session-persistence` - [ ] **COMMIT (Owner: Brent | Group: A7.cli | Branch: feature/m3-session-cli) - Commit message: "feat(cli): add session commands"** + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git pull origin master` + - [ ] Git [Brent]: `git checkout -b feature/m3-session-cli` + - [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Brent]: Implement `agents session create/list/show/delete/export/import/tell` with `--actor`, `--stream`, and format outputs. - [ ] Code [Brent]: Ensure `session tell` uses SessionService append + actor execution, updates last_active, and persists message order. - [ ] Code [Brent]: Validate `session export/import` paths (create dirs, refuse overwrite unless `--force`). @@ -1737,17 +1822,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Brent]: Add `asv/benchmarks/session_cli_bench.py` for command parsing overhead. - [ ] Quality [Brent]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Brent]: `git add .` + - [ ] Git [Brent]: `git commit -m "feat(cli): add session commands"` + - [ ] Forgejo PR [Brent]: Open PR from `feature/m3-session-cli` to `master` with description "Add session CLI commands with Behave/Robot coverage and docs updates." + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git branch -d feature/m3-session-cli` **Parallel Group A8: Config CLI [Brent]** (M3; post-M1; depends on Settings) -- [ ] Git [Brent]: `git checkout master` -- [ ] Git [Brent]: `git pull origin master` -- [ ] Git [Brent]: `git checkout -b feature/m3-config-cli` -- [ ] Git [Brent]: `git push -u origin feature/m3-config-cli` -- [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Brent]: Open PR from `feature/m3-config-cli` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Brent]: `git branch -d feature/m3-config-cli` -- [ ] Git [Brent]: `git push origin --delete feature/m3-config-cli` - [ ] **COMMIT (Owner: Brent | Group: A8.cli | Branch: feature/m3-config-cli) - Commit message: "feat(cli): add config get/set/list commands"** + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git pull origin master` + - [ ] Git [Brent]: `git checkout -b feature/m3-config-cli` + - [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Brent]: Implement `agents config set `, `agents config get `, and `agents config list []` with `--filter-values` regex support. - [ ] Code [Brent]: Ensure config updates write to the correct config file path; create config file if missing. - [ ] Code [Brent]: Mask secret values in `config list` output by default with `--show-secrets` override. @@ -1758,6 +1844,11 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Brent]: Add `asv/benchmarks/config_cli_bench.py` for CLI parsing. - [ ] Quality [Brent]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Brent]: `git add .` + - [ ] Git [Brent]: `git commit -m "feat(cli): add config get/set/list commands"` + - [ ] Forgejo PR [Brent]: Open PR from `feature/m3-config-cli` to `master` with description "Add config get/set/list CLI commands with tests and docs updates." + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git branch -d feature/m3-config-cli` **M1 SUCCESS CRITERIA (Day 7 MVP - source code only)**: - Action created from YAML config and persisted (namespaced name, invariants, automation profile). @@ -1775,15 +1866,11 @@ Merge points and acceptance checks are tracked as checklist items under each mil **Parallel Group B1: Resource Registry Core [Hamza + Jeff]** (can start after A5.alpha migrations are available) **SEQUENTIAL NOTE**: B1 domain models can start immediately; B1 DB migrations must rebase on the latest Alembic head after A5.alpha to keep a linear migration chain. -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m2-resource-core-models` -- [ ] Git [Hamza]: `git push -u origin feature/m2-resource-core-models` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m2-resource-core-models` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m2-resource-core-models` -- [ ] Git [Hamza]: `git push origin --delete feature/m2-resource-core-models` - [ ] **COMMIT (Owner: Hamza | Group: B1.core | Branch: feature/m2-resource-core-models) - Commit message: "feat(domain): add resource type spec and resource model"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m2-resource-core-models` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Create `src/cleveragents/domain/models/core/resource_type.py` with `ResourceTypeSpec`, `ResourceTypeArgument`, `ResourceKind` (physical/virtual), and `SandboxStrategy` enum. - [ ] Code [Hamza]: Define `ResourceTypeArgument` fields for CLI flags (`flag`, `help`, `arg_type`, `required`, `default`, `repeatable`, `choices`) and validate flag naming conventions. - [ ] Code [Hamza]: Add resource type fields: `user_addable`, `allowed_parents`, `allowed_children`, `auto_discover`, `handler` reference, and `sandbox_strategy` default. @@ -1800,12 +1887,20 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/resource_model_bench.py` for resource validation + DAG checks. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. - - [ ] Commit [Hamza]: `git commit -m "feat(domain): add resource type spec and resource model"`. + - [ ] Git [Hamza]: `git add .` + - [ ] Git [Hamza]: `git commit -m "feat(domain): add resource type spec and resource model"` + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m2-resource-core-models` to `master` with description "Add resource type spec + resource model with validation, schema, and tests for M2.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m2-resource-core-models` - [ ] **COMMIT (Owner: Hamza | Group: B1.core | Branch: feature/m2-resource-core-models) - Commit message: "feat(resource): add built-in physical resource type configs"** - - [ ] Code [Hamza]: Add built-in **physical** resource type YAML configs under `resources/types/`: - - `git`, `git-remote`, `git-branch`, `git-tag`, `git-commit`, `git-tree`, `git-tree-entry`, `git-stash`, `git-submodule` - - `git-checkout` - - `fs-mount`, `fs-directory`, `fs-file`, `fs-symlink`, `fs-hardlink` + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m2-resource-core-models` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Hamza]: Add built-in **physical** resource type YAML configs under `resources/types/` (M2 minimum set for source code only): + - `git-checkout` (user-addable; `--path`, optional `--branch`; default sandbox_strategy = `git_worktree`) + - `fs-mount` (user-addable; `--path`, optional `--read-only`) + - `fs-directory` + `fs-file` (auto-discovered children of `fs-mount`/`git-checkout`; not user-addable) - [ ] Code [Hamza]: Include `schema_version`, `resource_kind: physical`, `sandbox_strategy`, and full allowed parent/child constraints per spec. - [ ] Code [Hamza]: Define CLI argument specs for user-addable types (`git`, `git-checkout`, `fs-mount`, `fs-directory`) including `--path`, `--url`, `--branch`, `--mount-path`, `--read-only` as applicable. - [ ] Code [Hamza]: Encode `auto_discover` rules for git and filesystem trees (git children + fs-directory children) with bounded depth and type filters. @@ -1816,9 +1911,17 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/resource_type_bootstrap_bench.py` for registration overhead. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. - - [ ] Commit [Hamza]: `git commit -m "feat(resource): add built-in physical resource type configs"`. + - [ ] Git [Hamza]: `git add .` + - [ ] Git [Hamza]: `git commit -m "feat(resource): add built-in physical resource type configs"` + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m2-resource-core-models` to `master` with description "Add built-in physical resource type configs (git + fs) with discovery rules and docs.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m2-resource-core-models` - [ ] **COMMIT (Owner: Hamza | Group: B1.core | Branch: feature/m2-resource-core-models) - Commit message: "feat(resource): add built-in virtual resource type configs"** - - [ ] Code [Hamza]: Add built-in **virtual** resource type YAML configs under `resources/types/`: `file`, `directory`, `symlink`, `commit`, `branch`, `tag`, `remote`, `submodule`, `tree`. + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m2-resource-core-models` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Hamza]: Add built-in **virtual** resource type YAML configs under `resources/types/` (M2 minimum set): `file`, `directory`, `commit`, `branch`, `tag`, `tree`. - [ ] Code [Hamza]: Set `resource_kind: virtual`, `user_addable: false`, and no sandbox strategy; encode allowed children per spec. - [ ] Code [Hamza]: Add metadata for equivalence criteria (content hash/name/target) to support future auto-linking. - [ ] Code [Hamza]: Extend bootstrap registration to include virtual types and hide them from `resource add` subcommand generation. @@ -1828,8 +1931,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/resource_type_virtual_bench.py` for registry performance. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. - - [ ] Commit [Hamza]: `git commit -m "feat(resource): add built-in virtual resource type configs"`. + - [ ] Git [Hamza]: `git add .` + - [ ] Git [Hamza]: `git commit -m "feat(resource): add built-in virtual resource type configs"` + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m2-resource-core-models` to `master` with description "Add built-in virtual resource type configs and registration rules.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m2-resource-core-models` - [ ] **COMMIT (Owner: Hamza | Group: B1.core | Branch: feature/m2-resource-core-models) - Commit message: "feat(domain): add project model v3 with linked resources"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m2-resource-core-models` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Add `Project`, `ProjectResourceLink`, `ProjectValidationSummary` (derived from validation attachments), and `ProjectContextPolicy` models using namespaced name as the unique identifier (no ULID per spec). - [ ] Code [Hamza]: Add fields for `invariants`, `invariant_actor`, `automation_profile`, and `context_views` (strategize/execute/apply/default). - [ ] Code [Hamza]: Add validation for resource link overrides (read_only flags, alias uniqueness, resource existence). @@ -1842,16 +1953,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/project_model_bench.py` for serialization/validation performance. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. - - [ ] Commit [Hamza]: `git commit -m "feat(domain): add project model v3 with linked resources"`. -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m2-resource-core-db` -- [ ] Git [Jeff]: `git push -u origin feature/m2-resource-core-db` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m2-resource-core-db` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m2-resource-core-db` -- [ ] Git [Jeff]: `git push origin --delete feature/m2-resource-core-db` + - [ ] Git [Hamza]: `git add .` + - [ ] Git [Hamza]: `git commit -m "feat(domain): add project model v3 with linked resources"` + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m2-resource-core-models` to `master` with description "Add project model v3 with resource links, invariants, and context view policy fields.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m2-resource-core-models` - [ ] **COMMIT (Owner: Jeff | Group: B1.core | Branch: feature/m2-resource-core-db) - Commit message: "feat(db): add resource registry tables"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m2-resource-core-db` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Add Alembic migration for `resource_types`, `resources`, and `resource_edges` tables with naming conventions. - [ ] Code [Jeff]: Define `resource_types` columns: `name`, `namespace`, `description`, `resource_kind`, `sandbox_strategy`, `user_addable`, `handler_ref`, `args_schema_json`, `allowed_parent_types_json`, `allowed_child_types_json`, `auto_discover_json`, timestamps. - [ ] Code [Jeff]: Define `resources` columns: ULID PK, `namespaced_name`, `namespace`, `type_name`, `resource_kind`, `location`, `description`, `read_only`, `metadata_json`, `sandbox_strategy`, timestamps. @@ -1865,18 +1976,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/resource_registry_migration_bench.py` for migration baseline. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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 [Jeff]: `git commit -m "feat(db): add resource registry tables"`. + - [ ] Git [Jeff]: `git add .` + - [ ] Git [Jeff]: `git commit -m "feat(db): add resource registry tables"` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m2-resource-core-db` to `master` with description "Add resource registry tables, indexes, and migration tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m2-resource-core-db` **Parallel Group B2: Project Persistence + Services [Hamza + Luis]** (depends on B1 domain models) -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m2-projects-db` -- [ ] Git [Jeff]: `git push -u origin feature/m2-projects-db` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m2-projects-db` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m2-projects-db` -- [ ] Git [Jeff]: `git push origin --delete feature/m2-projects-db` - [ ] **COMMIT (Owner: Jeff | Group: B2.persistence | Branch: feature/m2-projects-db) - Commit message: "feat(db): add projects and project links tables"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m2-projects-db` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Add Alembic migration skeleton with explicit down_revision to latest A5.alpha head. - [ ] Code [Jeff]: Define `projects` table with namespaced_name PK, namespace, description, automation_profile, invariant_actor, invariants_json, context_policy_json, tags_json, created_by, timestamps. - [ ] Code [Jeff]: Add `projects` constraints for non-empty names, namespace/name derivation consistency, and unique namespaced_name. @@ -1891,15 +2002,14 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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 [Jeff]: `git commit -m "feat(db): add projects and project links tables"`. -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m2-resource-project-repos` -- [ ] Git [Hamza]: `git push -u origin feature/m2-resource-project-repos` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m2-resource-project-repos` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m2-resource-project-repos` -- [ ] Git [Hamza]: `git push origin --delete feature/m2-resource-project-repos` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m2-projects-db` to `master` with description "Add projects + project_resource_links tables with constraints and migration tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m2-projects-db` - [ ] **COMMIT (Owner: Hamza | Group: B2.persistence | Branch: feature/m2-resource-project-repos) - Commit message: "feat(repo): add resource repositories"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m2-resource-project-repos` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Implement `ResourceTypeRepository` CRUD and `ResourceRepository` CRUD with DAG edge helpers. - [ ] Code [Hamza]: Add methods for tree traversal, child discovery queries, and name/ULID resolution. - [ ] Code [Hamza]: Add repository guardrails for preventing cycles and duplicate edges. @@ -1911,7 +2021,14 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. - [ ] Commit [Hamza]: `git commit -m "feat(repo): add resource repositories"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m2-resource-project-repos` to `master` with description "Add resource repositories with DAG helpers, docs, and tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m2-resource-project-repos` - [ ] **COMMIT (Owner: Hamza | Group: B2.persistence | Branch: feature/m2-resource-project-repos) - Commit message: "feat(repo): add project repositories"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m2-resource-project-repos` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Implement `ProjectRepository` and `ProjectResourceLinkRepository` with namespace filtering and name-based lookup. - [ ] Code [Hamza]: Add methods to list project context policies and derived validation attachment summaries for linked resources. - [ ] Code [Hamza]: Enforce resource existence + type validation when linking (reject missing resource IDs early). @@ -1922,15 +2039,14 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. - [ ] Commit [Hamza]: `git commit -m "feat(repo): add project repositories"`. -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m2-resource-registry-service` -- [ ] Git [Hamza]: `git push -u origin feature/m2-resource-registry-service` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m2-resource-registry-service` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m2-resource-registry-service` -- [ ] Git [Hamza]: `git push origin --delete feature/m2-resource-registry-service` + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m2-resource-project-repos` to `master` with description "Add project repositories + link repositories with docs and tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m2-resource-project-repos` - [ ] **COMMIT (Owner: Hamza | Group: B2.service | Branch: feature/m2-resource-registry-service) - Commit message: "feat(service): add resource registry service"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m2-resource-registry-service` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Implement `ResourceRegistryService` for register/remove/show/tree operations with name/ULID resolution. - [ ] Code [Hamza]: Add auto-discovery hook that delegates to resource handlers (git-checkout for MVP). - [ ] Code [Hamza]: Add validation that resource type supports parent/child linkage before linking. @@ -1942,15 +2058,14 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. - [ ] Commit [Hamza]: `git commit -m "feat(service): add resource registry service"`. -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m2-project-service` -- [ ] Git [Luis]: `git push -u origin feature/m2-project-service` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m2-project-service` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m2-project-service` -- [ ] Git [Luis]: `git push origin --delete feature/m2-project-service` + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m2-resource-registry-service` to `master` with description "Add resource registry service with auto-discovery and tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m2-resource-registry-service` - [ ] **COMMIT (Owner: Luis | Group: B2.service | Branch: feature/m2-project-service) - Commit message: "feat(service): add project service v3"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m2-project-service` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Implement `ProjectService` create/list/show/delete/link/unlink methods using repositories. - [ ] Code [Luis]: Add validation attachment helpers (read-only listing of validation attachments for linked resources) and context policy setters for project views. - [ ] Code [Luis]: Enforce read-only resource links and project-level invariant actor defaults. @@ -1962,17 +2077,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. - [ ] Commit [Luis]: `git commit -m "feat(service): add project service v3"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m2-project-service` to `master` with description "Add project service v3 with linking, invariants, and context policy helpers.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m2-project-service` **Parallel Group B3: CLI Commands [Hamza]** (depends on B2 services) -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m2-project-resource-cli` -- [ ] Git [Hamza]: `git push -u origin feature/m2-project-resource-cli` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m2-project-resource-cli` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m2-project-resource-cli` -- [ ] Git [Hamza]: `git push origin --delete feature/m2-project-resource-cli` - [ ] **COMMIT (Owner: Hamza | Group: B3.cli | Branch: feature/m2-project-resource-cli) - Commit message: "feat(cli): add resource type commands"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m2-project-resource-cli` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Add `agents resource type add/remove/list/show` commands with YAML config input, schema validation, and clear field-path errors. - [ ] Code [Hamza]: Implement `--update` behavior with conflict detection and explicit `name` mismatch errors. - [ ] Code [Hamza]: Wire `resource type add` to `ResourceTypeSpec` loader with schema version guard and path resolution. @@ -1985,7 +2099,14 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. - [ ] Commit [Hamza]: `git commit -m "feat(cli): add resource type commands"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m2-project-resource-cli` to `master` with description "Add resource type CLI commands with schema validation and tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m2-project-resource-cli` - [ ] **COMMIT (Owner: Hamza | Group: B3.cli | Branch: feature/m2-project-resource-cli) - Commit message: "feat(cli): add resource commands"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m2-project-resource-cli` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Add `agents resource add/remove/list/show/tree` commands with type-specific flags and name/ULID resolution. - [ ] Code [Hamza]: Implement dynamic option parsing for type-specific flags from ResourceTypeSpec (including repeatable args). - [ ] Code [Hamza]: Implement `resource inspect --tree/--file` per spec for resource introspection and path-scoped views. @@ -1998,7 +2119,14 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. - [ ] Commit [Hamza]: `git commit -m "feat(cli): add resource commands"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m2-project-resource-cli` to `master` with description "Add resource CLI commands (add/show/list/tree/inspect/link-child) with tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m2-project-resource-cli` - [ ] **COMMIT (Owner: Hamza | Group: B3.cli | Branch: feature/m2-project-resource-cli) - Commit message: "feat(cli): add project commands"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m2-project-resource-cli` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Add `agents project create/show/list/delete/link-resource/unlink-resource` commands using namespaced project names. - [ ] Code [Hamza]: Implement `project create` flags for `--description`, `--resource`, `--invariant`, `--invariant-actor`, and `--automation-profile`. - [ ] Code [Hamza]: Ensure `project show` includes linked resources, read_only flags, aliases, and validation attachment summaries. @@ -2010,20 +2138,19 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. - [ ] Commit [Hamza]: `git commit -m "feat(cli): add project commands"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m2-project-resource-cli` to `master` with description "Add project CLI commands (create/show/list/link/unlink) with validation attachment summaries.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m2-project-resource-cli` **Parallel Group B3.context: Project Context Views [Hamza]** (depends on B1 project model + B2 services; post-M2) **PARALLEL SUBTRACK B3.context.service [Hamza]**: Context policy service + persistence helpers **PARALLEL SUBTRACK B3.context.cli [Hamza]**: CLI commands for context set/show/inspect/simulate **SEQUENTIAL NOTE**: B3.context.service must land before B3.context.cli to lock policy serialization and defaults. -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m3-project-context-policy` -- [ ] Git [Hamza]: `git push -u origin feature/m3-project-context-policy` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m3-project-context-policy` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m3-project-context-policy` -- [ ] Git [Hamza]: `git push origin --delete feature/m3-project-context-policy` - [ ] **COMMIT (Owner: Hamza | Group: B3.context.service | Branch: feature/m3-project-context-policy) - Commit message: "feat(service): add project context policy service"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m3-project-context-policy` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Implement ProjectContextPolicy serialization (include/exclude resources, include/exclude paths, token budgets, summarize flags, summary max tokens, strategy list, depth gradients, skeleton ratio). - [ ] Code [Hamza]: Add ProjectContextService helpers to set/clear/show/inspect policy and compute effective view defaults. - [ ] Code [Hamza]: Add validation for invalid resource refs, conflicting include/exclude, and max token bounds. @@ -2034,15 +2161,14 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. - [ ] Commit [Hamza]: `git commit -m "feat(service): add project context policy service"`. -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m3-project-context-cli` -- [ ] Git [Hamza]: `git push -u origin feature/m3-project-context-cli` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m3-project-context-cli` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m3-project-context-cli` -- [ ] Git [Hamza]: `git push origin --delete feature/m3-project-context-cli` + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m3-project-context-policy` to `master` with description "Add project context policy service with serialization, defaults, and tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m3-project-context-policy` - [ ] **COMMIT (Owner: Hamza | Group: B3.context.cli | Branch: feature/m3-project-context-cli) - Commit message: "feat(cli): add project context set/show/inspect/simulate"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m3-project-context-cli` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Implement `agents project context set/show/inspect/simulate` with full flag set per spec (view, include/exclude resource, include/exclude path, budget limits, default breadth/depth, depth gradients, temporal scope, auto-refresh, summarize flags, summary max tokens, strategy list). - [ ] Code [Hamza]: Add validation for mutually exclusive flags and display `--clear` behavior explicitly in output. - [ ] Code [Hamza]: Ensure `context inspect` shows resolved policy + derived budgets; `context simulate` prints estimated payload size + token budget allocation. @@ -2053,18 +2179,17 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. - [ ] Commit [Hamza]: `git commit -m "feat(cli): add project context set/show/inspect/simulate"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m3-project-context-cli` to `master` with description "Add project context CLI commands (set/show/inspect/simulate) with tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m3-project-context-cli` **Parallel Group B3.cleanup: Legacy Project Removal [Jeff]** (after B3.cli lands) -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m2-project-legacy-cleanup` -- [ ] Git [Jeff]: `git push -u origin feature/m2-project-legacy-cleanup` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m2-project-legacy-cleanup` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m2-project-legacy-cleanup` -- [ ] Git [Jeff]: `git push origin --delete feature/m2-project-legacy-cleanup` - [ ] **COMMIT (Owner: Jeff | Group: B3.cleanup | Branch: feature/m2-project-legacy-cleanup) - Commit message: "refactor(project): remove legacy project init/status commands"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m2-project-legacy-cleanup` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Remove legacy `agents project init/status/clean/file-filter` commands from `src/cleveragents/cli/commands/project.py`. - [ ] Code [Jeff]: Remove or alias legacy `agents context` commands to `agents project context` to match spec surface. - [ ] Code [Jeff]: Remove `.cleveragents` directory bootstrap logic from legacy `ProjectService` and deprecate `ProjectSettings` fields tied to local init. @@ -2077,17 +2202,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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 [Jeff]: `git commit -m "refactor(project): remove legacy project init/status commands"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m2-project-legacy-cleanup` to `master` with description "Remove legacy project init/status commands and align CLI to v3 project flows.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m2-project-legacy-cleanup` **Parallel Group B4: Sandboxing [Luis + Jeff]** (depends on resource registry + project links) -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m2-sandbox-core` -- [ ] Git [Luis]: `git push -u origin feature/m2-sandbox-core` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m2-sandbox-core` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m2-sandbox-core` -- [ ] Git [Luis]: `git push origin --delete feature/m2-sandbox-core` - [ ] **COMMIT (Owner: Luis | Group: B4.sandbox | Branch: feature/m2-sandbox-core) - Commit message: "feat(sandbox): add sandbox strategy interface and manager"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m2-sandbox-core` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [X] Code [Luis]: Add `SandboxStrategy` protocol, `SandboxRef`, `SandboxManager`, and `SandboxRegistry` with per-resource sandboxes. (protocol, factory, manager, NoSandbox, merge strategies, status enum all implemented) - [X] Code [Luis]: Implement lazy sandbox creation, cleanup hooks, and plan-scoped retention policy stubs. (completed by Luis) - [ ] Code [Luis]: Add sandbox path rewriting helper for tool execution and MCP adapters. @@ -2099,7 +2223,14 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. - [ ] Commit [Luis]: `git commit -m "feat(sandbox): add sandbox strategy interface and manager"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m2-sandbox-core` to `master` with description "Add sandbox strategy interface, manager, and docs/tests for path rewriting.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m2-sandbox-core` - [ ] **COMMIT (Owner: Luis | Group: B4.sandbox | Branch: feature/m2-sandbox-core) - Commit message: "feat(sandbox): implement git_worktree strategy"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m2-sandbox-core` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Implement git worktree creation, checkout, and cleanup for git-checkout resources. - [ ] Code [Luis]: Add safe fallback for repositories without clean worktrees and clear error messages. - [ ] Code [Luis]: Record sandbox metadata (worktree path, branch, base commit) for rollback. @@ -2111,15 +2242,14 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. - [ ] Commit [Luis]: `git commit -m "feat(sandbox): implement git_worktree strategy"`. -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m2-resource-git-handler` -- [ ] Git [Hamza]: `git push -u origin feature/m2-resource-git-handler` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m2-resource-git-handler` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m2-resource-git-handler` -- [ ] Git [Hamza]: `git push origin --delete feature/m2-resource-git-handler` + - [ ] Forgejo PR [Luis]: Open PR from `feature/m2-sandbox-core` to `master` with description "Implement git_worktree sandbox strategy with rollback metadata and tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m2-sandbox-core` - [ ] **COMMIT (Owner: Hamza | Group: B4.sandbox | Branch: feature/m2-resource-git-handler) - Commit message: "feat(resource): add git-checkout handler and discovery"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m2-resource-git-handler` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Add git-checkout handler that validates repo path, branch, and read_only flags. - [ ] Code [Hamza]: Implement child resource discovery for fs-directory children (schema-only for now) and record ULID-only children. - [ ] Code [Hamza]: Add sandbox strategy mapping for git-checkout and path normalization helpers. @@ -2131,7 +2261,14 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. - [ ] Commit [Hamza]: `git commit -m "feat(resource): add git-checkout handler and discovery"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m2-resource-git-handler` to `master` with description "Add git-checkout resource handler with discovery and tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m2-resource-git-handler` - [ ] **COMMIT (Owner: Luis | Group: B4.sandbox | Branch: feature/m2-sandbox-core) - Commit message: "feat(sandbox): add copy_on_write strategy stub"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m2-sandbox-core` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Add copy_on_write strategy skeleton with TODOs for large-project optimization. - [ ] Code [Luis]: Raise explicit NotImplementedError with guidance on when it will be available. - [ ] Docs [Luis]: Document that copy_on_write is stubbed for post-M1 work. @@ -2142,6 +2279,9 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. - [ ] Commit [Luis]: `git commit -m "feat(sandbox): add copy_on_write strategy stub"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m2-sandbox-core` to `master` with description "Add copy_on_write sandbox strategy stub with explicit NotImplementedError and tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m2-sandbox-core` **M2 MERGE GATE**: - Register a git-checkout resource and link it to a project via CLI. @@ -2169,15 +2309,11 @@ Merge points and acceptance checks are tracked as checklist items under each mil **PARALLEL SUBTRACK C0.registry [Luis]**: Tool registry persistence + repositories **PARALLEL SUBTRACK C0.cli [Jeff]**: CLI commands for tools/validations **SEQUENTIAL MERGE NOTE**: C0.domain must land before C0.registry/cli; C0.registry before C3 context wiring. C0.registry migrations must rebase after A5.alpha; C0.binding should wait for B1.core resource type constraints to validate bindings. -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m3-tool-domain` -- [ ] Git [Jeff]: `git push -u origin feature/m3-tool-domain` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-tool-domain` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m3-tool-domain` -- [ ] Git [Jeff]: `git push origin --delete feature/m3-tool-domain` - [ ] **COMMIT (Owner: Jeff | Group: C0.domain | Branch: feature/m3-tool-domain) - Commit message: "feat(tool): add tool and validation domain models"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m3-tool-domain` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Add `Tool` model in `src/cleveragents/domain/models/core/tool.py` with namespaced name, description, source type, input/output JSON schema, and capability metadata (`read_only`, `writes`, `checkpointable`, `side_effects`). - [ ] Code [Jeff]: Enforce capability consistency (`read_only` implies `writes=false`; validation of conflicting flags). - [ ] Code [Jeff]: Add `ResourceBinding` model with slot definitions, binding modes (context, static, parameter), and required `access` level (`read_only`/`read_write`). @@ -2195,16 +2331,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/tool_model_bench.py` for schema validation throughput (model + YAML loader). - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(tool): add tool and validation domain models"`. -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m3-tool-registry` -- [ ] Git [Luis]: `git push -u origin feature/m3-tool-registry` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m3-tool-registry` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m3-tool-registry` -- [ ] Git [Luis]: `git push origin --delete feature/m3-tool-registry` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-tool-domain` to `master` with description "Add tool + validation domain models, schema loaders, and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m3-tool-domain` - [ ] **COMMIT (Owner: Luis | Group: C0.registry | Branch: feature/m3-tool-registry) - Commit message: "feat(tool): add tool registry persistence"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m3-tool-registry` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Add DB tables for `tools`, `tool_bindings`, and `validation_attachments` with indexes on namespaced name and type. - [ ] Code [Luis]: Define `tools` columns: `namespaced_name`, `namespace`, `tool_type`, `source`, `description`, `input_schema_json`, `output_schema_json`, `capability_json`, `metadata_json`, `yaml_text`, timestamps. - [ ] Code [Luis]: Define `tool_bindings` columns: `binding_id` ULID, `tool_name`, `slot_name`, `binding_mode`, `resource_type`, `required`, `static_resource_id`, `static_resource_name`, timestamps. @@ -2221,16 +2357,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/tool_registry_bench.py` for registry list performance. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(tool): add tool registry persistence"`. -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m3-tool-binding` -- [ ] Git [Jeff]: `git push -u origin feature/m3-tool-binding` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-tool-binding` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m3-tool-binding` -- [ ] Git [Jeff]: `git push origin --delete feature/m3-tool-binding` + - [ ] Forgejo PR [Luis]: Open PR from `feature/m3-tool-registry` to `master` with description "Add tool registry persistence with bindings and validation attachments.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m3-tool-registry` - [ ] **COMMIT (Owner: Jeff | Group: C0.binding | Branch: feature/m3-tool-binding) - Commit message: "feat(tool): add resource binding resolution"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m3-tool-binding` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement binding resolution for contextual, static, and parameter bindings with type compatibility checks. - [ ] Code [Jeff]: Add resolution helpers for resource name/ULID lookup and project-scoped filtering. - [ ] Docs [Jeff]: Add `docs/reference/tool_bindings.md` with resolution order and examples. @@ -2239,16 +2375,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/binding_resolution_bench.py` for resolution latency. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(tool): add resource binding resolution"`. -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m3-tool-cli` -- [ ] Git [Jeff]: `git push -u origin feature/m3-tool-cli` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-tool-cli` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m3-tool-cli` -- [ ] Git [Jeff]: `git push origin --delete feature/m3-tool-cli` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-tool-binding` to `master` with description "Add tool resource binding resolution and docs/tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m3-tool-binding` - [ ] **COMMIT (Owner: Jeff | Group: C0.cli | Branch: feature/m3-tool-cli) - Commit message: "feat(cli): add tool and validation commands"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m3-tool-cli` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement `agents tool add/remove/list/show` with YAML config input, schema validation, and `--type` filter. - [ ] Code [Jeff]: Add `--update` to `tool add` and emit conflict errors for name/type mismatches. - [ ] Code [Jeff]: Implement `agents validation add/attach/detach` commands and enforce validation-only name use. @@ -2260,7 +2396,11 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/tool_cli_bench.py` for CLI parsing overhead. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(cli): add tool and validation commands"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-tool-cli` to `master` with description "Add tool/validation CLI commands with attachment workflows and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m3-tool-cli` **Parallel Group C0.skill: Skill Registry & YAML [Aditya + Jeff + Luis]** (depends on C0.domain + C0.registry; must land before C3.protocol) **PARALLEL SUBTRACK C0.skill.schema [Aditya]**: Skill YAML schema + examples @@ -2268,15 +2408,11 @@ Merge points and acceptance checks are tracked as checklist items under each mil **PARALLEL SUBTRACK C0.skill.registry [Luis]**: Skill persistence + service **PARALLEL SUBTRACK C0.skill.cli [Aditya]**: CLI commands + output formatting **SEQUENTIAL MERGE NOTE**: C0.skill.domain must land before C0.skill.registry/C0.skill.cli to avoid dual representations. -- [ ] Git [Aditya]: `git checkout master` -- [ ] Git [Aditya]: `git pull origin master` -- [ ] Git [Aditya]: `git checkout -b feature/m3-skill-schema` -- [ ] Git [Aditya]: `git push -u origin feature/m3-skill-schema` -- [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Aditya]: Open PR from `feature/m3-skill-schema` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Aditya]: `git branch -d feature/m3-skill-schema` -- [ ] Git [Aditya]: `git push origin --delete feature/m3-skill-schema` - [ ] **COMMIT (Owner: Aditya | Group: C0.skill.schema | Branch: feature/m3-skill-schema) - Commit message: "docs(skill): add skill yaml schema and examples"** + - [ ] Git [Aditya]: `git checkout master` + - [ ] Git [Aditya]: `git pull origin master` + - [ ] Git [Aditya]: `git checkout -b feature/m3-skill-schema` + - [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Docs [Aditya]: Author `docs/schema/skill.schema.yaml` with versioning, required fields, and explicit type constraints for tool refs, inline tools, includes, and MCP sources. - [ ] Docs [Aditya]: Add skill YAML examples under `examples/skills/` (single-tool, composed, inline tool, validation-only, MCP-backed). - [ ] Code [Aditya]: Add schema loader in `src/cleveragents/skills/schema.py` that validates schema version, normalizes keys, and returns typed data. @@ -2286,16 +2422,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Aditya]: Add `asv/benchmarks/skill_schema_bench.py` for schema validation throughput. - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Aditya]: `git add .` (only after coverage check passes) - [ ] Commit [Aditya]: `git commit -m "docs(skill): add skill yaml schema and examples"`. -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m3-skill-domain` -- [ ] Git [Jeff]: `git push -u origin feature/m3-skill-domain` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-skill-domain` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m3-skill-domain` -- [ ] Git [Jeff]: `git push origin --delete feature/m3-skill-domain` + - [ ] Forgejo PR [Aditya]: Open PR from `feature/m3-skill-schema` to `master` with description "Add skill YAML schema, examples, loader, and tests.". + - [ ] Git [Aditya]: `git checkout master` + - [ ] Git [Aditya]: `git branch -d feature/m3-skill-schema` - [ ] **COMMIT (Owner: Jeff | Group: C0.skill.domain | Branch: feature/m3-skill-domain) - Commit message: "feat(skill): add skill domain model and resolver"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m3-skill-domain` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Add `Skill`, `SkillItem`, `SkillToolRef`, `SkillInclude`, and `SkillInlineTool` models in `src/cleveragents/domain/models/core/skill.py` with namespaced naming rules. - [ ] Code [Jeff]: Implement `SkillResolver` to flatten includes into ordered tool lists, de-duplicate tools, and reject cycles with path traces. - [ ] Code [Jeff]: Add `Skill.resolve_tools()` returning resolved tool/validation names plus inline tool definitions for compiler use. @@ -2305,16 +2441,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/skill_resolution_bench.py` for resolver performance. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(skill): add skill domain model and resolver"`. -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m3-skill-registry` -- [ ] Git [Luis]: `git push -u origin feature/m3-skill-registry` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m3-skill-registry` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m3-skill-registry` -- [ ] Git [Luis]: `git push origin --delete feature/m3-skill-registry` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-skill-domain` to `master` with description "Add skill domain model, resolver, and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m3-skill-domain` - [ ] **COMMIT (Owner: Luis | Group: C0.skill.registry | Branch: feature/m3-skill-registry) - Commit message: "feat(skill): add skill registry persistence"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m3-skill-registry` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Add `skills` and `skill_items` tables (namespaced name PK, description, source, yaml_text, timestamps) with indexes on namespace/name. - [ ] Code [Luis]: Implement `SkillRepository` CRUD + list filters and `SkillRegistryService` with add/update/remove/show/list. - [ ] Code [Luis]: Enforce referential integrity for included skills and tool references at registration time. @@ -2324,16 +2460,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/skill_registry_bench.py` for registry list performance. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(skill): add skill registry persistence"`. -- [ ] Git [Aditya]: `git checkout master` -- [ ] Git [Aditya]: `git pull origin master` -- [ ] Git [Aditya]: `git checkout -b feature/m3-skill-cli` -- [ ] Git [Aditya]: `git push -u origin feature/m3-skill-cli` -- [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Aditya]: Open PR from `feature/m3-skill-cli` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Aditya]: `git branch -d feature/m3-skill-cli` -- [ ] Git [Aditya]: `git push origin --delete feature/m3-skill-cli` + - [ ] Forgejo PR [Luis]: Open PR from `feature/m3-skill-registry` to `master` with description "Add skill registry persistence and service with tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m3-skill-registry` - [ ] **COMMIT (Owner: Aditya | Group: C0.skill.cli | Branch: feature/m3-skill-cli) - Commit message: "feat(cli): add skill commands"** + - [ ] Git [Aditya]: `git checkout master` + - [ ] Git [Aditya]: `git pull origin master` + - [ ] Git [Aditya]: `git checkout -b feature/m3-skill-cli` + - [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Aditya]: Implement `agents skill add/remove/list/show/tools` with YAML config input, schema validation, and `--namespace` filter. - [ ] Code [Aditya]: Add `--update` to `skill add` and emit clear errors for name mismatches. - [ ] Code [Aditya]: Ensure `skill tools` shows resolved tool list, inline tool IDs, validation nodes, and capability summaries. @@ -2344,18 +2480,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Aditya]: Add `asv/benchmarks/skill_cli_bench.py` for config parsing overhead. - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Aditya]: `git add .` (only after coverage check passes) - [ ] Commit [Aditya]: `git commit -m "feat(cli): add skill commands"`. + - [ ] Forgejo PR [Aditya]: Open PR from `feature/m3-skill-cli` to `master` with description "Add skill CLI commands, formats, and tests.". + - [ ] Git [Aditya]: `git checkout master` + - [ ] Git [Aditya]: `git branch -d feature/m3-skill-cli` **Parallel Group C0.runtime: Tool Lifecycle Runtime [Jeff]** (depends on C0.domain + C0.registry; must land before C3.context) -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m3-tool-runtime` -- [ ] Git [Jeff]: `git push -u origin feature/m3-tool-runtime` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-tool-runtime` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m3-tool-runtime` -- [ ] Git [Jeff]: `git push origin --delete feature/m3-tool-runtime` - [ ] **COMMIT (Owner: Jeff | Group: C0.runtime | Branch: feature/m3-tool-runtime) - Commit message: "feat(tool): add tool lifecycle runtime"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m3-tool-runtime` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement `ToolRuntime`/`ToolInstance` interfaces with `discover/activate/execute/deactivate` hooks and lifecycle state tracking. - [ ] Code [Jeff]: Add `ToolExecutionContext` with resolved resource bindings, sandbox paths, plan metadata, and cancellation token. - [ ] Code [Jeff]: Add lifecycle cache with per-plan activation reuse and guaranteed `deactivate` on plan completion/cancel. @@ -2370,18 +2506,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/tool_lifecycle_bench.py` for lifecycle overhead. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(tool): add tool lifecycle runtime"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-tool-runtime` to `master` with description "Add tool lifecycle runtime, context, and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m3-tool-runtime` **Parallel Group C1: Actor Schema & Examples [Aditya + Jeff]** (start Day 5; C2 depends on this) -- [ ] Git [Aditya]: `git checkout master` -- [ ] Git [Aditya]: `git pull origin master` -- [ ] Git [Aditya]: `git checkout -b feature/m3-actor-schema-examples` -- [ ] Git [Aditya]: `git push -u origin feature/m3-actor-schema-examples` -- [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Aditya]: Open PR from `feature/m3-actor-schema-examples` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Aditya]: `git branch -d feature/m3-actor-schema-examples` -- [ ] Git [Aditya]: `git push origin --delete feature/m3-actor-schema-examples` - [ ] **COMMIT (Owner: Aditya | Group: C1.schema | Branch: feature/m3-actor-schema-examples) - Commit message: "feat(actor): add actor yaml schema models"** + - [ ] Git [Aditya]: `git checkout master` + - [ ] Git [Aditya]: `git pull origin master` + - [ ] Git [Aditya]: `git checkout -b feature/m3-actor-schema-examples` + - [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Aditya]: Add schema models (ActorType, NodeType, ContextView, ToolDefinition, RouteDefinition, ActorConfigSchema) with strict validation in `src/cleveragents/actor/schema.py`. - [ ] Code [Aditya]: Add tool-node schema fields that reference Tool Registry names, including validation nodes, and require input/output schema presence. - [ ] Code [Aditya]: Add hierarchical graph node schema (`children`, `edges`, `entrypoint`, `exitpoints`) to support nested actors and subgraphs. @@ -2395,8 +2531,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Aditya]: Add `asv/benchmarks/actor_schema_bench.py` for YAML validation cost. - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Aditya]: `git add .` (only after coverage check passes) - [ ] Commit [Aditya]: `git commit -m "feat(actor): add actor yaml schema models"`. + - [ ] Forgejo PR [Aditya]: Open PR from `feature/m3-actor-schema-examples` to `master` with description "Add actor YAML schema models, validation rules, and tests.". + - [ ] Git [Aditya]: `git checkout master` + - [ ] Git [Aditya]: `git branch -d feature/m3-actor-schema-examples` - [ ] **COMMIT (Owner: Aditya | Group: C1.examples | Branch: feature/m3-actor-schema-examples) - Commit message: "docs(actor): add actor yaml examples"** + - [ ] Git [Aditya]: `git checkout master` + - [ ] Git [Aditya]: `git pull origin master` + - [ ] Git [Aditya]: `git checkout -b feature/m3-actor-schema-examples` + - [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Docs [Aditya]: Add `docs/reference/actors_examples.md` with strategist, executor, reviewer, tool-only, validation-node, and graph YAML examples. - [ ] Docs [Aditya]: Include hierarchical actor graph examples (graph-with-subgraph, multi-level planner/executor) aligned with spec. - [ ] Docs [Aditya]: Store example YAML files under `examples/actors/` for automated tests. @@ -2405,20 +2549,20 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Aditya]: Add `asv/benchmarks/actor_examples_load_bench.py` for YAML load throughput. - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Aditya]: `git add .` (only after coverage check passes) - [ ] Commit [Aditya]: `git commit -m "docs(actor): add actor yaml examples"`. + - [ ] Forgejo PR [Aditya]: Open PR from `feature/m3-actor-schema-examples` to `master` with description "Add actor YAML examples and validation tests.". + - [ ] Git [Aditya]: `git checkout master` + - [ ] Git [Aditya]: `git branch -d feature/m3-actor-schema-examples` **Parallel Group C2: Actor Loading & Compilation [Aditya + Jeff]** (depends on C1) **PARALLEL SUBTRACK C2.legacy [Jeff]**: Remove v2 actor config compatibility (after C1.schema) **SEQUENTIAL NOTE**: C2.legacy must land before C2.loader/C2.compiler to avoid dual-format support. -- [ ] Git [Aditya]: `git checkout master` -- [ ] Git [Aditya]: `git pull origin master` -- [ ] Git [Aditya]: `git checkout -b feature/m3-actor-loader` -- [ ] Git [Aditya]: `git push -u origin feature/m3-actor-loader` -- [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Aditya]: Open PR from `feature/m3-actor-loader` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Aditya]: `git branch -d feature/m3-actor-loader` -- [ ] Git [Aditya]: `git push origin --delete feature/m3-actor-loader` - [ ] **COMMIT (Owner: Aditya | Group: C2.loader | Branch: feature/m3-actor-loader) - Commit message: "feat(actor): add actor registry and loader"** + - [ ] Git [Aditya]: `git checkout master` + - [ ] Git [Aditya]: `git pull origin master` + - [ ] Git [Aditya]: `git checkout -b feature/m3-actor-loader` + - [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Aditya]: Implement actor loader/registry with namespaced lookup, cache invalidation, and file discovery in `actors/` and `examples/actors/`. - [ ] Code [Aditya]: Normalize actor file paths, reject non-`.yaml` files, and emit a single consolidated error when duplicates are found across search roots. - [ ] Code [Aditya]: Store and compare a content hash for actor configs to avoid reloading unchanged actors (mtime + hash fallback). @@ -2430,16 +2574,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Aditya]: Add `asv/benchmarks/actor_loading_bench.py` for registry load performance. - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Aditya]: `git add .` (only after coverage check passes) - [ ] Commit [Aditya]: `git commit -m "feat(actor): add actor registry and loader"`. -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m3-actor-compiler` -- [ ] Git [Jeff]: `git push -u origin feature/m3-actor-compiler` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-actor-compiler` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m3-actor-compiler` -- [ ] Git [Jeff]: `git push origin --delete feature/m3-actor-compiler` + - [ ] Forgejo PR [Aditya]: Open PR from `feature/m3-actor-loader` to `master` with description "Add actor registry/loader, discovery rules, and tests.". + - [ ] Git [Aditya]: `git checkout master` + - [ ] Git [Aditya]: `git branch -d feature/m3-actor-loader` - [ ] **COMMIT (Owner: Jeff | Group: C2.compiler | Branch: feature/m3-actor-compiler) - 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. @@ -2451,16 +2595,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/actor_compilation_bench.py` for compilation speed. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "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-refs` -- [ ] Git [Jeff]: `git push -u origin feature/m3-actor-refs` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-actor-refs` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m3-actor-refs` -- [ ] Git [Jeff]: `git push origin --delete feature/m3-actor-refs` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-actor-compiler` to `master` with description "Compile actor configs to LangGraph with tool wiring and diagnostics.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m3-actor-compiler` - [ ] **COMMIT (Owner: Jeff | Group: C2.refs | Branch: feature/m3-actor-refs) - 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. @@ -2471,17 +2615,17 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/actor_reference_bench.py` for reference resolution performance. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(actor): resolve actor references and subgraphs"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-actor-refs` to `master` with description "Resolve actor references/subgraphs with diagnostics and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m3-actor-refs` -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m3-actor-legacy-cleanup` -- [ ] Git [Jeff]: `git push -u origin feature/m3-actor-legacy-cleanup` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-actor-legacy-cleanup` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m3-actor-legacy-cleanup` -- [ ] Git [Jeff]: `git push origin --delete feature/m3-actor-legacy-cleanup` - [ ] **COMMIT (Owner: Jeff | Group: C2.legacy | Branch: feature/m3-actor-legacy-cleanup) - Commit message: "refactor(actor): drop v2 actor config compatibility"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m3-actor-legacy-cleanup` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Remove v2 JSON/YAML parsing paths in `src/cleveragents/actor/config.py` and related template engine usage. - [ ] Code [Jeff]: Ensure only v3 actor YAML schema is accepted; provide clear error message when v2 fields are present. - [ ] Code [Jeff]: Remove legacy actor config fixtures from `examples/` and update any docs that reference v2 file layouts. @@ -2491,18 +2635,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/actor_schema_reject_bench.py` for validation overhead. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "refactor(actor): drop v2 actor config compatibility"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-actor-legacy-cleanup` to `master` with description "Drop v2 actor config compatibility and update docs/tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m3-actor-legacy-cleanup` **Parallel Group C2.context: Actor Context Commands [Jeff]** (depends on C2.loader; post-M2) -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m3-actor-context` -- [ ] Git [Jeff]: `git push -u origin feature/m3-actor-context` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-actor-context` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m3-actor-context` -- [ ] Git [Jeff]: `git push origin --delete feature/m3-actor-context` - [ ] **COMMIT (Owner: Jeff | Group: C2.context | Branch: feature/m3-actor-context) - 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. @@ -2514,18 +2658,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/actor_context_cli_bench.py` for command overhead. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(cli): add actor context commands"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-actor-context` to `master` with description "Add actor context CLI commands and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m3-actor-context` **Parallel Group C3: Skill Protocol & Context [Jeff]** (critical path; depends on C1) -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m3-skill-protocol` -- [ ] Git [Jeff]: `git push -u origin feature/m3-skill-protocol` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-skill-protocol` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m3-skill-protocol` -- [ ] Git [Jeff]: `git push origin --delete feature/m3-skill-protocol` - [ ] **COMMIT (Owner: Jeff | Group: C3.protocol | Branch: feature/m3-skill-protocol) - Commit message: "feat(skill): add skill protocol and metadata"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m3-skill-protocol` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Define Skill protocol interface, SkillMetadata, SkillResult, and SkillError types in `src/cleveragents/skills/protocol.py`. - [ ] Code [Jeff]: Add `SkillDefinition` model that references Tool Registry names and optional inline tool definitions. - [ ] Code [Jeff]: Add error mapping helpers to normalize tool failures into SkillError payloads. @@ -2537,8 +2681,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/skill_protocol_bench.py` for validation throughput. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(skill): add skill protocol and metadata"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-skill-protocol` to `master` with description "Add skill protocol, metadata models, and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m3-skill-protocol` - [ ] **COMMIT (Owner: Jeff | Group: C3.context | Branch: feature/m3-skill-protocol) - Commit message: "feat(skill): add skill context and registry"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m3-skill-protocol` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement SkillContext (plan/resource access, sandbox path, change tracker) and SkillRegistry in `src/cleveragents/skills/context.py`. - [ ] Code [Jeff]: Wire SkillRegistry to Tool Registry for tool resolution and validation node inclusion. - [ ] Code [Jeff]: Add context helpers for resolving bound resources and exposing plan metadata. @@ -2550,8 +2702,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/skill_context_bench.py` for registry resolution overhead. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(skill): add skill context and registry"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-skill-protocol` to `master` with description "Add skill context, registry, and change tracking hooks.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m3-skill-protocol` - [ ] **COMMIT (Owner: Jeff | Group: C3.inline | Branch: feature/m3-skill-protocol) - Commit message: "feat(skill): add inline tool executor"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m3-skill-protocol` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement inline tool execution with timeouts and restricted environment in `src/cleveragents/skills/inline_executor.py`. - [ ] Code [Jeff]: Ensure inline tools conform to Tool Registry schema and return structured results. - [ ] Code [Jeff]: Add safeguards for file/network access inside inline tools (local-only for MVP). @@ -2562,18 +2722,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/inline_tool_bench.py` for execution overhead. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(skill): add inline tool executor"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-skill-protocol` to `master` with description "Add inline tool executor with safety constraints and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m3-skill-protocol` **Parallel Group C4: Built-in Skills [Jeff + Luis]** (depends on C3) -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m3-skill-file-search` -- [ ] Git [Jeff]: `git push -u origin feature/m3-skill-file-search` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-skill-file-search` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m3-skill-file-search` -- [ ] Git [Jeff]: `git push origin --delete feature/m3-skill-file-search` - [ ] **COMMIT (Owner: Jeff | Group: C4.file | Branch: feature/m3-skill-file-search) - Commit message: "feat(skill): add file operation skills"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m3-skill-file-search` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement ReadFile, WriteFile, EditFile, and DeleteFile tools with read_only enforcement. - [ ] Code [Jeff]: Register tools in Tool Registry with resource bindings for fs/git resources and sandbox path rewrite. - [ ] Code [Jeff]: Add content size limits and encoding normalization (UTF-8) for file tools. @@ -2588,8 +2748,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/file_tool_bench.py` for read/write throughput. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(skill): add file operation skills"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-skill-file-search` to `master` with description "Add file operation skills with sandboxed guards and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m3-skill-file-search` - [ ] **COMMIT (Owner: Jeff | Group: C4.search | Branch: feature/m3-skill-file-search) - Commit message: "feat(skill): add directory and search skills"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m3-skill-file-search` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement ListDir, Glob, and Grep tools with ignore patterns and size limits. - [ ] Code [Jeff]: Register tools in Tool Registry with resource bindings and sandbox awareness. - [ ] Code [Jeff]: Enforce include/exclude glob filters from project context policies. @@ -2603,16 +2771,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/search_tool_bench.py` for search performance. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(skill): add directory and search skills"`. -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m3-skill-git` -- [ ] Git [Luis]: `git push -u origin feature/m3-skill-git` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m3-skill-git` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m3-skill-git` -- [ ] Git [Luis]: `git push origin --delete feature/m3-skill-git` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-skill-file-search` to `master` with description "Add directory/search skills with deterministic output and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m3-skill-file-search` - [ ] **COMMIT (Owner: Luis | Group: C4.git | Branch: feature/m3-skill-git) - Commit message: "feat(skill): add git operation skills"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m3-skill-git` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Implement read-only git tools (status, diff, log, show) for sandboxed repos. - [ ] Code [Luis]: Register git tools in Tool Registry with read-only capability metadata. - [ ] Code [Luis]: Add path guards to ensure git tools only run inside sandbox root. @@ -2626,18 +2794,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/git_tool_bench.py` for diff/log performance. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(skill): add git operation skills"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m3-skill-git` to `master` with description "Add read-only git operation skills with safety guards and tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m3-skill-git` **Parallel Group C5: Tool Routing & Change Tracking [Luis + Jeff]** (depends on C3/C4) -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m3-change-model` -- [ ] Git [Luis]: `git push -u origin feature/m3-change-model` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m3-change-model` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m3-change-model` -- [ ] Git [Luis]: `git push origin --delete feature/m3-change-model` - [ ] **COMMIT (Owner: Luis | Group: C5.model | Branch: feature/m3-change-model) - Commit message: "feat(change): add ChangeSet models and invocation tracker"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m3-change-model` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Add Change/ChangeSet/ToolInvocation models and SkillInvocationTracker. - [ ] Code [Luis]: Ensure ChangeSet stores resource references, sandbox paths, tool metadata, and timestamps. - [ ] Code [Luis]: Add ChangeSet serialization helper for plan diff output (group by resource). @@ -2652,16 +2820,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/change_tracking_bench.py` for invocation tracking overhead. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(change): add ChangeSet models and invocation tracker"`. -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m3-tool-router` -- [ ] Git [Jeff]: `git push -u origin feature/m3-tool-router` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-tool-router` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m3-tool-router` -- [ ] Git [Jeff]: `git push origin --delete feature/m3-tool-router` + - [ ] Forgejo PR [Luis]: Open PR from `feature/m3-change-model` to `master` with description "Add ChangeSet models, invocation tracking, and tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m3-change-model` - [ ] **COMMIT (Owner: Jeff | Group: C5.router | Branch: feature/m3-tool-router) - Commit message: "feat(change): add tool router for providers"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m3-tool-router` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement ToolCallRouter for OpenAI/Anthropic/LangChain tool schemas with deterministic IDs. - [ ] Code [Jeff]: Add mapping for tool/validation names and argument schemas based on Tool Registry metadata. - [ ] Code [Jeff]: Add tool-call result normalization to match ToolInvocation schema. @@ -2677,16 +2845,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/tool_router_bench.py` for routing performance. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(change): add tool router for providers"`. -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m3-diff-review` -- [ ] Git [Luis]: `git push -u origin feature/m3-diff-review` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m3-diff-review` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m3-diff-review` -- [ ] Git [Luis]: `git push origin --delete feature/m3-diff-review` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-tool-router` to `master` with description "Add tool router for providers with schema mapping and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m3-tool-router` - [ ] **COMMIT (Owner: Luis | Group: C5.diff | Branch: feature/m3-diff-review) - Commit message: "feat(change): add diff review artifacts"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m3-diff-review` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Implement DiffBuilder and ReviewArtifact models for CLI review. - [ ] Code [Luis]: Add support for multi-resource diffs and per-resource grouping. - [ ] Code [Luis]: Add diff output serializers for rich/plain/json formats. @@ -2701,18 +2869,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/diff_review_bench.py` for diff building performance. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(change): add diff review artifacts"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m3-diff-review` to `master` with description "Add diff review artifacts and CLI-ready serializers with tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m3-diff-review` **Parallel Group C6: Validation Pipeline [Luis + Jeff]** (depends on C5 and validation attachment config) -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m3-validation-pipeline` -- [ ] Git [Luis]: `git push -u origin feature/m3-validation-pipeline` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m3-validation-pipeline` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m3-validation-pipeline` -- [ ] Git [Luis]: `git push origin --delete feature/m3-validation-pipeline` - [ ] **COMMIT (Owner: Luis | Group: C6.pipeline | Branch: feature/m3-validation-pipeline) - 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. @@ -2730,16 +2898,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/validation_pipeline_bench.py` for pipeline runtime. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(validation): add validation pipeline and results model"`. -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m3-validation-wraps` -- [ ] Git [Jeff]: `git push -u origin feature/m3-validation-wraps` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-validation-wraps` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m3-validation-wraps` -- [ ] Git [Jeff]: `git push origin --delete feature/m3-validation-wraps` + - [ ] Forgejo PR [Luis]: Open PR from `feature/m3-validation-pipeline` to `master` with description "Add validation pipeline and results model with ordering/timeout rules and tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m3-validation-pipeline` - [ ] **COMMIT (Owner: Jeff | Group: C6.wraps | Branch: feature/m3-validation-wraps) - 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. @@ -2755,16 +2923,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/validation_wraps_bench.py` for transform overhead. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "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-gating` -- [ ] Git [Jeff]: `git push -u origin feature/m3-validation-gating` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-validation-gating` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m3-validation-gating` -- [ ] Git [Jeff]: `git push origin --delete feature/m3-validation-gating` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-validation-wraps` to `master` with description "Support validation wraps/transform execution with safety guards and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m3-validation-wraps` - [ ] **COMMIT (Owner: Jeff | Group: C6.gating | Branch: feature/m3-validation-gating) - 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). @@ -2779,18 +2947,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/validation_gating_bench.py` for gating overhead. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(validation): integrate validation with apply gating"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-validation-gating` to `master` with description "Integrate validation gating into apply workflow with CLI summaries and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m3-validation-gating` **Parallel Group C7: MCP Adapter [Aditya]** (depends on C3) -- [ ] Git [Aditya]: `git checkout master` -- [ ] Git [Aditya]: `git pull origin master` -- [ ] Git [Aditya]: `git checkout -b feature/m3-mcp-adapter` -- [ ] Git [Aditya]: `git push -u origin feature/m3-mcp-adapter` -- [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Aditya]: Open PR from `feature/m3-mcp-adapter` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Aditya]: `git branch -d feature/m3-mcp-adapter` -- [ ] Git [Aditya]: `git push origin --delete feature/m3-mcp-adapter` - [ ] **COMMIT (Owner: Aditya | Group: C7.mcp | Branch: feature/m3-mcp-adapter) - 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). @@ -2806,18 +2974,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Aditya]: Add `asv/benchmarks/mcp_adapter_bench.py` for tool invocation latency. - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Aditya]: `git add .` (only after coverage check passes) - [ ] Commit [Aditya]: `git commit -m "feat(skill): add MCP adapter for external tools"`. + - [ ] Forgejo PR [Aditya]: Open PR from `feature/m3-mcp-adapter` to `master` with description "Add MCP adapter for external tools with allowlist and tests.". + - [ ] Git [Aditya]: `git checkout master` + - [ ] Git [Aditya]: `git branch -d feature/m3-mcp-adapter` **Parallel Group C8: Built-in Provider Actors [Aditya]** (depends on C1/C2) -- [ ] Git [Aditya]: `git checkout master` -- [ ] Git [Aditya]: `git pull origin master` -- [ ] Git [Aditya]: `git checkout -b feature/m3-provider-actors` -- [ ] Git [Aditya]: `git push -u origin feature/m3-provider-actors` -- [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Aditya]: Open PR from `feature/m3-provider-actors` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Aditya]: `git branch -d feature/m3-provider-actors` -- [ ] Git [Aditya]: `git push origin --delete feature/m3-provider-actors` - [ ] **COMMIT (Owner: Aditya | Group: C8.providers | Branch: feature/m3-provider-actors) - Commit message: "feat(actor): add built-in provider actors"** + - [ ] Git [Aditya]: `git checkout master` + - [ ] Git [Aditya]: `git pull origin master` + - [ ] Git [Aditya]: `git checkout -b feature/m3-provider-actors` + - [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Aditya]: Add built-in actor configs for `openai/`, `anthropic/`, and `openrouter/` (plus `google/` if configured). - [ ] Code [Aditya]: Add built-in actors for invariant reconciliation and estimation roles (using provider defaults). - [ ] Code [Aditya]: Set provider-specific defaults for temperature, max tokens, and tool-calling mode in each actor config. @@ -2831,18 +2999,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Aditya]: Add `asv/benchmarks/provider_actor_load_bench.py` for registry load cost. - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Aditya]: `git add .` (only after coverage check passes) - [ ] Commit [Aditya]: `git commit -m "feat(actor): add built-in provider actors"`. + - [ ] Forgejo PR [Aditya]: Open PR from `feature/m3-provider-actors` to `master` with description "Add built-in provider actor configs with defaults and tests.". + - [ ] Git [Aditya]: `git checkout master` + - [ ] Git [Aditya]: `git branch -d feature/m3-provider-actors` **Parallel Group C9: Plan-Actor Integration [Jeff + Luis]** (depends on C2/C5/C6) -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m3-plan-execute` -- [ ] Git [Jeff]: `git push -u origin feature/m3-plan-execute` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-plan-execute` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m3-plan-execute` -- [ ] Git [Jeff]: `git push origin --delete feature/m3-plan-execute` - [ ] **COMMIT (Owner: Jeff | Group: C9.execute | Branch: feature/m3-plan-execute) - Commit message: "feat(plan): execute strategize and execute phases via actors"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m3-plan-execute` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Connect PlanLifecycleService to actor execution for Strategize and Execute phases. - [ ] Code [Jeff]: Ensure Strategize is read-only and records decisions without modifying resources. - [ ] Code [Jeff]: Ensure Execute uses sandbox resources and tool calls routed through Tool Router + ChangeSet. @@ -2860,16 +3028,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/plan_actor_integration_bench.py` for execution overhead. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(plan): execute strategize and execute phases via actors"`. -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m3-plan-apply` -- [ ] Git [Jeff]: `git push -u origin feature/m3-plan-apply` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-plan-apply` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m3-plan-apply` -- [ ] Git [Jeff]: `git push origin --delete feature/m3-plan-apply` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-plan-execute` to `master` with description "Integrate actor execution for strategize/execute phases with change tracking.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m3-plan-execute` - [ ] **COMMIT (Owner: Jeff | Group: C9.apply | Branch: feature/m3-plan-apply) - Commit message: "feat(plan): integrate change review and apply flow"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m3-plan-apply` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Wire ChangeSet review artifacts into `plan diff` and review-before-apply flow. - [ ] Code [Jeff]: Ensure Apply merges sandbox into real resources only after required validations pass. - [ ] Code [Jeff]: Persist apply summary (files changed, validations) back into Plan metadata for `plan status`. @@ -2884,7 +3052,11 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/plan_apply_bench.py` for apply throughput. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(plan): integrate change review and apply flow"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-plan-apply` to `master` with description "Integrate change review and apply flow with validation gating and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m3-plan-apply` **M3 SUCCESS CRITERIA**: - Actor YAML schema validated; examples load and compile to LangGraph. @@ -2906,15 +3078,11 @@ Merge points and acceptance checks are tracked as checklist items under each mil **Week 3 focus**: decision capture, correction, invariants, and DoD gating. **Parallel Group D1: Decision Domain [Hamza]** (foundation for D2-D5; tests supported by Brent when Rui is unavailable) -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m4-decision-domain` -- [ ] Git [Hamza]: `git push -u origin feature/m4-decision-domain` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-domain` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m4-decision-domain` -- [ ] Git [Hamza]: `git push origin --delete feature/m4-decision-domain` - [ ] **COMMIT (Owner: Hamza | Group: D1.domain | Branch: feature/m4-decision-domain) - 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 and helpers. - [ ] Code [Hamza]: Include required fields: question, chosen option, alternatives, confidence score, rationale, dependencies, and context hash. - [ ] Code [Hamza]: Add identifiers (`decision_id` ULID, `plan_id`, `parent_decision_id`, `root_decision_id`) and supersession markers (`superseded_by`, `superseded_at`). @@ -2927,18 +3095,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/decision_model_bench.py` for decision validation throughput. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) - [ ] Commit [Hamza]: `git commit -m "feat(domain): add decision model and context snapshots"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-domain` to `master` with description "Add decision domain models and context snapshot helpers.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m4-decision-domain` **Parallel Group D2: Decision Recording Service [Hamza]** (depends on D1) -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m4-decision-service` -- [ ] Git [Hamza]: `git push -u origin feature/m4-decision-service` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-service` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m4-decision-service` -- [ ] Git [Hamza]: `git push origin --delete feature/m4-decision-service` - [ ] **COMMIT (Owner: Hamza | Group: D2.service | Branch: feature/m4-decision-service) - 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_decision`, sequence numbers, tree queries, and downstream linking. - [ ] Code [Hamza]: Add `ContextSnapshotStore` interface with a file-backed MVP implementation and hash dedupe. - [ ] Code [Hamza]: Integrate decision recording into strategize/execute phases (prompt/strategy/subplan/tool decisions). @@ -2952,18 +3120,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/decision_recording_bench.py` for record throughput. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) - [ ] Commit [Hamza]: `git commit -m "feat(service): add decision recording and snapshot store"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-service` to `master` with description "Add decision recording service and snapshot store with tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m4-decision-service` **Parallel Group D3: Decision CLI & Viewing [Hamza]** (depends on D1/D2) -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m4-decision-cli` -- [ ] Git [Hamza]: `git push -u origin feature/m4-decision-cli` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-cli` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m4-decision-cli` -- [ ] Git [Hamza]: `git push origin --delete feature/m4-decision-cli` - [ ] **COMMIT (Owner: Hamza | Group: D3.cli | Branch: feature/m4-decision-cli) - 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 rich/json/flat formats and `--show-superseded`/`--show-context`. - [ ] Code [Hamza]: Add `--show-reasoning` to include confidence and alternatives in explain output per spec. - [ ] Code [Hamza]: Add `--depth` and `--type` filters for tree output to reduce large plan noise. @@ -2976,18 +3144,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/decision_cli_bench.py` for tree rendering overhead. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) - [ ] Commit [Hamza]: `git commit -m "feat(cli): add plan tree and explain commands"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-cli` to `master` with description "Add plan tree/explain commands and decision viewing outputs.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m4-decision-cli` **Parallel Group D4: Decision Correction [Jeff + Luis]** (depends on D2/D3) -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m4-decision-revert` -- [ ] Git [Jeff]: `git push -u origin feature/m4-decision-revert` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-decision-revert` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m4-decision-revert` -- [ ] Git [Jeff]: `git push origin --delete feature/m4-decision-revert` - [ ] **COMMIT (Owner: Jeff | Group: D4.revert | Branch: feature/m4-decision-revert) - 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 and dry-run reporting. - [ ] Code [Jeff]: Revert flow with checkpoint rollback, supersede downstream decisions, and subtree re-exec. - [ ] Code [Jeff]: Persist correction attempt IDs and link them to superseded decisions. @@ -3003,16 +3171,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/decision_correction_revert_bench.py` for correction overhead. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "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-append` -- [ ] Git [Jeff]: `git push -u origin feature/m4-decision-append` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-decision-append` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m4-decision-append` -- [ ] Git [Jeff]: `git push origin --delete feature/m4-decision-append` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-decision-revert` to `master` with description "Add decision correction revert flow with dry-run and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m4-decision-revert` - [ ] **COMMIT (Owner: Jeff | Group: D4.append | Branch: feature/m4-decision-append) - 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]: Append flow creating fix subplan without rewriting history; link correction attempt + decision tree updates. - [ ] Code [Jeff]: Record append corrections as separate subtree with explicit lineage. - [ ] Code [Jeff]: Enforce that append corrections do not modify prior decisions; they only add a new branch and mark prior branch as superseded. @@ -3025,18 +3193,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/decision_correction_append_bench.py` for append overhead. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(service): add decision correction append flow"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-decision-append` to `master` with description "Add decision correction append flow and docs/tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m4-decision-append` **Parallel Group D5: Decision Persistence [Hamza + Luis]** (depends on D1) -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m4-decision-persistence` -- [ ] Git [Hamza]: `git push -u origin feature/m4-decision-persistence` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-persistence` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m4-decision-persistence` -- [ ] Git [Hamza]: `git push origin --delete feature/m4-decision-persistence` - [ ] **COMMIT (Owner: Hamza | Group: D5.db | Branch: feature/m4-decision-persistence) - 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. @@ -3046,8 +3214,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/decision_migration_bench.py` for migration baseline. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) - [ ] Commit [Hamza]: `git commit -m "feat(db): add decision tables"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-persistence` to `master` with description "Add decision persistence tables and migrations.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m4-decision-persistence` - [ ] **COMMIT (Owner: Hamza | Group: D5.repo | Branch: feature/m4-decision-persistence) - 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). @@ -3057,16 +3233,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/decision_repository_bench.py` for tree query performance. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) - [ ] Commit [Hamza]: `git commit -m "feat(repo): add decision repositories"`. -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m4-decision-di` -- [ ] Git [Luis]: `git push -u origin feature/m4-decision-di` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m4-decision-di` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m4-decision-di` -- [ ] Git [Luis]: `git push origin --delete feature/m4-decision-di` + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-persistence` to `master` with description "Add decision repositories and persistence queries.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m4-decision-persistence` - [ ] **COMMIT (Owner: Luis | Group: D5.di | Branch: feature/m4-decision-di) - 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. @@ -3075,36 +3251,36 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/decision_di_bench.py` for DI resolution overhead. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(di): wire decision services"`. -- [ ] Git [Rui]: `git checkout master` -- [ ] Git [Rui]: `git pull origin master` -- [ ] Git [Rui]: `git checkout -b feature/m4-decision-tests` -- [ ] Git [Rui]: `git push -u origin feature/m4-decision-tests` -- [ ] Git [Rui]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Rui]: Open PR from `feature/m4-decision-tests` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Rui]: `git branch -d feature/m4-decision-tests` -- [ ] Git [Rui]: `git push origin --delete feature/m4-decision-tests` -- [ ] **COMMIT (Owner: Rui | Group: D5.tests | Branch: feature/m4-decision-tests) - Commit message: "test(persistence): add decision persistence suites"** - - [ ] Tests (Behave) [Rui]: Add `features/decision_persistence.feature` scenarios. - - [ ] Tests (Behave) [Rui]: Add scenarios for superseded decisions, correction attempts, and tree depth filtering. - - [ ] Tests (Behave) [Rui]: Add output snapshots for `plan explain --format json` and `plan tree --format yaml`. - - [ ] Tests (Robot) [Rui]: Add `robot/decision_persistence.robot` E2E coverage. - - [ ] Docs [Rui]: Update `docs/development/testing.md` with decision suites. - - [ ] Tests (ASV) [Rui]: Add `asv/benchmarks/decision_persistence_bench.py` for DB persistence throughput. - - [ ] Quality [Rui]: Run `nox` (all default sessions, including benchmark). - - [ ] Quality [Rui]: 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 [Rui]: `git commit -m "test(persistence): add decision persistence suites"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-decision-di` to `master` with description "Wire decision services into DI and CLI with tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m4-decision-di` +- [ ] **COMMIT (Owner: Brent | Group: D5.tests | Branch: feature/m4-decision-tests) - 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 `asv/benchmarks/decision_persistence_bench.py` for DB persistence throughput. + - [ ] Quality [Brent]: Run `nox` (all default sessions, including benchmark). + - [ ] 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%. + - [ ] Git [Brent]: `git add .` (only after coverage check passes) + - [ ] Commit [Brent]: `git commit -m "test(persistence): add decision persistence suites"`. + - [ ] Forgejo PR [Brent]: Open PR from `feature/m4-decision-tests` to `master` with description "Add decision persistence test suites and benchmarks.". + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git branch -d feature/m4-decision-tests` **Parallel Group DOD: Definition of Done + Invariants [Luis + Jeff]** (depends on D2/D4) -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m4-definition-of-done` -- [ ] Git [Luis]: `git push -u origin feature/m4-definition-of-done` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m4-definition-of-done` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m4-definition-of-done` -- [ ] Git [Luis]: `git push origin --delete feature/m4-definition-of-done` - [ ] **COMMIT (Owner: Luis | Group: DOD.dod | Branch: feature/m4-definition-of-done) - 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. @@ -3117,16 +3293,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/dod_evaluation_bench.py` for evaluation overhead. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(dod): enforce definition-of-done gating"`. -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m4-invariants` -- [ ] Git [Jeff]: `git push -u origin feature/m4-invariants` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-invariants` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m4-invariants` -- [ ] Git [Jeff]: `git push origin --delete feature/m4-invariants` + - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-definition-of-done` to `master` with description "Enforce definition-of-done gating with evaluation and tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m4-definition-of-done` - [ ] **COMMIT (Owner: Jeff | Group: DOD.invariants | Branch: feature/m4-invariants) - 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. @@ -3142,7 +3318,11 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/invariant_merge_bench.py` for merge overhead. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(invariant): add invariant models and enforcement"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-invariants` to `master` with description "Add invariant models, persistence, and enforcement with tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m4-invariants` ### Section 7: Subplans & Parallelism [M5] @@ -3151,15 +3331,11 @@ Merge points and acceptance checks are tracked as checklist items under each mil **Week 3-4 focus**: subplan spawning, parallel execution, and result merging. **Parallel Group E1: Subplan Domain [Luis]** (tests supported by Brent while Rui is unavailable) -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m5-subplan-domain` -- [ ] Git [Luis]: `git push -u origin feature/m5-subplan-domain` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m5-subplan-domain` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m5-subplan-domain` -- [ ] Git [Luis]: `git push origin --delete feature/m5-subplan-domain` - [ ] **COMMIT (Owner: Luis | Group: E1.domain | Branch: feature/m5-subplan-domain) - Commit message: "feat(domain): add subplan config and status models"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m5-subplan-domain` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Add `ExecutionMode` enum (sequential, parallel, hybrid) with validation guards. - [ ] Code [Luis]: Add `MergeStrategy` enum (three_way, sequential, json) with defaults. - [ ] Code [Luis]: Add `SubplanConfig` model fields: parent_plan_id, spawn_decision_id, dependencies, max_parallel, merge_strategy, automation_profile_override, invariants_override, context_view_override. @@ -3180,7 +3356,11 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/subplan_model_bench.py` for model validation. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(domain): add subplan config and status models"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m5-subplan-domain` to `master` with description "Add subplan domain models, enums, and tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m5-subplan-domain` - [X] **Stage E1: Subplan Model** (Day 12) **[Luis]** @@ -3390,8 +3570,8 @@ Merge points and acceptance checks are tracked as checklist items under each mil } ``` - [X] Commit: "feat(domain): define retriable vs non-retriable failures" - - [ ] **E1.6** [Rui] Write Behave tests for subplan model: - - [ ] **E1.6a** [Rui] Plan hierarchy scenarios: + - [ ] **E1.6** [Brent] Write Behave tests for subplan model: + - [ ] **E1.6a** [Brent] Plan hierarchy scenarios: - [ ] Scenario: Plan with parent_plan_id has is_subplan=True - [ ] Given Plan with parent_plan_id set - [ ] Then is_subplan returns True @@ -3399,27 +3579,23 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Scenario: Root plan has is_subplan=False and is_root_plan=True - [ ] Scenario: SubplanConfig validates max_parallel bounds - [ ] Commit: "test(behave): add plan hierarchy scenarios" - - [ ] **E1.6b** [Rui] Execution mode scenarios: + - [ ] **E1.6b** [Brent] Execution mode scenarios: - [ ] Scenario: ExecutionMode enum has all required values - [ ] Scenario: MergeStrategy enum has all required values - [ ] Scenario: SubplanConfig defaults are applied - [ ] Commit: "test(behave): add execution mode scenarios" - - [ ] **E1.6c** [Rui] SubplanStatus scenarios: + - [ ] **E1.6c** [Brent] SubplanStatus scenarios: - [ ] Scenario: SubplanStatus tracks state correctly - [ ] Scenario: SubplanAttempt records retry history - [ ] Scenario: Failure handler respects fail_fast setting - [ ] Commit: "test(behave): add SubplanStatus scenarios" **Parallel Group E2: Subplan Spawning [Jeff + Aditya]** (depends on D2 + E1) -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m5-subplan-service` -- [ ] Git [Jeff]: `git push -u origin feature/m5-subplan-service` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m5-subplan-service` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m5-subplan-service` -- [ ] Git [Jeff]: `git push origin --delete feature/m5-subplan-service` - [ ] **COMMIT (Owner: Jeff | Group: E2.service | Branch: feature/m5-subplan-service) - 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. @@ -3438,16 +3614,16 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/subplan_spawn_bench.py` for spawn throughput. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(service): add subplan service and spawn workflow"`. -- [ ] Git [Aditya]: `git checkout master` -- [ ] Git [Aditya]: `git pull origin master` -- [ ] Git [Aditya]: `git checkout -b feature/m5-subplan-actor` -- [ ] Git [Aditya]: `git push -u origin feature/m5-subplan-actor` -- [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Aditya]: Open PR from `feature/m5-subplan-actor` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Aditya]: `git branch -d feature/m5-subplan-actor` -- [ ] Git [Aditya]: `git push origin --delete feature/m5-subplan-actor` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m5-subplan-service` to `master` with description "Add subplan service, spawn workflows, and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m5-subplan-service` - [ ] **COMMIT (Owner: Aditya | Group: E2.actor | Branch: feature/m5-subplan-actor) - 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. @@ -3462,18 +3638,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Aditya]: Add `asv/benchmarks/subplan_actor_tool_bench.py` for tool invocation overhead. - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Aditya]: `git add .` (only after coverage check passes) - [ ] Commit [Aditya]: `git commit -m "feat(actor): add plan_subplan tool and decision emission"`. + - [ ] Forgejo PR [Aditya]: Open PR from `feature/m5-subplan-actor` to `master` with description "Add plan_subplan tool emission rules with tests and examples.". + - [ ] Git [Aditya]: `git checkout master` + - [ ] Git [Aditya]: `git branch -d feature/m5-subplan-actor` **Parallel Group E3: Parallel Execution [Luis + Jeff]** (depends on E1/E2) -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m5-subplan-exec` -- [ ] Git [Luis]: `git push -u origin feature/m5-subplan-exec` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m5-subplan-exec` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m5-subplan-exec` -- [ ] Git [Luis]: `git push origin --delete feature/m5-subplan-exec` - [ ] **COMMIT (Owner: Luis | Group: E3.exec | Branch: feature/m5-subplan-exec) - 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). @@ -3490,18 +3666,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/subplan_scheduler_bench.py` for scheduler overhead. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(service): add subplan scheduler and execution"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m5-subplan-exec` to `master` with description "Add subplan scheduler and execution with dependency ordering and tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m5-subplan-exec` **Parallel Group E4: Result Merging [Jeff]** (depends on E3) -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m5-subplan-merge` -- [ ] Git [Jeff]: `git push -u origin feature/m5-subplan-merge` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m5-subplan-merge` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m5-subplan-merge` -- [ ] Git [Jeff]: `git push origin --delete feature/m5-subplan-merge` - [ ] **COMMIT (Owner: Jeff | Group: E4.merge | Branch: feature/m5-subplan-merge) - 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). @@ -3517,18 +3693,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/subplan_merge_bench.py` for merge performance. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(merge): add subplan merge strategies"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m5-subplan-merge` to `master` with description "Add subplan merge strategies and conflict artifacts with tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m5-subplan-merge` **Parallel Group E5: Multi-Project Plans [Hamza]** (depends on E2/E4) -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m5-multi-project` -- [ ] Git [Hamza]: `git push -u origin feature/m5-multi-project` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m5-multi-project` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m5-multi-project` -- [ ] Git [Hamza]: `git push origin --delete feature/m5-multi-project` - [ ] **COMMIT (Owner: Hamza | Group: E5.multi | Branch: feature/m5-multi-project) - 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. @@ -3543,7 +3719,11 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/multi_project_bench.py` for multi-project overhead. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) - [ ] Commit [Hamza]: `git commit -m "feat(plan): add multi-project subplan support"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m5-multi-project` to `master` with description "Add multi-project subplan support and per-project summaries.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m5-multi-project` ### Section 8: Large Project Autonomy & Context [M6] @@ -3552,15 +3732,11 @@ Merge points and acceptance checks are tracked as checklist items under each mil **Local-mode only**: large-project autonomy is required; server connectivity remains stubbed. **Parallel Group G1: Large-Project Decomposition [Jeff]** -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m6-large-decompose` -- [ ] Git [Jeff]: `git push -u origin feature/m6-large-decompose` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-large-decompose` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m6-large-decompose` -- [ ] Git [Jeff]: `git push origin --delete feature/m6-large-decompose` - [ ] **COMMIT (Owner: Jeff | Group: G1.decompose | Branch: feature/m6-large-decompose) - 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. @@ -3578,18 +3754,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/large_project_decompose_bench.py` for decomposition runtime. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(plan): add large-project decomposition and dependency closure"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-large-decompose` to `master` with description "Add large-project decomposition, dependency closure, and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m6-large-decompose` **Parallel Group G2: Checkpointing & Rollback [Luis]** -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m6-checkpoint` -- [ ] Git [Luis]: `git push -u origin feature/m6-checkpoint` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m6-checkpoint` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m6-checkpoint` -- [ ] Git [Luis]: `git push origin --delete feature/m6-checkpoint` - [ ] **COMMIT (Owner: Luis | Group: G2.checkpoint | Branch: feature/m6-checkpoint) - 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. @@ -3606,18 +3782,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/checkpoint_rollback_bench.py` for rollback latency. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(checkpoint): add checkpointing and rollback"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m6-checkpoint` to `master` with description "Add checkpointing and rollback support with tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m6-checkpoint` **Parallel Group G3: Semantic Validation [Luis]** -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m6-semantic-validation` -- [ ] Git [Luis]: `git push -u origin feature/m6-semantic-validation` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m6-semantic-validation` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m6-semantic-validation` -- [ ] Git [Luis]: `git push origin --delete feature/m6-semantic-validation` - [ ] **COMMIT (Owner: Luis | Group: G3.semantic | Branch: feature/m6-semantic-validation) - 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. @@ -3634,18 +3810,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/semantic_validation_bench.py` for validation cost. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(validation): add semantic validation service"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m6-semantic-validation` to `master` with description "Add semantic validation service and attachments with tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m6-semantic-validation` **Parallel Group G4: Context Tiers & Views [Hamza]** -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m6-context-tiers` -- [ ] Git [Hamza]: `git push -u origin feature/m6-context-tiers` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-context-tiers` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m6-context-tiers` -- [ ] Git [Hamza]: `git push origin --delete feature/m6-context-tiers` - [ ] **COMMIT (Owner: Hamza | Group: G4.context | Branch: feature/m6-context-tiers) - 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. @@ -3663,18 +3839,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/context_tiers_bench.py` for tier lookup performance. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) - [ ] Commit [Hamza]: `git commit -m "feat(context): add hot/warm/cold tiers and actor views"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-context-tiers` to `master` with description "Add context tiers, actor views, and tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m6-context-tiers` **Parallel Group G5: Cost & Risk Estimation [Hamza]** -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m6-estimation` -- [ ] Git [Hamza]: `git push -u origin feature/m6-estimation` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-estimation` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m6-estimation` -- [ ] Git [Hamza]: `git push origin --delete feature/m6-estimation` - [ ] **COMMIT (Owner: Hamza | Group: G5.estimate | Branch: feature/m6-estimation) - 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. @@ -3688,18 +3864,18 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/estimation_actor_bench.py` for estimation runtime. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) - [ ] Commit [Hamza]: `git commit -m "feat(estimation): add cost and risk estimation actor"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-estimation` to `master` with description "Add cost/risk estimation actor and plan outputs.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m6-estimation` **Parallel Group G6: CLI Polish [Jeff]** -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m6-cli-polish` -- [ ] Git [Jeff]: `git push -u origin feature/m6-cli-polish` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-cli-polish` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m6-cli-polish` -- [ ] Git [Jeff]: `git push origin --delete feature/m6-cli-polish` - [ ] **COMMIT (Owner: Jeff | Group: G6.cli | Branch: feature/m6-cli-polish) - 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. @@ -3713,7 +3889,11 @@ Merge points and acceptance checks are tracked as checklist items under each mil - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/cli_render_bench.py` for output rendering overhead. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "chore(cli): polish help and output"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-cli-polish` to `master` with description "Polish CLI help/output formats and add tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m6-cli-polish` **--- MERGE POINT 2: Day 30 - Large Project Autonomy Target (LOCAL MODE ONLY) ---** @@ -3730,15 +3910,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is **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) -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m6-server-stubs` -- [ ] Git [Luis]: `git push -u origin feature/m6-server-stubs` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m6-server-stubs` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m6-server-stubs` -- [ ] Git [Luis]: `git push origin --delete feature/m6-server-stubs` - [ ] **COMMIT (Owner: Luis | Group: F0.stubs | Branch: feature/m6-server-stubs) - 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. @@ -3756,7 +3932,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/server_stub_bench.py` (baseline no-op). - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(interfaces): add server client stubs"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m6-server-stubs` to `master` with description "Add server client stubs and config wiring with tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m6-server-stubs` **M7 SUCCESS CRITERIA** (Post-Day 30): - `agents [--data-dir PATH] [--config-path PATH] connect ` establishes connection to an external server. @@ -3770,15 +3950,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is **Note**: Quality automation setup is in Section 0; Section 10 focuses on async infrastructure and later-stage validation support. **Parallel Group 10A: Async Infrastructure [Luis]** -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m6-async-infra` -- [ ] Git [Luis]: `git push -u origin feature/m6-async-infra` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m6-async-infra` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m6-async-infra` -- [ ] Git [Luis]: `git push origin --delete feature/m6-async-infra` - [ ] **COMMIT (Owner: Luis | Group: 10A.async | Branch: feature/m6-async-infra) - Commit message: "feat(async): add async command execution and workers"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m6-async-infra` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Implement async command execution per ADR-002 with cancellation and timeout handling. - [ ] Code [Luis]: Add `AsyncJob` model and `async_jobs` table (plan_id, phase, status, payload_json, created_at, started_at, finished_at). - [ ] Code [Luis]: Add `AsyncJobStatus` enum and enforce valid transitions (queued -> running -> succeeded/failed/cancelled). @@ -3797,8 +3973,16 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/async_execution_bench.py` for worker scheduling overhead. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(async): add async command execution and workers"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m6-async-infra` to `master` with description "Add async command execution, workers, and tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m6-async-infra` - [ ] **COMMIT (Owner: Luis | Group: 10A.retry | Branch: feature/m6-async-infra) - Commit message: "feat(async): wire retry policies into services"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m6-async-infra` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Integrate retry/circuit breaker policies into service layer operations. - [ ] Code [Luis]: Add retry policy configuration keys (max_attempts, base_delay, max_delay, jitter) to settings. - [ ] Code [Luis]: Ensure retries are only applied to idempotent operations (repository reads, validation calls) and never to applies. @@ -3814,18 +3998,18 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/retry_policy_bench.py` for retry overhead. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(async): wire retry policies into services"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m6-async-infra` to `master` with description "Wire retry/circuit breaker policies into services with tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m6-async-infra` **Parallel Group 10B: Selective Quality Review [Brent]** -- [ ] Git [Brent]: `git checkout master` -- [ ] Git [Brent]: `git pull origin master` -- [ ] Git [Brent]: `git checkout -b feature/m6-review-playbook` -- [ ] Git [Brent]: `git push -u origin feature/m6-review-playbook` -- [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Brent]: Open PR from `feature/m6-review-playbook` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Brent]: `git branch -d feature/m6-review-playbook` -- [ ] Git [Brent]: `git push origin --delete feature/m6-review-playbook` - [ ] **COMMIT (Owner: Brent | Group: 10B.review | Branch: feature/m6-review-playbook) - Commit message: "docs(qa): add review playbook and priority matrix"** + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git pull origin master` + - [ ] Git [Brent]: `git checkout -b feature/m6-review-playbook` + - [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Docs [Brent]: Create `docs/development/review_playbook.md` with focus areas and skip rules. - [ ] Docs [Brent]: Add priority matrix and review SLA guidance. - [ ] Docs [Brent]: Add checklist templates for architecture review, CLI review, and DB migration review. @@ -3838,18 +4022,18 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Brent]: Add `asv/benchmarks/docs_build_bench.py` for docs build baseline. - [ ] Quality [Brent]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Brent]: `git add .` (only after coverage check passes) - [ ] Commit [Brent]: `git commit -m "docs(qa): add review playbook and priority matrix"`. + - [ ] Forgejo PR [Brent]: Open PR from `feature/m6-review-playbook` to `master` with description "Add review playbook, priority matrix, and tests.". + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git branch -d feature/m6-review-playbook` **Parallel Group 10C: Validation Testing Support [Brent + Luis]** -- [ ] Git [Brent]: `git checkout master` -- [ ] Git [Brent]: `git pull origin master` -- [ ] Git [Brent]: `git checkout -b feature/m6-validation-edge` -- [ ] Git [Brent]: `git push -u origin feature/m6-validation-edge` -- [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Brent]: Open PR from `feature/m6-validation-edge` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Brent]: `git branch -d feature/m6-validation-edge` -- [ ] Git [Brent]: `git push origin --delete feature/m6-validation-edge` - [ ] **COMMIT (Owner: Brent | Group: 10C.edge | Branch: feature/m6-validation-edge) - Commit message: "test(validation): add edge case suites"** + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git pull origin master` + - [ ] Git [Brent]: `git checkout -b feature/m6-validation-edge` + - [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Brent]: Add shared edge-case fixtures under `features/fixtures/validation/`. - [ ] Code [Brent]: Add fixtures for malformed tool outputs, missing resources, and validation timeouts. - [ ] Code [Brent]: Add fixtures for wrapped validation transforms that return invalid schema. @@ -3860,16 +4044,16 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Brent]: Add `asv/benchmarks/validation_edge_bench.py` for edge-case runtime. - [ ] Quality [Brent]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Brent]: `git add .` (only after coverage check passes) - [ ] Commit [Brent]: `git commit -m "test(validation): add edge case suites"`. -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m6-validation-semantic` -- [ ] Git [Luis]: `git push -u origin feature/m6-validation-semantic` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m6-validation-semantic` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m6-validation-semantic` -- [ ] Git [Luis]: `git push origin --delete feature/m6-validation-semantic` + - [ ] Forgejo PR [Brent]: Open PR from `feature/m6-validation-edge` to `master` with description "Add validation edge-case suites and fixtures.". + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git branch -d feature/m6-validation-edge` - [ ] **COMMIT (Owner: Luis | Group: 10C.semantic | Branch: feature/m6-validation-semantic) - Commit message: "test(validation): add semantic validation suites"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m6-validation-semantic` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Add semantic validation fixtures and error-pattern samples. - [ ] Code [Luis]: Add fixtures for language-porting mismatches and dependency graph violations. - [ ] Code [Luis]: Add fixtures for API surface changes (renamed functions, missing symbols, incompatible types). @@ -3880,16 +4064,16 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/semantic_validation_suite_bench.py` for suite runtime. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "test(validation): add semantic validation suites"`. -- [ ] Git [Brent]: `git checkout master` -- [ ] Git [Brent]: `git pull origin master` -- [ ] Git [Brent]: `git checkout -b feature/m6-perf-scale` -- [ ] Git [Brent]: `git push -u origin feature/m6-perf-scale` -- [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Brent]: Open PR from `feature/m6-perf-scale` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Brent]: `git branch -d feature/m6-perf-scale` -- [ ] Git [Brent]: `git push origin --delete feature/m6-perf-scale` + - [ ] Forgejo PR [Luis]: Open PR from `feature/m6-validation-semantic` to `master` with description "Add semantic validation test suites and fixtures.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m6-validation-semantic` - [ ] **COMMIT (Owner: Brent | Group: 10C.performance | Branch: feature/m6-perf-scale) - Commit message: "test(perf): add scale test fixtures"** + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git pull origin master` + - [ ] Git [Brent]: `git checkout -b feature/m6-perf-scale` + - [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Brent]: Add scale fixtures for 1K/5K/10K file repos in `features/fixtures/scale/`. - [ ] Code [Brent]: Add scriptless fixture generator instructions (documented, no helper scripts). - [ ] Code [Brent]: Add baseline thresholds for indexing and decomposition runtime in a documented matrix. @@ -3900,7 +4084,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Brent]: Add `asv/benchmarks/scale_fixture_bench.py` for baseline performance. - [ ] Quality [Brent]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Brent]: `git add .` (only after coverage check passes) - [ ] Commit [Brent]: `git commit -m "test(perf): add scale test fixtures"`. + - [ ] Forgejo PR [Brent]: Open PR from `feature/m6-perf-scale` to `master` with description "Add scale test fixtures and performance baselines.". + - [ ] Git [Brent]: `git checkout master` + - [ ] Git [Brent]: `git branch -d feature/m6-perf-scale` --- @@ -3911,15 +4099,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is **Note**: Security tasks focus on runtime protections; quality gates are handled in Section 0. **Parallel Group SEC1: Remove eval() usage [Luis]** -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m4-security-eval` -- [ ] Git [Luis]: `git push -u origin feature/m4-security-eval` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m4-security-eval` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m4-security-eval` -- [ ] Git [Luis]: `git push origin --delete feature/m4-security-eval` - [ ] **COMMIT (Owner: Luis | Group: SEC1.eval | Branch: feature/m4-security-eval) - Commit message: "fix(security): remove eval-based config parsing"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m4-security-eval` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [X] Code [Luis]: Audit and remove all `eval`/`exec`/`compile` usage from production config paths. - [ ] Code [Luis]: Replace any dynamic expression parsing with YAML/JSON parsing and explicit schema validation. - [ ] Code [Luis]: Add a hard error if config files contain inline Python or templating directives. @@ -3930,18 +4114,18 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/security_eval_bench.py` for config parsing baseline. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. (Code review by Brent still pending) + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "fix(security): remove eval-based config parsing"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-security-eval` to `master` with description "Remove eval-based config parsing and add security checks.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m4-security-eval` **Parallel Group SEC2: Template Injection Prevention [Luis]** -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m4-security-template` -- [ ] Git [Luis]: `git push -u origin feature/m4-security-template` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m4-security-template` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m4-security-template` -- [ ] Git [Luis]: `git push origin --delete feature/m4-security-template` - [ ] **COMMIT (Owner: Luis | Group: SEC2.template | Branch: feature/m4-security-template) - Commit message: "fix(security): harden template rendering"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m4-security-template` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Replace unsafe template usage with a sandboxed renderer and strict token set. - [ ] Code [Luis]: Deny attribute access, function calls, and filters; allow only `{var}` substitution with a fixed allowlist. - [ ] Code [Luis]: Add max template length + max render output size checks with explicit errors. @@ -3953,18 +4137,18 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/security_template_bench.py` for render baseline. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "fix(security): harden template rendering"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-security-template` to `master` with description "Harden template rendering and add tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m4-security-template` **Parallel Group SEC3: Exception Handling Audit [Luis]** -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m4-security-exceptions` -- [ ] Git [Luis]: `git push -u origin feature/m4-security-exceptions` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m4-security-exceptions` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m4-security-exceptions` -- [ ] Git [Luis]: `git push origin --delete feature/m4-security-exceptions` - [ ] **COMMIT (Owner: Luis | Group: SEC3.exceptions | Branch: feature/m4-security-exceptions) - Commit message: "fix(security): enforce explicit exception handling"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m4-security-exceptions` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Replace silent exception handling with explicit errors and context propagation. - [ ] Code [Luis]: Add structured error types for config, provider, and file I/O failures and include plan_id/project_name in error details. - [ ] Code [Luis]: Ensure unexpected exceptions are wrapped in `CleverAgentsError` with a safe, user-facing message. @@ -3976,18 +4160,18 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/security_exception_bench.py` for error path overhead baseline. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "fix(security): enforce explicit exception handling"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-security-exceptions` to `master` with description "Enforce explicit exception handling and error mapping with tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m4-security-exceptions` **Parallel Group SEC4: Async Lifecycle Correctness [Luis]** -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m4-security-async-cleanup` -- [ ] Git [Luis]: `git push -u origin feature/m4-security-async-cleanup` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m4-security-async-cleanup` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m4-security-async-cleanup` -- [ ] Git [Luis]: `git push origin --delete feature/m4-security-async-cleanup` - [ ] **COMMIT (Owner: Luis | Group: SEC4.async | Branch: feature/m4-security-async-cleanup) - Commit message: "fix(security): close async resources and leaks"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m4-security-async-cleanup` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Close async resources, checkpoint files, and subscription leaks with retention policies. - [ ] Code [Luis]: Add graceful cancellation handling to ensure in-flight tasks are awaited and cleaned up. - [ ] Code [Luis]: Add a finalizer hook in async services that logs any leaked resources by name. @@ -3999,18 +4183,18 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/security_async_cleanup_bench.py` for cleanup overhead baseline. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "fix(security): close async resources and leaks"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-security-async-cleanup` to `master` with description "Add async lifecycle cleanup and leak prevention with tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m4-security-async-cleanup` **Parallel Group SEC5: Secrets Management [Hamza]** -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m4-security-secrets` -- [ ] Git [Hamza]: `git push -u origin feature/m4-security-secrets` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-security-secrets` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m4-security-secrets` -- [ ] Git [Hamza]: `git push origin --delete feature/m4-security-secrets` - [ ] **COMMIT (Owner: Hamza | Group: SEC5.secrets | Branch: feature/m4-security-secrets) - Commit message: "feat(security): add secrets masking and validation"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m4-security-secrets` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Mask credentials in logs, validate required keys, and block secret leakage in outputs. - [ ] Code [Hamza]: Add a centralized redaction utility (token patterns + config keys) and integrate into CLI output formatting. - [ ] Code [Hamza]: Add `--show-secrets` guard flag (default off) for diagnostics that would otherwise print masked fields. @@ -4023,18 +4207,18 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/security_secrets_bench.py` for masking overhead baseline. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) - [ ] Commit [Hamza]: `git commit -m "feat(security): add secrets masking and validation"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-security-secrets` to `master` with description "Add secrets masking/validation and tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m4-security-secrets` **Parallel Group SEC6: Read-Only Enforcement [Luis]** -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m4-security-readonly` -- [ ] Git [Luis]: `git push -u origin feature/m4-security-readonly` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m4-security-readonly` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m4-security-readonly` -- [ ] Git [Luis]: `git push origin --delete feature/m4-security-readonly` - [ ] **COMMIT (Owner: Luis | Group: SEC6.readonly | Branch: feature/m4-security-readonly) - Commit message: "feat(security): enforce read-only actions"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m4-security-readonly` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Validate read-only actions only use read-only skills at execution time. - [ ] Code [Luis]: Block write-capable tools in ToolRuntime when plan/action is read-only and include tool name in error. - [ ] Code [Luis]: Add read-only enforcement to SkillContext and ChangeSet builder to prevent write artifacts. @@ -4046,19 +4230,19 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/security_readonly_bench.py` for enforcement overhead baseline. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(security): enforce read-only actions"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-security-readonly` to `master` with description "Enforce read-only actions and tool gating with tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m4-security-readonly` - [ ] Note: Safety profile enforcement is deferred; see Section 18 POST.safety. **Parallel Group SEC7: Audit Logging [Hamza]** -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m4-security-audit` -- [ ] Git [Hamza]: `git push -u origin feature/m4-security-audit` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-security-audit` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m4-security-audit` -- [ ] Git [Hamza]: `git push origin --delete feature/m4-security-audit` - [ ] **COMMIT (Owner: Hamza | Group: SEC7.audit | Branch: feature/m4-security-audit) - Commit message: "feat(security): add audit logging for apply"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m4-security-audit` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Add audit log model, migration, and `agents audit list` CLI command. - [ ] Code [Hamza]: Record apply start/end events with plan_id, actor, resource list, and changeset hash. - [ ] Code [Hamza]: Add CLI filters for `--plan`, `--project`, and `--since` to limit audit output. @@ -4071,22 +4255,22 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/security_audit_bench.py` for log write overhead baseline. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) - [ ] Commit [Hamza]: `git commit -m "feat(security): add audit logging for apply"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-security-audit` to `master` with description "Add audit logging for apply with tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m4-security-audit` ### Section 12: Provider Fixes & Runtime Tweaks [WORKSTREAM G - Hamza] **Target: Days 8-12** **Parallel Group PROV1: Provider Fixes [Luis]** -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m4-provider-fixes` -- [ ] Git [Luis]: `git push -u origin feature/m4-provider-fixes` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m4-provider-fixes` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m4-provider-fixes` -- [ ] Git [Luis]: `git push origin --delete feature/m4-provider-fixes` - [ ] **COMMIT (Owner: Luis | Group: PROV1.fixes | Branch: feature/m4-provider-fixes) - Commit message: "fix(provider): remove FakeListLLM defaults"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m4-provider-fixes` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Remove FakeListLLM fallback, fix auto-debug provider usage, and implement provider auto-detection. - [ ] Code [Luis]: Update settings validation to fail fast when no providers are configured and no mock flag is set. - [ ] Code [Luis]: Add explicit `core.mock_providers` flag and block accidental use in non-test mode. @@ -4100,18 +4284,18 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/provider_selection_bench.py` for provider resolution baseline. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "fix(provider): remove FakeListLLM defaults"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-provider-fixes` to `master` with description "Fix provider defaults and enforce configuration validation.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m4-provider-fixes` **Parallel Group PROV2: Cost Controls & Fallback [Luis]** -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m4-provider-costs` -- [ ] Git [Luis]: `git push -u origin feature/m4-provider-costs` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m4-provider-costs` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m4-provider-costs` -- [ ] Git [Luis]: `git push origin --delete feature/m4-provider-costs` - [ ] **COMMIT (Owner: Luis | Group: PROV2.costs | Branch: feature/m4-provider-costs) - Commit message: "feat(provider): add cost controls and fallback"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m4-provider-costs` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Track tokens/costs, enforce budgets, rate limits, and provider fallback order. - [ ] Code [Luis]: Add cost tracking fields to plan execution metadata and surface in `plan status`. - [ ] Code [Luis]: Add config keys for `budget_per_plan`, `budget_per_day`, and `fallback_providers` with validation. @@ -4125,22 +4309,22 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/cost_controls_bench.py` for cost check overhead. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(provider): add cost controls and fallback"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-provider-costs` to `master` with description "Add cost controls, budgets, and provider fallback with tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m4-provider-costs` --- ### Section 13: Additional CLI Commands & UX [Days 10-14] **Parallel Group CLI0: Core System Commands [Hamza]** -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m4-cli-core` -- [ ] Git [Hamza]: `git push -u origin feature/m4-cli-core` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-cli-core` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m4-cli-core` -- [ ] Git [Hamza]: `git push origin --delete feature/m4-cli-core` - [ ] **COMMIT (Owner: Hamza | Group: CLI0.core | Branch: feature/m4-cli-core) - Commit message: "feat(cli): add version/info/diagnostics"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m4-cli-core` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Implement `version`, `info`, and `diagnostics` commands with rich/plain/json/yaml output parity. - [ ] Code [Hamza]: Add diagnostics checks for config file, database, providers, and filesystem permissions per spec. - [ ] Code [Hamza]: Include build metadata in `version` (semver, git sha, build date) and expose in JSON/YAML outputs. @@ -4154,22 +4338,22 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/cli_core_bench.py` for command runtime baseline. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) - [ ] Commit [Hamza]: `git commit -m "feat(cli): add version/info/diagnostics"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-cli-core` to `master` with description "Add core CLI system commands and diagnostics with tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m4-cli-core` --- ### Section 14: Concurrency & Cleanup [Days 12-14] **Parallel Group CONC1: Plan Locking [Luis]** -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m4-concurrency-locks` -- [ ] Git [Luis]: `git push -u origin feature/m4-concurrency-locks` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m4-concurrency-locks` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m4-concurrency-locks` -- [ ] Git [Luis]: `git push origin --delete feature/m4-concurrency-locks` - [ ] **COMMIT (Owner: Luis | Group: CONC1.lock | Branch: feature/m4-concurrency-locks) - Commit message: "feat(concurrency): add plan and project locks"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m4-concurrency-locks` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Implement plan-level and project-level locks with timeouts. - [ ] Code [Luis]: Add `locks` table with owner_id, resource_type, resource_id, acquired_at, expires_at. - [ ] Code [Luis]: Ensure locks are enforced in PlanLifecycleService transitions and SubplanService scheduling. @@ -4184,18 +4368,18 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/concurrency_lock_bench.py` for lock overhead baseline. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(concurrency): add plan and project locks"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-concurrency-locks` to `master` with description "Add plan/project locking and diagnostics with tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m4-concurrency-locks` **Parallel Group CONC2: Resumable Execution [Luis]** -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m4-concurrency-resume` -- [ ] Git [Luis]: `git push -u origin feature/m4-concurrency-resume` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m4-concurrency-resume` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m4-concurrency-resume` -- [ ] Git [Luis]: `git push origin --delete feature/m4-concurrency-resume` - [ ] **COMMIT (Owner: Luis | Group: CONC2.resume | Branch: feature/m4-concurrency-resume) - Commit message: "feat(concurrency): add plan resume"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m4-concurrency-resume` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Persist step-level progress and implement `plan resume` with graceful shutdown handling. - [ ] Code [Luis]: Add resume checkpoints tied to decision IDs and sandbox checkpoints. - [ ] Code [Luis]: Validate resume eligibility (non-terminal plans only) and emit clear error for invalid states. @@ -4209,18 +4393,18 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/plan_resume_bench.py` for resume overhead baseline. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(concurrency): add plan resume"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-concurrency-resume` to `master` with description "Add plan resume workflow and tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m4-concurrency-resume` **Parallel Group CONC3: Garbage Collection [Hamza]** -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m4-concurrency-cleanup` -- [ ] Git [Hamza]: `git push -u origin feature/m4-concurrency-cleanup` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-concurrency-cleanup` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m4-concurrency-cleanup` -- [ ] Git [Hamza]: `git push origin --delete feature/m4-concurrency-cleanup` - [ ] **COMMIT (Owner: Hamza | Group: CONC3.gc | Branch: feature/m4-concurrency-cleanup) - Commit message: "feat(ops): add cleanup commands"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m4-concurrency-cleanup` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Add cleanup for sandboxes, checkpoints, and stale sessions with CLI commands. - [ ] Code [Hamza]: Add retention policy settings for sandbox age, checkpoint count, and session inactivity. - [ ] Code [Hamza]: Add `cleanup --dry-run` output (counts + paths) and `--all` override for full purge. @@ -4234,7 +4418,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/cleanup_bench.py` for cleanup overhead baseline. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) - [ ] Commit [Hamza]: `git commit -m "feat(ops): add cleanup commands"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-concurrency-cleanup` to `master` with description "Add cleanup commands and retention policies with tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m4-concurrency-cleanup` --- @@ -4243,15 +4431,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is **Target: Begin scaffolding by Day 25; full implementation after M6 (local mode only)** **Parallel Group ACMS1: UKO Ontology Scaffold [Hamza]** -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m6-acms-uko-schema` -- [ ] Git [Hamza]: `git push -u origin feature/m6-acms-uko-schema` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-acms-uko-schema` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m6-acms-uko-schema` -- [ ] Git [Hamza]: `git push origin --delete feature/m6-acms-uko-schema` - [ ] **COMMIT (Owner: Hamza | Group: ACMS1.uko | Branch: feature/m6-acms-uko-schema) - 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. @@ -4266,18 +4450,18 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/uko_load_bench.py` for load throughput. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) - [ ] Commit [Hamza]: `git commit -m "feat(uko): add UKO ontology scaffolding"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-acms-uko-schema` to `master` with description "Add UKO ontology scaffolding and loaders with tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m6-acms-uko-schema` **Parallel Group ACMS2: Context Request Protocol [Jeff]** (depends on ACMS1 + CTX1) -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m6-acms-crp-models` -- [ ] Git [Jeff]: `git push -u origin feature/m6-acms-crp-models` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-acms-crp-models` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m6-acms-crp-models` -- [ ] Git [Jeff]: `git push origin --delete feature/m6-acms-crp-models` - [ ] **COMMIT (Owner: Jeff | Group: ACMS2.crp | Branch: feature/m6-acms-crp-models) - 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. @@ -4291,18 +4475,18 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/crp_model_bench.py` for validation throughput. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(acms): add context request protocol models"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-acms-crp-models` to `master` with description "Add context request protocol models and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m6-acms-crp-models` **Parallel Group ACMS3: Context Strategies & Registry [Hamza]** (depends on CTX1/CTX2) -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m6-acms-strategy-registry` -- [ ] Git [Hamza]: `git push -u origin feature/m6-acms-strategy-registry` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-acms-strategy-registry` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m6-acms-strategy-registry` -- [ ] Git [Hamza]: `git push origin --delete feature/m6-acms-strategy-registry` - [ ] **COMMIT (Owner: Hamza | Group: ACMS3.strategy | Branch: feature/m6-acms-strategy-registry) - 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. @@ -4316,18 +4500,18 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/context_strategy_bench.py` for registry lookup. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) - [ ] Commit [Hamza]: `git commit -m "feat(acms): add context strategy registry"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-acms-strategy-registry` to `master` with description "Add context strategy registry and tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m6-acms-strategy-registry` **Parallel Group ACMS4: Strategy Coordinator & Fusion Engine [Jeff]** (depends on ACMS2/ACMS3) -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m6-acms-fusion-engine` -- [ ] Git [Jeff]: `git push -u origin feature/m6-acms-fusion-engine` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-acms-fusion-engine` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m6-acms-fusion-engine` -- [ ] Git [Jeff]: `git push origin --delete feature/m6-acms-fusion-engine` - [ ] **COMMIT (Owner: Jeff | Group: ACMS4.fusion | Branch: feature/m6-acms-fusion-engine) - 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. @@ -4341,18 +4525,18 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/acms_fusion_bench.py` for fusion runtime. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(acms): add strategy coordinator and fusion engine"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-acms-fusion-engine` to `master` with description "Add strategy coordinator and fusion engine with tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m6-acms-fusion-engine` **Parallel Group ACMS5: Scoped Backend Views [Hamza]** (depends on B2.project + CTX1) -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m6-acms-scoped-view` -- [ ] Git [Hamza]: `git push -u origin feature/m6-acms-scoped-view` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-acms-scoped-view` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m6-acms-scoped-view` -- [ ] Git [Hamza]: `git push origin --delete feature/m6-acms-scoped-view` - [ ] **COMMIT (Owner: Hamza | Group: ACMS5.scoped | Branch: feature/m6-acms-scoped-view) - 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. @@ -4366,18 +4550,18 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/scoped_view_bench.py` for filter overhead. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) - [ ] Commit [Hamza]: `git commit -m "feat(acms): add scoped backend view filtering"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-acms-scoped-view` to `master` with description "Add scoped backend view filtering with tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m6-acms-scoped-view` **Parallel Group ACMS6: Skeleton Compression [Jeff]** (depends on ACMS4 + G4 context tiers) -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m6-acms-skeleton-compress` -- [ ] Git [Jeff]: `git push -u origin feature/m6-acms-skeleton-compress` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-acms-skeleton-compress` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m6-acms-skeleton-compress` -- [ ] Git [Jeff]: `git push origin --delete feature/m6-acms-skeleton-compress` - [ ] **COMMIT (Owner: Jeff | Group: ACMS6.skeleton | Branch: feature/m6-acms-skeleton-compress) - 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. @@ -4391,22 +4575,22 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/skeleton_compressor_bench.py` for compression overhead. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(acms): add skeleton compressor"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-acms-skeleton-compress` to `master` with description "Add skeleton compressor and tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m6-acms-skeleton-compress` --- ### Section 16: Context Indexing [Days 15-17] **Parallel Group CTX1: Repository Indexing [Hamza]** -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m4-context-indexing` -- [ ] Git [Hamza]: `git push -u origin feature/m4-context-indexing` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-context-indexing` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m4-context-indexing` -- [ ] Git [Hamza]: `git push origin --delete feature/m4-context-indexing` - [ ] **COMMIT (Owner: Hamza | Group: CTX1.index | Branch: feature/m4-context-indexing) - 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. @@ -4422,18 +4606,18 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/context_indexing_bench.py` for indexing throughput baseline. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) - [ ] Commit [Hamza]: `git commit -m "feat(context): add repo indexing service"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-context-indexing` to `master` with description "Add repository indexing service and tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m4-context-indexing` **Parallel Group CTX2: Embedding Index [Hamza]** -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m4-context-embedding` -- [ ] Git [Hamza]: `git push -u origin feature/m4-context-embedding` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-context-embedding` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m4-context-embedding` -- [ ] Git [Hamza]: `git push origin --delete feature/m4-context-embedding` - [ ] **COMMIT (Owner: Hamza | Group: CTX2.embedding | Branch: feature/m4-context-embedding) - 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. @@ -4448,7 +4632,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/embedding_search_bench.py` for search runtime baseline. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) - [ ] Commit [Hamza]: `git commit -m "feat(context): add optional embedding search"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-context-embedding` to `master` with description "Add optional embedding search and tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m4-context-embedding` --- @@ -4460,19 +4648,15 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is **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 [Rui]**: CLI `skill tools/refresh` and output parity + **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. -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m4-skill-registry-core` -- [ ] Git [Jeff]: `git push -u origin feature/m4-skill-registry-core` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-skill-registry-core` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m4-skill-registry-core` -- [ ] Git [Jeff]: `git push origin --delete feature/m4-skill-registry-core` - [ ] **COMMIT (Owner: Jeff | Group: SK1.core | Branch: feature/m4-skill-registry-core) - 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. @@ -4487,17 +4671,17 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/skill_flatten_bench.py` for flattening throughput. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(skill): add registry flattening and capability summaries"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-skill-registry-core` to `master` with description "Add skill registry flattening and capability summaries.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m4-skill-registry-core` -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m4-skill-registry-db` -- [ ] Git [Luis]: `git push -u origin feature/m4-skill-registry-db` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m4-skill-registry-db` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m4-skill-registry-db` -- [ ] Git [Luis]: `git push origin --delete feature/m4-skill-registry-db` - [ ] **COMMIT (Owner: Luis | Group: SK2.persistence | Branch: feature/m4-skill-registry-db) - 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. @@ -4510,40 +4694,40 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/skill_registry_persist_bench.py` for persistence overhead. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(skill): persist flattened tool sets"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-skill-registry-db` to `master` with description "Persist flattened skill tool sets and summaries.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m4-skill-registry-db` -- [ ] Git [Rui]: `git checkout master` -- [ ] Git [Rui]: `git pull origin master` -- [ ] Git [Rui]: `git checkout -b feature/m4-skill-registry-cli` -- [ ] Git [Rui]: `git push -u origin feature/m4-skill-registry-cli` -- [ ] Git [Rui]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Rui]: Open PR from `feature/m4-skill-registry-cli` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Rui]: `git branch -d feature/m4-skill-registry-cli` -- [ ] Git [Rui]: `git push origin --delete feature/m4-skill-registry-cli` -- [ ] **COMMIT (Owner: Rui | Group: SK3.cli | Branch: feature/m4-skill-registry-cli) - Commit message: "feat(cli): add skill tools and refresh commands"** - - [ ] Code [Rui]: Add `agents skill tools ` to show flattened tool list and capability summary. - - [ ] Code [Rui]: Add `agents skill refresh |--all` to recompute flattening and sync MCP-backed skills. - - [ ] Code [Rui]: Update `skill list/show` output with includes, tool counts, and capability summary fields. - - [ ] Code [Rui]: Add `--format json/yaml` output schema for tools/refresh output. - - [ ] Code [Rui]: Add CLI errors for refresh when skill not found or MCP sync fails. - - [ ] Docs [Rui]: Update CLI reference with skill tools/refresh examples and output columns. - - [ ] Docs [Rui]: Document refresh side effects and caching behavior. - - [ ] Tests (Behave) [Rui]: Add `features/skill_cli.feature` scenarios for tools/refresh and list/show output. - - [ ] Tests (Robot) [Rui]: Add `robot/skill_cli.robot` for CLI smoke tests. - - [ ] Tests (ASV) [Rui]: Add `asv/benchmarks/skill_cli_bench.py` for CLI overhead baseline. - - [ ] Quality [Rui]: Run `nox` (all default sessions, including benchmark). - - [ ] Quality [Rui]: 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 [Rui]: `git commit -m "feat(cli): add skill tools and refresh commands"`. +- [ ] **COMMIT (Owner: Aditya | Group: SK3.cli | Branch: feature/m4-skill-registry-cli) - 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 `asv/benchmarks/skill_cli_bench.py` for CLI overhead baseline. + - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark). + - [ ] 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%. + - [ ] Git [Aditya]: `git add .` (only after coverage check passes) + - [ ] Commit [Aditya]: `git commit -m "feat(cli): add skill tools and refresh commands"`. + - [ ] Forgejo PR [Aditya]: Open PR from `feature/m4-skill-registry-cli` to `master` with description "Add skill tools/refresh CLI commands and tests.". + - [ ] Git [Aditya]: `git checkout master` + - [ ] Git [Aditya]: `git branch -d feature/m4-skill-registry-cli` -- [ ] Git [Aditya]: `git checkout master` -- [ ] Git [Aditya]: `git pull origin master` -- [ ] Git [Aditya]: `git checkout -b feature/m4-skill-registry-refresh` -- [ ] Git [Aditya]: `git push -u origin feature/m4-skill-registry-refresh` -- [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Aditya]: Open PR from `feature/m4-skill-registry-refresh` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Aditya]: `git branch -d feature/m4-skill-registry-refresh` -- [ ] Git [Aditya]: `git push origin --delete feature/m4-skill-registry-refresh` - [ ] **COMMIT (Owner: Aditya | Group: SK4.refresh | Branch: feature/m4-skill-registry-refresh) - 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. @@ -4556,7 +4740,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Tests (ASV) [Aditya]: Add `asv/benchmarks/skill_refresh_bench.py` for refresh overhead. - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Aditya]: `git add .` (only after coverage check passes) - [ ] Commit [Aditya]: `git commit -m "feat(skill): add MCP refresh hooks"`. + - [ ] Forgejo PR [Aditya]: Open PR from `feature/m4-skill-registry-refresh` to `master` with description "Add MCP refresh hooks and registry updates.". + - [ ] Git [Aditya]: `git checkout master` + - [ ] Git [Aditya]: `git branch -d feature/m4-skill-registry-refresh` --- @@ -4564,15 +4752,88 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is Deferred items remain planned but are not part of the 30-day MVP scope. -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m7-post-resource-equivalence` -- [ ] Git [Hamza]: `git push -u origin feature/m7-post-resource-equivalence` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m7-post-resource-equivalence` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m7-post-resource-equivalence` -- [ ] Git [Hamza]: `git push origin --delete feature/m7-post-resource-equivalence` +- [ ] **COMMIT (Owner: Hamza | Group: POST.resource-types.physical | Branch: feature/post-resource-types-physical) - Commit message: "feat(resource): add deferred physical resource types"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/post-resource-types-physical` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Hamza]: Add built-in physical resource type YAML configs for git object taxonomy: `git`, `git-remote`, `git-branch`, `git-tag`, `git-commit`, `git-tree`, `git-tree-entry`, `git-stash`, `git-submodule`. + - [ ] Code [Hamza]: Add filesystem link types: `fs-symlink`, `fs-hardlink` with correct parent/child constraints. + - [ ] Code [Hamza]: Extend auto-discovery rules for git object graph (bounded depth, filtered by type) and fs link detection. + - [ ] Docs [Hamza]: Update `docs/reference/resource_types_builtin.md` with deferred physical type flags, parent/child rules, and discovery notes. + - [ ] Tests (Behave) [Hamza]: Add scenarios ensuring deferred physical types register and validate parent/child constraints. + - [ ] Tests (Robot) [Hamza]: Add Robot test that lists resource types and asserts the git object taxonomy types. + - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/resource_type_deferred_physical_bench.py` for registry load overhead. + - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) + - [ ] Git [Hamza]: `git commit -m "feat(resource): add deferred physical resource types"` (only after coverage check passes) + - [ ] Forgejo PR [Hamza]: Open PR from `feature/post-resource-types-physical` to `master` with description "Add deferred physical resource types (git object taxonomy + fs link types) with discovery rules, docs, and tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/post-resource-types-physical` + - [ ] 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%. + +- [ ] **COMMIT (Owner: Hamza | Group: POST.resource-types.virtual | Branch: feature/post-resource-types-virtual) - Commit message: "feat(resource): add deferred virtual resource types"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/post-resource-types-virtual` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Hamza]: Add built-in virtual resource types: `remote`, `submodule`, `symlink` with equivalence metadata rules. + - [ ] Code [Hamza]: Update registry bootstrap to include deferred virtual types and hide them from `resource add` scaffolding. + - [ ] Docs [Hamza]: Update `docs/reference/resource_types_builtin.md` with deferred virtual type descriptions and equivalence notes. + - [ ] Tests (Behave) [Hamza]: Add scenarios ensuring deferred virtual types exist and remain non-user-addable. + - [ ] Tests (Robot) [Hamza]: Add Robot test that lists resource types and asserts deferred virtual types. + - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/resource_type_deferred_virtual_bench.py` for registry load overhead. + - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) + - [ ] Git [Hamza]: `git commit -m "feat(resource): add deferred virtual resource types"` (only after coverage check passes) + - [ ] Forgejo PR [Hamza]: Open PR from `feature/post-resource-types-virtual` to `master` with description "Add deferred virtual resource types (remote/submodule/symlink) with docs and tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/post-resource-types-virtual` + - [ ] 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%, if not repeat this task as many times as is needed until coverage reaches >=97%. + +- [ ] **COMMIT (Owner: Luis | Group: POST.safety-profile | Branch: feature/post-safety-profile) - Commit message: "feat(security): add safety profile model and enforcement stubs"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/post-safety-profile` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Code [Luis]: Add `SafetyProfile` model with allowed skill categories, sandbox/checkpoint requirements, human-approval flag, and max cost/retry limits per spec. + - [ ] Code [Luis]: Add `safety_profile` field to Action model and persistence mapping (no legacy compatibility). + - [ ] Code [Luis]: Add plan-level safety resolution stub (plan > action > project > global) that returns NotImplementedError for enforcement in local mode. + - [ ] Docs [Luis]: Document safety profile schema, defaults, and stub enforcement behavior in `docs/reference/safety_profile.md`. + - [ ] Tests (Behave) [Luis]: Add model validation scenarios for safety profile field parsing and constraint validation. + - [ ] Tests (Robot) [Luis]: Add Robot smoke test that loads a safety profile from YAML and prints serialized output. + - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/safety_profile_model_bench.py` for validation overhead. + - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). + - [ ] 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%. + - [ ] Git [Luis]: `git add .` + - [ ] Git [Luis]: `git commit -m "feat(security): add safety profile model and enforcement stubs"` + - [ ] Forgejo PR [Luis]: Open PR from `feature/post-safety-profile` to `master` with description "Add SafetyProfile model + schema wiring with enforcement stubs for post-30 work.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/post-safety-profile` + +- [ ] **COMMIT (Owner: Rui | Group: POST.safety-profile-tests | Branch: feature/post-safety-profile-tests) - Commit message: "test(security): cover safety profile enforcement"** + - [ ] Git [Rui]: `git checkout master` + - [ ] Git [Rui]: `git pull origin master` + - [ ] Git [Rui]: `git checkout -b feature/post-safety-profile-tests` + - [ ] Git [Rui]: `git fetch origin && git merge origin/master` (run before final tests and before commit) + - [ ] Tests (Behave) [Rui]: Add scenarios for safety profile allow/deny rules and missing profile errors (stub enforcement expected). + - [ ] Tests (Behave) [Rui]: Add scenarios for cost/retry bounds validation on action creation. + - [ ] Tests (Robot) [Rui]: Add Robot test that verifies safety profile appears in `action show` output. + - [ ] Docs [Rui]: Add test fixture notes for safety profile YAML examples in `docs/development/testing.md`. + - [ ] Tests (ASV) [Rui]: Add `asv/benchmarks/safety_profile_tests_bench.py` for scenario runtime baseline. + - [ ] Quality [Rui]: Run `nox` (all default sessions, including benchmark). + - [ ] Quality [Rui]: 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%. + - [ ] Git [Rui]: `git add .` + - [ ] Git [Rui]: `git commit -m "test(security): cover safety profile enforcement"` + - [ ] Forgejo PR [Rui]: Open PR from `feature/post-safety-profile-tests` to `master` with description "Add Behave/Robot coverage for safety profile validation + stub enforcement.". + - [ ] Git [Rui]: `git checkout master` + - [ ] Git [Rui]: `git branch -d feature/post-safety-profile-tests` + - [ ] **COMMIT (Owner: Hamza | Group: POST.resource | Branch: feature/m7-post-resource-equivalence) - Commit message: "feat(resource): add virtual resource equivalence tracking"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m7-post-resource-equivalence` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Add `virtual_resource_links` table mapping virtual resource ULID to physical resource ULIDs with uniqueness constraints. - [ ] Code [Hamza]: Add `ResourceEquivalenceService` to create/merge virtual resources and update links on content divergence. - [ ] Code [Hamza]: Add helper to compute equivalence key (hash or name) for auto-linking during resource discovery. @@ -4587,17 +4848,17 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/virtual_resource_bench.py` for equivalence update overhead. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) - [ ] Commit [Hamza]: `git commit -m "feat(resource): add virtual resource equivalence tracking"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m7-post-resource-equivalence` to `master` with description "Add virtual resource equivalence tracking and tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m7-post-resource-equivalence` -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m7-post-server` -- [ ] Git [Luis]: `git push -u origin feature/m7-post-server` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m7-post-server` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m7-post-server` -- [ ] Git [Luis]: `git push origin --delete feature/m7-post-server` - [ ] **COMMIT (Owner: Luis | Group: POST.server | Branch: feature/m7-post-server) - Commit message: "feat(client): add server http client"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m7-post-server` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Add HTTP client with health check, version negotiation, and OpenAPI codegen integration. - [ ] Code [Luis]: Add config keys for server base URL, API token, and TLS verification; wire into Settings. - [ ] Code [Luis]: Map server error responses into domain errors with retry hints. @@ -4612,9 +4873,17 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/server_http_client_bench.py` for connection overhead baseline. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(client): add server http client"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m7-post-server` to `master` with description "Add server HTTP client with health checks and tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m7-post-server` - [ ] **COMMIT (Owner: Luis | Group: POST.server | Branch: feature/m7-post-server) - Commit message: "feat(client): add plan sync and remote execution"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m7-post-server` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Sync actions, request remote plan execution/apply/status, and reconcile remote plan IDs. - [ ] Code [Luis]: Add conflict resolution policy (local wins vs server wins) with explicit CLI errors on ambiguity. - [ ] Code [Luis]: Add plan sync scope flags (`--actions/--skills/--tools/--projects`) and default to minimal sync. @@ -4628,9 +4897,17 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/server_sync_bench.py` for sync throughput baseline. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(client): add plan sync and remote execution"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m7-post-server` to `master` with description "Add plan sync and remote execution with tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m7-post-server` - [ ] **COMMIT (Owner: Luis | Group: POST.server | Branch: feature/m7-post-server) - Commit message: "feat(client): add websocket updates"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m7-post-server` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Add WebSocket client for plan updates with reconnect/backoff policy. - [ ] Code [Luis]: Define event schema mapping for plan status/progress/log stream updates. - [ ] Code [Luis]: Add heartbeat/ping handling and resume from last event ID on reconnect. @@ -4644,9 +4921,17 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/server_ws_bench.py` for message handling baseline. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(client): add websocket updates"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m7-post-server` to `master` with description "Add WebSocket updates for server plan events.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m7-post-server` - [ ] **COMMIT (Owner: Hamza | Group: POST.server | Branch: feature/m7-post-server) - Commit message: "feat(client): add remote project support"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m7-post-server` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Add remote resource selection and server execution request wiring. - [ ] Code [Hamza]: Add project-name resolution rules for remote namespaces and server aliases. - [ ] Code [Hamza]: Add `agents project list --remote` and `plan use --remote` scaffolding (server-only). @@ -4660,17 +4945,17 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/server_remote_project_bench.py` for request overhead baseline. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) - [ ] Commit [Hamza]: `git commit -m "feat(client): add remote project support"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m7-post-server` to `master` with description "Add remote project support and CLI scaffolding.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m7-post-server` -- [ ] Git [Rui]: `git checkout master` -- [ ] Git [Rui]: `git pull origin master` -- [ ] Git [Rui]: `git checkout -b feature/m7-post-repl` -- [ ] Git [Rui]: `git push -u origin feature/m7-post-repl` -- [ ] Git [Rui]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Rui]: Open PR from `feature/m7-post-repl` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Rui]: `git branch -d feature/m7-post-repl` -- [ ] Git [Rui]: `git push origin --delete feature/m7-post-repl` - [ ] **COMMIT (Owner: Rui | Group: POST.repl | Branch: feature/m7-post-repl) - Commit message: "feat(cli): add interactive repl"** + - [ ] Git [Rui]: `git checkout master` + - [ ] Git [Rui]: `git pull origin master` + - [ ] Git [Rui]: `git checkout -b feature/m7-post-repl` + - [ ] Git [Rui]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Rui]: Implement `agents repl` command that dispatches to existing CLI commands with shared config handling. - [ ] Code [Rui]: Add history support with opt-out (`--no-history`) and default path `~/.cleveragents/history`. - [ ] Code [Rui]: Add tab-completion for top-level commands and last command repetition (`!!`). @@ -4684,17 +4969,17 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Tests (ASV) [Rui]: Add `asv/benchmarks/repl_bench.py` for REPL startup baseline. - [ ] Quality [Rui]: Run `nox` (all default sessions, including benchmark). - [ ] Quality [Rui]: 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%. + - [ ] Git [Rui]: `git add .` (only after coverage check passes) - [ ] Commit [Rui]: `git commit -m "feat(cli): add interactive repl"`. + - [ ] Forgejo PR [Rui]: Open PR from `feature/m7-post-repl` to `master` with description "Add interactive REPL with history and tests.". + - [ ] Git [Rui]: `git checkout master` + - [ ] Git [Rui]: `git branch -d feature/m7-post-repl` -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m7-post-auth` -- [ ] Git [Luis]: `git push -u origin feature/m7-post-auth` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m7-post-auth` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m7-post-auth` -- [ ] Git [Luis]: `git push origin --delete feature/m7-post-auth` - [ ] **COMMIT (Owner: Luis | Group: POST.auth | Branch: feature/m7-post-auth) - Commit message: "feat(cli): add auth and team commands"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m7-post-auth` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Add `agents auth login/logout/status` and `agents team list/use` commands with stubbed responses when server is disabled. - [ ] Code [Luis]: Add config keys for auth token storage, active team, and default namespace (client-only stubs). - [ ] Code [Luis]: Wire stubbed commands to `AuthClient` and `ServerClient` interfaces (raise NotImplementedError when no server). @@ -4708,17 +4993,17 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/auth_cli_bench.py` for auth command baseline. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(cli): add auth and team commands"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m7-post-auth` to `master` with description "Add auth and team CLI commands with stubs and tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m7-post-auth` -- [ ] Git [Jeff]: `git checkout master` -- [ ] Git [Jeff]: `git pull origin master` -- [ ] Git [Jeff]: `git checkout -b feature/m7-post-tui` -- [ ] Git [Jeff]: `git push -u origin feature/m7-post-tui` -- [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Jeff]: Open PR from `feature/m7-post-tui` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Jeff]: `git branch -d feature/m7-post-tui` -- [ ] Git [Jeff]: `git push origin --delete feature/m7-post-tui` - [ ] **COMMIT (Owner: Jeff | Group: POST.tui | Branch: feature/m7-post-tui) - Commit message: "feat(ui): add TUI/Web interface"** + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git pull origin master` + - [ ] Git [Jeff]: `git checkout -b feature/m7-post-tui` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Define UI data-provider interface (plans, sessions, validations, diffs, logs) backed by local services. - [ ] Code [Jeff]: Implement minimal TUI with plan list, plan detail, diff viewer, and validation summary panes. - [ ] Code [Jeff]: Add Web UI stub that serves the same data via local-only routes (read-only by default). @@ -4729,17 +5014,17 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Tests (ASV) [Jeff]: Add `asv/benchmarks/ui_render_bench.py` for UI render baseline. - [ ] Quality [Jeff]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Jeff]: `git add .` (only after coverage check passes) - [ ] Commit [Jeff]: `git commit -m "feat(ui): add TUI/Web interface"`. + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m7-post-tui` to `master` with description "Add TUI/Web UI stubs with tests.". + - [ ] Git [Jeff]: `git checkout master` + - [ ] Git [Jeff]: `git branch -d feature/m7-post-tui` -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m7-post-resource-db` -- [ ] Git [Hamza]: `git push -u origin feature/m7-post-resource-db` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m7-post-resource-db` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m7-post-resource-db` -- [ ] Git [Hamza]: `git push origin --delete feature/m7-post-resource-db` - [ ] **COMMIT (Owner: Hamza | Group: POST.dbresources | Branch: feature/m7-post-resource-db) - Commit message: "feat(resource): add database resources"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m7-post-resource-db` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Add database resource types (postgres, mysql, sqlite, duckdb) with connection args and auth handling. - [ ] Code [Hamza]: Implement sandbox strategy using transaction wrappers and read-only toggles. - [ ] Code [Hamza]: Add connection validation and safe error messaging (mask credentials in logs). @@ -4749,17 +5034,17 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/db_resource_bench.py` for resource registration baseline. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) - [ ] Commit [Hamza]: `git commit -m "feat(resource): add database resources"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m7-post-resource-db` to `master` with description "Add database resource types and tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m7-post-resource-db` -- [ ] Git [Hamza]: `git checkout master` -- [ ] Git [Hamza]: `git pull origin master` -- [ ] Git [Hamza]: `git checkout -b feature/m7-post-resource-cloud` -- [ ] Git [Hamza]: `git push -u origin feature/m7-post-resource-cloud` -- [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Hamza]: Open PR from `feature/m7-post-resource-cloud` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Hamza]: `git branch -d feature/m7-post-resource-cloud` -- [ ] Git [Hamza]: `git push origin --delete feature/m7-post-resource-cloud` - [ ] **COMMIT (Owner: Hamza | Group: POST.cloud | Branch: feature/m7-post-resource-cloud) - Commit message: "feat(resource): add cloud infrastructure resources"** + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git pull origin master` + - [ ] Git [Hamza]: `git checkout -b feature/m7-post-resource-cloud` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Add cloud resource types (aws, gcp, azure) with credential fields and region/tenant metadata. - [ ] Code [Hamza]: Add stubbed sandbox strategies that validate configuration and return NotImplementedError for execution. - [ ] Code [Hamza]: Add credential resolution from environment variables and profile names (no secrets logged). @@ -4769,17 +5054,17 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Tests (ASV) [Hamza]: Add `asv/benchmarks/cloud_resource_bench.py` for resource registration baseline. - [ ] Quality [Hamza]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Hamza]: `git add .` (only after coverage check passes) - [ ] Commit [Hamza]: `git commit -m "feat(resource): add cloud infrastructure resources"`. + - [ ] Forgejo PR [Hamza]: Open PR from `feature/m7-post-resource-cloud` to `master` with description "Add cloud infrastructure resource stubs and tests.". + - [ ] Git [Hamza]: `git checkout master` + - [ ] Git [Hamza]: `git branch -d feature/m7-post-resource-cloud` -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m7-post-permissions` -- [ ] Git [Luis]: `git push -u origin feature/m7-post-permissions` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m7-post-permissions` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m7-post-permissions` -- [ ] Git [Luis]: `git push origin --delete feature/m7-post-permissions` - [ ] **COMMIT (Owner: Luis | Group: POST.permissions | Branch: feature/m7-post-permissions) - Commit message: "feat(security): add permission system"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m7-post-permissions` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Implement namespace/project/plan/skill permission model (role bindings, default deny, allow overrides). - [ ] Code [Luis]: Add enforcement hooks at CLI/service boundaries (server-only; local mode returns permissive defaults). - [ ] Code [Luis]: Add role enums (owner/admin/editor/viewer) and default role mapping for local mode. @@ -4789,17 +5074,17 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/permission_check_bench.py` for enforcement baseline. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(security): add permission system"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m7-post-permissions` to `master` with description "Add permission system stubs and tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m7-post-permissions` -- [ ] Git [Luis]: `git checkout master` -- [ ] Git [Luis]: `git pull origin master` -- [ ] Git [Luis]: `git checkout -b feature/m7-post-safety` -- [ ] Git [Luis]: `git push -u origin feature/m7-post-safety` -- [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) -- [ ] Forgejo PR [Luis]: Open PR from `feature/m7-post-safety` to `master`, wait for CI + review, merge in UI (no CLI merge) -- [ ] Git [Luis]: `git branch -d feature/m7-post-safety` -- [ ] Git [Luis]: `git push origin --delete feature/m7-post-safety` - [ ] **COMMIT (Owner: Luis | Group: POST.safety | Branch: feature/m7-post-safety) - Commit message: "feat(security): add safety profile enforcement"** + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git pull origin master` + - [ ] Git [Luis]: `git checkout -b feature/m7-post-safety` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Add SafetyProfile model, CLI flags, and execution enforcement hooks (server-only for now). - [ ] Code [Luis]: Add safety profile resolution order (plan > project > global) with defaults. - [ ] Code [Luis]: Add policy validation for forbidden tools/resources and explicit denial messages. @@ -4809,7 +5094,11 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Tests (ASV) [Luis]: Add `asv/benchmarks/safety_profile_bench.py` for enforcement baseline. - [ ] Quality [Luis]: Run `nox` (all default sessions, including benchmark). - [ ] 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%. + - [ ] Git [Luis]: `git add .` (only after coverage check passes) - [ ] Commit [Luis]: `git commit -m "feat(security): add safety profile enforcement"`. + - [ ] Forgejo PR [Luis]: Open PR from `feature/m7-post-safety` to `master` with description "Add safety profile enforcement stubs and tests.". + - [ ] Git [Luis]: `git checkout master` + - [ ] Git [Luis]: `git branch -d feature/m7-post-safety` ---