diff --git a/implementation_plan.md b/implementation_plan.md index dea3dc73..b20f1c41 100644 --- a/implementation_plan.md +++ b/implementation_plan.md @@ -32,15 +32,15 @@ ## Guiding Principles - Keep `docs/specification.md` as the single source of truth; this plan stays intentionally minimal and sequencing-only. -- Local mode is the only execution target through M6; server mode is stub-only (ACP/LSP client interfaces raise `NotImplementedError`) with no server implementation here. -- Plan lifecycle: Action → Strategize → Execute → Apply; decision tree persisted; Execute may revert to Strategize; Apply terminal states are `applied`/`constrained`/`errored`/`cancelled` with constrained allowed to revert. -- Identity rules: actions/projects/tools/skills/actors/automation profiles use namespaced names; plans/decisions/resources/validation attachments use ULIDs; top-level plans may be named but child plans are ULID-only. -- Registry-first: Resource/ResourceType/Tool/Validation/Skill/Actor/Provider registries are authoritative; validation attachments are resource-scoped with optional project/plan narrowing. -- Resource model: physical/virtual resources form a DAG; resource types define parent/child constraints, auto-discovery, sandbox strategy, handler metadata, and equivalence for virtual resources. -- Tool execution: tool lifecycle (discover/activate/execute/deactivate) uses resource bindings and ChangeSet capture; validations are read-only tools with required/informational mode. -- YAML configs (actions/actors/tools/skills/validations/resource types/automation profiles) follow spec schemas with env-var interpolation; validate at load time. -- Automation profiles: 8 built-in profiles with 12 threshold fields + 3 safety flags; profiles are YAML-configured and bound to actions/plans per spec. -- Sandbox/checkpoint: resource-defined strategies (git_worktree, copy_on_write, none); lazy sandboxing; per-plan isolation; checkpoint/restore for long-running plans. +- Local mode is the only execution target through M6; server connectivity remains stub-only (ACP facade + LSP stubs raise `NotImplementedError`). +- Plan lifecycle: Action → Strategize (read-only) → Execute (sandboxed) → Apply (merge). Decisions are persisted; Apply terminal outcomes are `applied`/`constrained`/`errored`/`cancelled` with constrained eligible for reversion. +- Identity rules: actions/projects/tools/skills/actors/automation profiles use namespaced names; plans/decisions/resources/validation attachments use ULIDs; top-level plans may carry names, child plans are ULID-only. +- Registry-first: Action/ResourceType/Resource/Tool/Validation/Skill/Actor/Provider registries are authoritative; validation attachments are resource-scoped with optional project/plan narrowing. +- Resource model: physical/virtual resources form a DAG; resource types define parent/child constraints, auto-discovery, sandbox strategy, handler metadata, and virtual equivalence behavior. +- Tool model: tool lifecycle (discover/activate/execute/deactivate) with resource bindings; validations are read-only tools with required/informational mode; tool sources include built-ins, MCP, and Agent Skills. +- Actor model: YAML-configured single-LLM or graph actors; strategy/execution/estimation/invariant reconciliation roles are explicit and referenced by name. +- Automation profiles: built-in + custom profiles gate autonomy, reversion, and retry behavior; details live in spec only. +- Sandbox/checkpoint: resource-defined strategies (git_worktree, copy_on_write, none), per-plan isolation, checkpoint/rollback hooks; keep details in spec. - ACMS v1 (UKO + CRP + Context Assembly Pipeline) is the M6 target; all detail stays in the spec. ### Core Architectural Requirements @@ -1575,13 +1575,39 @@ CLEVERAGENTS_TEST_MODE=true - Rui | N/A (unavailable) | unavailable until 2026-02-27 | HIGH | test backlog resumes after return - Mike/Brian | N/A | standby | LOW | ASV benchmark testing (Michael active on CI) +### 2026-02-21 (Day 13 since kickoff on 2026-02-09) +- Timeline reference: Day 7/M1 = 2026-02-15, Day 10/M2 = 2026-02-18, Day 14/M3 = 2026-02-22, Day 21/M4 = 2026-03-01, Day 25/M5 = 2026-03-05, Day 30/M6 = 2026-03-10. +- Summary (Team | Status | Risk | Notes): Behind ~4-6d | HIGH | D-track still unmerged; apply pipeline + actor execution now scheduled; PR backlog remains (Jeff batch2, Aditya loader/examples, Brent test PRs). +- Milestone forecast (Target -> ETA | Delta | Risk): + - M1 (2026-02-15) -> ETA 2026-02-25 | +10d | HIGH + - M2 (2026-02-18) -> ETA 2026-02-27 | +9d | MED-HIGH + - M3 (2026-02-22) -> ETA 2026-03-03 | +9d | HIGH + - M4 (2026-03-01) -> ETA 2026-03-07 | +6d | MED-HIGH + - M5 (2026-03-05) -> ETA 2026-03-10 | +5d | MEDIUM + - M6 (2026-03-10) -> ETA 2026-03-13 | +3d | MEDIUM +- Track forecast (Track | Status | ETA | Risk | Blocking): + - Track A (Plan lifecycle + persistence) | behind ~3-4d | ETA 2026-02-24 | MED-HIGH | persistence tests + CLI/pipeline wiring waiting on D-track + - Track B (Projects/resources + sandbox) | behind ~2-3d | ETA 2026-02-25 | MEDIUM | handlers/auto-discovery + resource edge cases + - Track C (Actors/tools/skills/validations) | behind ~6-8d | ETA 2026-03-03 | HIGH | actor compiler + MCP adapter + validation runner + - Track D (Change tracking + apply pipeline) | behind ~8-10d | ETA 2026-02-25 | HIGH | execute/apply pipeline unmerged (D0b/D0/D1) + - Track Q (Quality automation) | ahead | ETA complete | LOW | maintenance only + - Track T (Testing) | at risk (Rui out) | ETA 2026-02-27+ | MED-HIGH | QA PR backlog +- Developer forecast (Name | Days Ahead/Behind | Availability | Risk | Focus): + - Jeff | -2d behind | available | HIGH | D0b.execute + D0b.apply + merge combined-batch2 + - Luis | -3d behind | available | MED-HIGH | D0.beta apply pipeline + D1.apply validation runner + - Hamza | +1d ahead | available | MEDIUM | resource handlers + D2/D3 foundations + - Aditya | +2d ahead | available | MEDIUM | actor loader PR + MCP adapter + actor compiler + - Brent | -1d behind | available | MED-HIGH | apply pipeline tests + pending PRs + - Rui | N/A (unavailable) | unavailable until 2026-02-27 | HIGH | test backlog resumes after return + - Mike/Brian | N/A | standby | LOW | ASV CI upkeep + ## Implementation Checklist This comprehensive checklist tracks all implementation tasks for the CleverAgents project. Each phase item includes mandatory **Code**, **Document**, and **Tests** bullets. Only mark the parent complete when every sub-bullet (including any spawned `Fix - ...` remediation tasks) is checked. **Organization**: This checklist is organized to enable parallel development and achieve a minimally working version as quickly as possible. Workstreams are clearly marked. Dependencies between workstreams are noted at merge points. -> **CRITICAL PRIORITY DIRECTIVE (as of Day 12, 2026-02-20)**: +> **CRITICAL PRIORITY DIRECTIVE (as of Day 13, 2026-02-21)**: > The **D-track (Section 6: Execute/Apply Pipeline)** is the single biggest blocker for M1 completion. No D-track code has been merged to master yet. The following tasks are the highest priority items across the entire project: > > 1. **D0b.execute** (Jeff) — Plan execute via actors — **MOST CRITICAL**, unstarted, planned Day 11 @@ -2506,10 +2532,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled **Parallel Group A4c: Plan Diagnostics & Artifacts [Jeff]** (M4; depends on D3/D4 + C5.diff) **SEQUENTIAL NOTE**: A4c starts after decision tree + correction flows land; ChangeSet diff must already exist (D0b.apply). -- [ ] **COMMIT (Owner: Jeff | Group: A4c.plan-diff | Branch: feature/m4-plan-diagnostics | Planned: Day 21 | Expected: Day 25) - Commit message: "feat(cli): add plan diff command"** +- [ ] **COMMIT (Owner: Jeff | Group: A4c.plan-diff | Branch: feature/m4-plan-diagnostics | Planned: Day 21 | Expected: Day 26) - 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]: Extend `agents plan diff` to support correction-aware diffs (`--correction`) in addition to the baseline ChangeSet diff from D0b.apply. - [ ] Code [Jeff]: Load ChangeSet + decision/correction metadata; emit explicit errors when correction data is missing or incompatible. - [ ] Code [Jeff]: Normalize diff output grouping by resource + change type with stable ordering for snapshot tests; include correction summary in headers. @@ -2524,10 +2551,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Git [Jeff]: `git push -u origin feature/m4-plan-diagnostics` - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-plan-diagnostics` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Jeff | Group: A4c.artifacts | Branch: feature/m4-plan-diagnostics | Planned: Day 22 | Expected: Day 25) - Commit message: "feat(cli): add plan artifacts and prompt commands"** +- [ ] **COMMIT (Owner: Jeff | Group: A4c.artifacts | Branch: feature/m4-plan-diagnostics | Planned: Day 22 | Expected: Day 26) - 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]: Extend `agents plan artifacts` to include decision snapshots, correction attempts, and validation summaries beyond the ChangeSet metadata added in D0b.apply. - [ ] Code [Jeff]: Implement `agents plan prompt ` to append guidance and record a `prompt_definition` decision. - [ ] Code [Jeff]: Persist prompt guidance in plan metadata and link it to the decision tree for subsequent Strategize/Execute phases. @@ -2660,10 +2688,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled **PARALLEL SUBTRACK A9.project [Luis]**: Project-scoped config persistence **SEQUENTIAL MERGE NOTE**: A9.service lands before A9.project. -- [ ] **COMMIT (Owner: Jeff | Group: A9.service | Branch: feature/m3-config-service | Planned: Day 14 | Expected: Day 20) - Commit message: "feat(config): add config service with multi-level resolution"** +- [ ] **COMMIT (Owner: Jeff | Group: A9.service | Branch: feature/m3-config-service | Planned: Day 14 | Expected: Day 22) - Commit message: "feat(config): add config service with multi-level resolution"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m3-config-service` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement `ConfigService` with TOML file management (`~/.cleveragents/config.toml`), read/write operations, and parent directory auto-creation. - [ ] Code [Jeff]: Implement multi-level resolution chain: CLI flag > environment variable > project-scoped > global config > default. Each `config get` call returns the winning value plus the source level that provided it. - [ ] Code [Jeff]: Add config key registry with typed entries: key name, Python type, default value, env var mapping (`CLEVERAGENTS_*`), project-scopability flag, and description. Register the complete catalog per spec (`core.*`, `plan.*`, `provider.*`, `sandbox.*`, `context.*`, `index.*`). @@ -2681,10 +2710,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Git [Jeff]: `git push -u origin feature/m3-config-service` - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-config-service` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Luis | Group: A9.project | Branch: feature/m4-config-project-scope | Planned: Day 18 | Expected: Day 22) - Commit message: "feat(config): add project-scoped config overrides"** +- [ ] **COMMIT (Owner: Luis | Group: A9.project | Branch: feature/m4-config-project-scope | Planned: Day 18 | Expected: Day 26) - Commit message: "feat(config): add project-scoped config overrides"** - [ ] Git [Luis]: `git checkout master` - [ ] Git [Luis]: `git pull origin master` - [ ] Git [Luis]: `git checkout -b feature/m4-config-project-scope` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Add `--project` flag to `config set` and `config get` commands. Store project-scoped overrides under `[project.""]` TOML tables in the global config file. - [ ] Code [Luis]: Integrate project-scoped resolution into `ConfigService` resolution chain (between env var and global levels). - [ ] Code [Luis]: Add `config list --project ` to show only project-scoped overrides with their source annotations. @@ -3343,10 +3373,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled **PARALLEL SUBTRACK C0.agent-skills.registry [Jeff]**: discovery + registry integration **SEQUENTIAL MERGE NOTE**: C0.agent-skills.loader → C0.agent-skills.registry. -- [ ] **COMMIT (Owner: Aditya | Group: C0.agent-skills.loader | Branch: feature/m3-agent-skills-loader | Planned: Day 17 | Expected: Day 19) - Commit message: "feat(skill): add agent skills loader"** +- [ ] **COMMIT (Owner: Aditya | Group: C0.agent-skills.loader | Branch: feature/m3-agent-skills-loader | Planned: Day 17 | Expected: Day 22) - Commit message: "feat(skill): add agent skills loader"** - [ ] Git [Aditya]: `git checkout master` - [ ] Git [Aditya]: `git pull origin master` - [ ] Git [Aditya]: `git checkout -b feature/m3-agent-skills-loader` + - [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Aditya]: Add `AgentSkillSpec` loader that parses `SKILL.md` frontmatter + progressive disclosure sections into structured steps with stable ordering. - [ ] Code [Aditya]: Map Agent Skills to Tool/Validation definitions with namespaced naming, resource binding slots, and read-only defaults. - [ ] Code [Aditya]: Support `scripts/`, `references/`, and `assets/` folders with path normalization and safe read-only access rules. @@ -3361,10 +3392,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Git [Aditya]: `git push -u origin feature/m3-agent-skills-loader` - [ ] Forgejo PR [Aditya]: Open PR from `feature/m3-agent-skills-loader` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Jeff | Group: C0.agent-skills.registry | Branch: feature/m3-agent-skills-registry | Planned: Day 18 | Expected: Day 20) - Commit message: "feat(skill): integrate agent skills discovery"** +- [ ] **COMMIT (Owner: Jeff | Group: C0.agent-skills.registry | Branch: feature/m3-agent-skills-registry | Planned: Day 18 | Expected: Day 22) - Commit message: "feat(skill): integrate agent skills discovery"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m3-agent-skills-registry` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Add config key `skills.agent_skills_paths` with default discovery path and allow multiple folders. - [ ] Code [Jeff]: Register Agent Skills tools in ToolRegistry with `source=agent_skills` and include source metadata in `agents skill tools` output. - [ ] Code [Jeff]: Add discovery refresh hook in SkillRegistryService and CLI `agents skill tools` to optionally re-scan Agent Skills paths. @@ -3420,10 +3452,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [X] Git [Jeff]: `git push -u origin feature/m3-actor-registry` - [X] Forgejo PR [Jeff]: Open PR from `feature/m3-actor-registry` to `master` with description "Align actor registry persistence with YAML text + metadata.". -- [ ] **COMMIT (Owner: Jeff | Group: C3.cli | Branch: feature/m3-actor-cli | Planned: Day 16 | Expected: Day 20) - Commit message: "feat(cli): align actor commands to YAML"** +- [ ] **COMMIT (Owner: Jeff | Group: C3.cli | Branch: feature/m3-actor-cli | Planned: Day 16 | Expected: Day 22) - Commit message: "feat(cli): align actor commands to YAML"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m3-actor-cli` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Align `agents actor add/remove/list/show` to YAML-first configs, namespaced names, and `--format json|yaml|plain` outputs. - [ ] Docs [Jeff]: Update CLI reference with actor YAML usage and examples. - [ ] Tests (Behave) [Jeff]: Add CLI scenarios for actor add/list/show/remove. @@ -3563,10 +3596,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Quality [Aditya]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. - [ ] Quality [Aditya]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - [ ] Forgejo PR [Aditya]: Open PR from `develop-aditya` to `master` with a suitable and thorough description. -- [ ] **COMMIT (Owner: Jeff | Group: C2.compiler | Branch: feature/m3-actor-compiler | Planned: Day 14 | Expected: Day 20) - Commit message: "feat(actor): compile actor configs to LangGraph"** +- [ ] **COMMIT (Owner: Jeff | Group: C2.compiler | Branch: feature/m3-actor-compiler | Planned: Day 14 | Expected: Day 22) - Commit message: "feat(actor): compile actor configs to LangGraph"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m3-actor-compiler` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement ActorCompiler that builds LangGraph for LLM, TOOL, and GRAPH actors with tool node wiring. - [ ] Code [Jeff]: Resolve tool node references through Tool Registry and validate required bindings before compile. - [ ] Code [Jeff]: Support validation nodes as first-class tool nodes and ensure they are marked read-only in compiled graphs. @@ -3582,10 +3616,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Git [Jeff]: `git commit -m "feat(actor): compile actor configs to LangGraph"` - [ ] Git [Jeff]: `git push -u origin feature/m3-actor-compiler` - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-actor-compiler` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Jeff | Group: C2.refs | Branch: feature/m3-actor-refs | Planned: Day 15 | Expected: Day 20) - Commit message: "feat(actor): resolve actor references and subgraphs"** +- [ ] **COMMIT (Owner: Jeff | Group: C2.refs | Branch: feature/m3-actor-refs | Planned: Day 15 | Expected: Day 22) - Commit message: "feat(actor): resolve actor references and subgraphs"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m3-actor-refs` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement reference resolution, cycle detection, and subgraph wiring for actor refs. - [ ] Code [Jeff]: Ensure cross-namespace reference resolution follows `[server:]namespace/name` rules. - [ ] Code [Jeff]: Add explicit errors for ambiguous refs (same name in multiple registries) and include candidate list in error message. @@ -3602,10 +3637,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-actor-refs` to `master` with a suitable and thorough description **Parallel Group C2.context: Actor Context Commands [Jeff]** (depends on C2.loader; post-M2) -- [ ] **COMMIT (Owner: Jeff | Group: C2.context | Branch: feature/m3-actor-context | Planned: Day 17 | Expected: Day 20) - Commit message: "feat(cli): add actor context commands"** +- [ ] **COMMIT (Owner: Jeff | Group: C2.context | Branch: feature/m3-actor-context | Planned: Day 17 | Expected: Day 22) - Commit message: "feat(cli): add actor context commands"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m3-actor-context` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement `agents actor context list/show/export/import/clear/remove` with `--all` and name filters per spec. - [ ] Code [Jeff]: Ensure actor context storage uses configured data dir and supports JSON import/export format. - [ ] Code [Jeff]: Add guardrails for missing contexts and unsafe overwrite confirmations. @@ -3727,10 +3763,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [X] Git [Jeff]: `git commit -m "feat(skill): add directory and search skills"` - [X] Git [Jeff]: `git push -u origin feature/m3-skill-file-search` - [X] Forgejo PR [Jeff]: Open PR from `feature/m3-skill-file-search` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Luis | Group: C4.git | Branch: feature/m3-skill-git | Planned: Day 19 | Expected: Day 20) - Commit message: "feat(skill): add git operation skills"** +- [ ] **COMMIT (Owner: Luis | Group: C4.git | Branch: feature/m3-skill-git | Planned: Day 19 | Expected: Day 22) - 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. @@ -3750,10 +3787,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Forgejo PR [Luis]: Open PR from `feature/m3-skill-git` to `master` with a suitable and thorough description **Parallel Group C5: Tool Routing & Change Tracking [Luis + Jeff]** (depends on C3/C4) -- [ ] **COMMIT (Owner: Luis | Group: C5.model | Branch: feature/m3-change-model | Planned: Day 19 | Expected: Day 20) - Commit message: "feat(change): add ChangeSet models and invocation tracker"** +- [ ] **COMMIT (Owner: Luis | Group: C5.model | Branch: feature/m3-change-model | Planned: Day 19 | Expected: Day 22) - 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). @@ -3772,33 +3810,34 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Git [Luis]: `git commit -m "feat(change): add ChangeSet models and invocation tracker"` - [ ] Git [Luis]: `git push -u origin feature/m3-change-model` - [ ] Forgejo PR [Luis]: Open PR from `feature/m3-change-model` to `master` with a suitable and thorough description - - [X] **COMMIT (Owner: Jeff | Group: C5.router | Branch: feature/m3-tool-router | Planned: Day 20 | Expected: Day 20) - Commit message: "feat(change): add tool router for providers"** - - [X] Git [Jeff]: `git checkout master` - - [X] Git [Jeff]: `git pull origin master` - - [X] Git [Jeff]: `git checkout -b feature/m3-tool-router` - - [X] Code [Jeff]: Implement ToolCallRouter for OpenAI/Anthropic/LangChain tool schemas with deterministic IDs. - - [X] Code [Jeff]: Add mapping for tool/validation names and argument schemas based on Tool Registry metadata. - - [X] Code [Jeff]: Add tool-call result normalization to match ToolInvocation schema. - - [X] Code [Jeff]: Add provider-specific handling for streaming tool calls (accumulate args + finalize when complete). - - [X] Code [Jeff]: Ensure validation tools are surfaced with `tool_type=validation` in provider payloads. - - [X] Code [Jeff]: Normalize tool schemas to provider limits (field pruning, max description length) with explicit warnings. - - [X] Code [Jeff]: Add stable tool-call ID generation (plan_id + tool_name + sequence) and include in ToolInvocation metadata. - - [X] Code [Jeff]: Add error mapping for provider tool-call failures (timeout, schema error, tool not found) into ToolInvocation.error. - - [X] Code [Jeff]: Add provider metadata capture (model name, provider id, latency) for each tool call. - - [X] Docs [Jeff]: Add `docs/reference/tool_router.md` with provider-specific mappings. - - [X] Tests (Behave) [Jeff]: Add `features/tool_router.feature` for schema mapping. - - [X] Tests (Robot) [Jeff]: Add `robot/tool_router.robot` for routing smoke tests. - - [X] Tests (ASV) [Jeff]: Add `benchmarks/tool_router_bench.py` for routing performance. - - [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 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] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. - - [X] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index - - [X] Git [Jeff]: `git commit -m "feat(change): add tool router for providers"` - - [X] Git [Jeff]: `git push -u origin feature/m3-tool-router` - - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-tool-router` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Luis | Group: C5.diff | Branch: feature/m3-diff-review | Planned: Day 20 | Expected: Day 20) - Commit message: "feat(change): add diff review artifacts"** +- [X] **COMMIT (Owner: Jeff | Group: C5.router | Branch: feature/m3-tool-router | Planned: Day 20 | Expected: Day 20) - Commit message: "feat(change): add tool router for providers"** + - [X] Git [Jeff]: `git checkout master` + - [X] Git [Jeff]: `git pull origin master` + - [X] Git [Jeff]: `git checkout -b feature/m3-tool-router` + - [X] Code [Jeff]: Implement ToolCallRouter for OpenAI/Anthropic/LangChain tool schemas with deterministic IDs. + - [X] Code [Jeff]: Add mapping for tool/validation names and argument schemas based on Tool Registry metadata. + - [X] Code [Jeff]: Add tool-call result normalization to match ToolInvocation schema. + - [X] Code [Jeff]: Add provider-specific handling for streaming tool calls (accumulate args + finalize when complete). + - [X] Code [Jeff]: Ensure validation tools are surfaced with `tool_type=validation` in provider payloads. + - [X] Code [Jeff]: Normalize tool schemas to provider limits (field pruning, max description length) with explicit warnings. + - [X] Code [Jeff]: Add stable tool-call ID generation (plan_id + tool_name + sequence) and include in ToolInvocation metadata. + - [X] Code [Jeff]: Add error mapping for provider tool-call failures (timeout, schema error, tool not found) into ToolInvocation.error. + - [X] Code [Jeff]: Add provider metadata capture (model name, provider id, latency) for each tool call. + - [X] Docs [Jeff]: Add `docs/reference/tool_router.md` with provider-specific mappings. + - [X] Tests (Behave) [Jeff]: Add `features/tool_router.feature` for schema mapping. + - [X] Tests (Robot) [Jeff]: Add `robot/tool_router.robot` for routing smoke tests. + - [X] Tests (ASV) [Jeff]: Add `benchmarks/tool_router_bench.py` for routing performance. + - [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 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] Quality [Jeff]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. + - [X] Git [Jeff]: Perform an appropriate `git add` command to add all the files that should be part of this commit to the git index + - [X] Git [Jeff]: `git commit -m "feat(change): add tool router for providers"` + - [X] Git [Jeff]: `git push -u origin feature/m3-tool-router` + - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-tool-router` to `master` with a suitable and thorough description +- [ ] **COMMIT (Owner: Luis | Group: C5.diff | Branch: feature/m3-diff-review | Planned: Day 20 | Expected: Day 22) - 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. @@ -3819,10 +3858,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Forgejo PR [Luis]: Open PR from `feature/m3-diff-review` to `master` with a suitable and thorough description **Parallel Group C6: Validation Pipeline [Luis + Jeff]** (depends on C5 and validation attachment config) -- [ ] **COMMIT (Owner: Luis | Group: C6.pipeline | Branch: feature/m3-validation-pipeline | Planned: Day 21 | Expected: Day 20) - Commit message: "feat(validation): add validation pipeline and results model"** +- [ ] **COMMIT (Owner: Luis | Group: C6.pipeline | Branch: feature/m3-validation-pipeline | Planned: Day 21 | Expected: Day 22) - Commit message: "feat(validation): add validation pipeline and results model"** - [ ] Git [Luis]: `git checkout master` - [ ] Git [Luis]: `git pull origin master` - [ ] Git [Luis]: `git checkout -b feature/m3-validation-pipeline` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Implement ValidationCommand, ValidationResult, and ValidationPipeline using Validation attachments from Tool Registry. - [ ] Code [Luis]: Run validations at end of Execute phase only; do not re-run during Apply per spec. - [ ] Code [Luis]: Enforce required vs informational validation modes and fix-then-revalidate loop hooks. @@ -3844,10 +3884,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Git [Luis]: `git commit -m "feat(validation): add validation pipeline and results model"` - [ ] Git [Luis]: `git push -u origin feature/m3-validation-pipeline` - [ ] Forgejo PR [Luis]: Open PR from `feature/m3-validation-pipeline` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Jeff | Group: C6.wraps | Branch: feature/m3-validation-wraps | Planned: Day 21 | Expected: Day 20) - Commit message: "feat(validation): support wrapped tools and transforms"** +- [ ] **COMMIT (Owner: Jeff | Group: C6.wraps | Branch: feature/m3-validation-wraps | Planned: Day 21 | Expected: Day 22) - Commit message: "feat(validation): support wrapped tools and transforms"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m3-validation-wraps` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement validation `wraps` execution path that runs the wrapped Tool and captures its output. - [ ] Code [Jeff]: Add transform engine that maps wrapped tool output into ValidationResult schema (must output `passed` boolean). - [ ] Code [Jeff]: Enforce read-only constraints for validations even when wrapping write-capable tools; block if violation. @@ -3867,10 +3908,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Git [Jeff]: `git commit -m "feat(validation): support wrapped tools and transforms"` - [ ] Git [Jeff]: `git push -u origin feature/m3-validation-wraps` - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-validation-wraps` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Jeff | Group: C6.gating | Branch: feature/m3-validation-gating | Planned: Day 22 | Expected: Day 20) - Commit message: "feat(validation): integrate validation with apply gating"** +- [ ] **COMMIT (Owner: Jeff | Group: C6.gating | Branch: feature/m3-validation-gating | Planned: Day 22 | Expected: Day 22) - Commit message: "feat(validation): integrate validation with apply gating"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m3-validation-gating` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Block apply on required validation failure; surface validation artifacts for review. - [ ] Code [Jeff]: Ensure informational validation failures do not block apply but are logged in plan status. - [ ] Code [Jeff]: Add CLI status output for validation summary (required vs informational counts). @@ -3891,10 +3933,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Forgejo PR [Jeff]: Open PR from `feature/m3-validation-gating` to `master` with a suitable and thorough description **Parallel Group C7: MCP Adapter [Aditya]** (depends on C0.runtime + C1.tool.registry) -- [ ] **COMMIT (Owner: Aditya | Group: C7.mcp | Branch: feature/m3-mcp-adapter | Planned: Day 18 | Expected: Day 20) - Commit message: "feat(skill): add MCP adapter for external tools"** +- [ ] **COMMIT (Owner: Aditya | Group: C7.mcp | Branch: feature/m3-mcp-adapter | Planned: Day 18 | Expected: Day 22) - Commit message: "feat(skill): add MCP adapter for external tools"** - [ ] Git [Aditya]: `git checkout master` - [ ] Git [Aditya]: `git pull origin master` - [ ] Git [Aditya]: `git checkout -b feature/m3-mcp-adapter` + - [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Aditya]: Implement MCP client adapter conforming to Tool interface with connection config. - [ ] Code [Aditya]: Register MCP tools in Tool Registry with dynamic discovery from MCP server. - [ ] Code [Aditya]: Add timeout and retry defaults for MCP calls (local-only for MVP). @@ -3922,10 +3965,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled **Parallel Group C9: Plan-Actor Integration (M3) [Jeff]** (depends on C2.loader/C3.compiler + C1.tool.cli + D0b.execute) **SEQUENTIAL NOTE**: Replace M1 stub actors with compiled actors after actor registry + tool CLI land. -- [ ] **COMMIT (Owner: Jeff | Group: C9.execute | Branch: feature/m3-plan-actor-runtime | Planned: Day 22 | Expected: Day 20) - Commit message: "feat(plan): route strategize/execute through compiled actors"** +- [ ] **COMMIT (Owner: Jeff | Group: C9.execute | Branch: feature/m3-plan-actor-runtime | Planned: Day 22 | Expected: Day 22) - Commit message: "feat(plan): route strategize/execute through compiled actors"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m3-plan-actor-runtime` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Replace M1 stub actors with compiled actor graphs resolved from ActorRegistry (strategy/execution actors). - [ ] Code [Jeff]: Pass plan context (projects, resources, invariants, automation profile) into actor runtime; enforce Strategize read-only constraints. - [ ] Code [Jeff]: Route tool nodes through ToolRunner with binding resolution and sandbox paths; ensure ChangeSet capture remains intact. @@ -3986,10 +4030,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [X] Git [Jeff]: `git branch -d feature/m1-changeset-core` - [X] Quality [Jeff]: Verify coverage >=97% via `nox -s coverage_report`. If coverage is <97% then review the current unit test coverage report at `build/coverage.xml` and use it to write new Behave based unit tests to improve code coverage. Specifically, write Behave style unit tests that are descriptively named and specifically improves coverage on whichever file has the most uncovered lines by writing tests that will target the uncovered lines in the report. Once that is done rerun `nox -s coverage_report` to verify all tests pass and coverage is above >=97%. Only mark this as complete once coverage is >=97%, if not repeat this task as many times as is needed until coverage reaches >=97%. -- [ ] **COMMIT (Owner: Luis | Group: D0.beta | Branch: feature/m1-apply-pipeline | Planned: Day 9 | Expected: Day 12) - Commit message: "feat(apply): add validation-gated apply pipeline"** +- [ ] **COMMIT (Owner: Luis | Group: D0.beta | Branch: feature/m1-apply-pipeline | Planned: Day 9 | Expected: Day 15) - Commit message: "feat(apply): add validation-gated apply pipeline"** - [ ] Git [Luis]: `git checkout master` - [ ] Git [Luis]: `git pull origin master` - [ ] Git [Luis]: `git checkout -b feature/m1-apply-pipeline` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Implement Apply pipeline that merges ChangeSet into the real resource only when required validations pass; set plan apply outcome to `applied` or `constrained` accordingly. - [ ] Code [Luis]: Add `ApplyService` and integrate with PlanLifecycleService `apply_plan()` flow (persist summary + timestamps + apply outcome). - [ ] Code [Luis]: Add minimal validation gate stub (`ValidationResult.passed`) and block Apply on failures with `constrained` state and actionable error message. @@ -4004,10 +4049,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Git [Luis]: `git push -u origin feature/m1-apply-pipeline` - [ ] Forgejo PR [Luis]: Open PR from `feature/m1-apply-pipeline` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Brent | Group: D0.tests | Branch: feature/m1-apply-tests | Planned: Day 10 | Expected: Day 13) - Commit message: "test(apply): cover changeset and apply pipeline"** +- [ ] **COMMIT (Owner: Brent | Group: D0.tests | Branch: feature/m1-apply-tests | Planned: Day 10 | Expected: Day 17) - Commit message: "test(apply): cover changeset and apply pipeline"** - [ ] Git [Brent]: `git checkout master` - [ ] Git [Brent]: `git pull origin master` - [ ] Git [Brent]: `git checkout -b feature/m1-apply-tests` + - [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Tests (Behave) [Brent]: Add ChangeSet/apply scenarios for multiple file changes and rollback on validation failure. - [ ] Tests (Behave) [Brent]: Add scenarios asserting apply summary fields in `plan status` output. - [ ] Tests (Robot) [Brent]: Add Robot suite that exercises sandbox → changeset → apply flow. @@ -4076,10 +4122,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled **PARALLEL SUBTRACK D1.cli [Jeff]**: Validation summary output in plan status **SEQUENTIAL MERGE NOTE**: D1.apply lands before D1.cli. -- [ ] **COMMIT (Owner: Luis | Group: D1.apply | Branch: feature/m3-validation-apply | Planned: Day 15 | Expected: Day 20) - Commit message: "feat(apply): run validation attachments"** +- [ ] **COMMIT (Owner: Luis | Group: D1.apply | Branch: feature/m3-validation-apply | Planned: Day 15 | Expected: Day 21) - Commit message: "feat(apply): run validation attachments"** - [ ] Git [Luis]: `git checkout master` - [ ] Git [Luis]: `git pull origin master` - [ ] Git [Luis]: `git checkout -b feature/m3-validation-apply` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Add `ValidationRunner` integration that executes attached validations before Apply. - [ ] Code [Luis]: Block Apply on `required` validation failures and record results in plan metadata. - [ ] Docs [Luis]: Add `docs/reference/validation_pipeline.md` with required vs informational behavior. @@ -4093,10 +4140,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Git [Luis]: `git push -u origin feature/m3-validation-apply` - [ ] Forgejo PR [Luis]: Open PR from `feature/m3-validation-apply` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Jeff | Group: D1.cli | Branch: feature/m3-validation-status | Planned: Day 16 | Expected: Day 20) - Commit message: "feat(cli): surface validation summaries"** +- [ ] **COMMIT (Owner: Jeff | Group: D1.cli | Branch: feature/m3-validation-status | Planned: Day 16 | Expected: Day 22) - Commit message: "feat(cli): surface validation summaries"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m3-validation-status` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Add validation summary output to `plan status` and `plan list`. - [ ] Docs [Jeff]: Update CLI reference with validation summary fields. - [ ] Tests (Behave) [Jeff]: Add scenarios for validation summary rendering. @@ -4114,10 +4162,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled **PARALLEL SUBTRACK D1b.recovery [Luis]**: Error recovery patterns and CLI hints **SEQUENTIAL MERGE NOTE**: D1b.reversion lands before D1b.recovery. -- [ ] **COMMIT (Owner: Jeff | Group: D1b.reversion | Branch: feature/m4-phase-reversion | Planned: Day 21 | Expected: Day 24) - Commit message: "feat(plan): add phase reversion state machine"** +- [ ] **COMMIT (Owner: Jeff | Group: D1b.reversion | Branch: feature/m4-phase-reversion | Planned: Day 21 | Expected: Day 26) - Commit message: "feat(plan): add phase reversion state machine"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m4-phase-reversion` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement Execute-to-Strategize reversion in `PlanLifecycleService` when constraints are too restrictive (validation failures block apply and automation profile permits reversion). - [ ] Code [Jeff]: Implement Apply-to-Strategize reversion from `constrained` terminal state, resetting phase to Strategize with preserved context and sandbox state. - [ ] Code [Jeff]: Add `auto_reversion_from_apply` threshold check from the resolved `AutomationProfile` — only auto-revert if the profile's `auto_reversion_from_apply` flag is set. @@ -4135,10 +4184,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Git [Jeff]: `git push -u origin feature/m4-phase-reversion` - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-phase-reversion` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Luis | Group: D1b.recovery | Branch: feature/m4-error-recovery | Planned: Day 22 | Expected: Day 25) - Commit message: "feat(plan): add error recovery patterns and CLI hints"** +- [ ] **COMMIT (Owner: Luis | Group: D1b.recovery | Branch: feature/m4-error-recovery | Planned: Day 22 | Expected: Day 26) - Commit message: "feat(plan): add error recovery patterns and CLI hints"** - [ ] Git [Luis]: `git checkout master` - [ ] Git [Luis]: `git pull origin master` - [ ] Git [Luis]: `git checkout -b feature/m4-error-recovery` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Record `error_recovery` decision type in the decision tree during Execute phase failures, capturing error category, recovery action taken, and retry count. - [ ] Code [Luis]: Add structured recovery hints to CLI error output (e.g., "use `agents plan prompt ` to resume", "use `agents plan revert --to-phase strategize` to restart strategy"). - [ ] Code [Luis]: Wire retry/self-repair loop into Execute phase up to the configured retry limit from the automation profile (`max_retries` field). @@ -4161,10 +4211,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled **PARALLEL SUBTRACK D2.cli [Jeff]**: CLI commands for invariants **SEQUENTIAL MERGE NOTE**: D2.model lands before D2.reconcile/D2.cli. -- [ ] **COMMIT (Owner: Hamza | Group: D2.model | Branch: feature/m4-invariant-model | Planned: Day 19 | Expected: Day 25) - Commit message: "feat(domain): add invariant model and storage"** +- [ ] **COMMIT (Owner: Hamza | Group: D2.model | Branch: feature/m4-invariant-model | Planned: Day 19 | Expected: Day 26) - Commit message: "feat(domain): add invariant model and storage"** - [ ] Git [Hamza]: `git checkout master` - [ ] Git [Hamza]: `git pull origin master` - [ ] Git [Hamza]: `git checkout -b feature/m4-invariant-model` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Add `Invariant` model with scope (global/project/action/plan), text, and source references. - [ ] Code [Hamza]: Add persistence tables for invariants with precedence ordering. - [ ] Docs [Hamza]: Add `docs/reference/invariants.md` with precedence rules. @@ -4178,10 +4229,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Git [Hamza]: `git push -u origin feature/m4-invariant-model` - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-invariant-model` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Jeff | Group: D2.reconcile | Branch: feature/m4-invariant-reconcile | Planned: Day 20 | Expected: Day 25) - Commit message: "feat(plan): reconcile invariants in strategize"** +- [ ] **COMMIT (Owner: Jeff | Group: D2.reconcile | Branch: feature/m4-invariant-reconcile | Planned: Day 20 | Expected: Day 26) - Commit message: "feat(plan): reconcile invariants in strategize"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m4-invariant-reconcile` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Add Invariant Reconciliation Actor invocation at the start of Strategize. - [ ] Code [Jeff]: Record `invariant_enforced` decisions and persist resolved invariants into plan metadata. - [ ] Docs [Jeff]: Add `docs/reference/invariant_reconciliation.md` describing conflict resolution. @@ -4195,10 +4247,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Git [Jeff]: `git push -u origin feature/m4-invariant-reconcile` - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-invariant-reconcile` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Jeff | Group: D2.cli | Branch: feature/m4-invariant-cli | Planned: Day 21 | Expected: Day 25) - Commit message: "feat(cli): add invariant commands"** +- [ ] **COMMIT (Owner: Jeff | Group: D2.cli | Branch: feature/m4-invariant-cli | Planned: Day 21 | Expected: Day 26) - Commit message: "feat(cli): add invariant commands"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m4-invariant-cli` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement `agents invariant add/list/remove` with scope flags and namespaced filters. - [ ] Docs [Jeff]: Update CLI reference with invariant command examples. - [ ] Tests (Behave) [Jeff]: Add scenarios for add/list/remove across scopes. @@ -4217,10 +4270,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled **PARALLEL SUBTRACK D3.cli [Hamza]**: Plan tree/explain CLI **SEQUENTIAL MERGE NOTE**: D3.domain → D3.service → D3.cli. -- [ ] **COMMIT (Owner: Hamza | Group: D3.domain | Branch: feature/m4-decision-domain | Planned: Day 21 | Expected: Day 25) - Commit message: "feat(domain): add decision model and context snapshots"** +- [ ] **COMMIT (Owner: Hamza | Group: D3.domain | Branch: feature/m4-decision-domain | Planned: Day 21 | Expected: Day 26) - Commit message: "feat(domain): add decision model and context snapshots"** - [ ] Git [Hamza]: `git checkout master` - [ ] Git [Hamza]: `git pull origin master` - [ ] Git [Hamza]: `git checkout -b feature/m4-decision-domain` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Add `DecisionType`, `ContextSnapshot`, and `Decision` models with correction fields. - [ ] Docs [Hamza]: Add `docs/reference/decision_model.md` with examples and schema notes. - [ ] Tests (Behave) [Hamza]: Add `features/decision_model.feature` for validation and helpers. @@ -4233,10 +4287,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Git [Hamza]: `git push -u origin feature/m4-decision-domain` - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-domain` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Hamza | Group: D3.service | Branch: feature/m4-decision-service | Planned: Day 22 | Expected: Day 25) - Commit message: "feat(service): add decision recording and snapshot store"** +- [ ] **COMMIT (Owner: Hamza | Group: D3.service | Branch: feature/m4-decision-service | Planned: Day 22 | Expected: Day 26) - Commit message: "feat(service): add decision recording and snapshot store"** - [ ] Git [Hamza]: `git checkout master` - [ ] Git [Hamza]: `git pull origin master` - [ ] Git [Hamza]: `git checkout -b feature/m4-decision-service` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Implement `DecisionService` with record/list/tree helpers and snapshot storage. - [ ] Docs [Hamza]: Add `docs/reference/decision_service.md` covering recording and snapshots. - [ ] Tests (Behave) [Hamza]: Add `features/decision_recording.feature` scenarios. @@ -4249,10 +4304,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Git [Hamza]: `git push -u origin feature/m4-decision-service` - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-service` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Hamza | Group: D3.cli | Branch: feature/m4-decision-cli | Planned: Day 23 | Expected: Day 25) - Commit message: "feat(cli): add plan tree and explain commands"** +- [ ] **COMMIT (Owner: Hamza | Group: D3.cli | Branch: feature/m4-decision-cli | Planned: Day 23 | Expected: Day 26) - Commit message: "feat(cli): add plan tree and explain commands"** - [ ] Git [Hamza]: `git checkout master` - [ ] Git [Hamza]: `git pull origin master` - [ ] Git [Hamza]: `git checkout -b feature/m4-decision-cli` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Implement `plan tree` and `plan explain` with `--show-superseded`, `--show-context`, and `--show-reasoning`. - [ ] Docs [Hamza]: Update CLI reference for decision viewing commands. - [ ] Tests (Behave) [Hamza]: Add tree/explain scenarios including superseded handling. @@ -4270,10 +4326,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled **PARALLEL SUBTRACK D4.append [Jeff]**: Append corrections **SEQUENTIAL MERGE NOTE**: D4.revert lands before D4.append. -- [ ] **COMMIT (Owner: Jeff | Group: D4.revert | Branch: feature/m4-decision-revert | Planned: Day 24 | Expected: Day 25) - Commit message: "feat(service): add decision correction revert flow"** +- [ ] **COMMIT (Owner: Jeff | Group: D4.revert | Branch: feature/m4-decision-revert | Planned: Day 24 | Expected: Day 26) - Commit message: "feat(service): add decision correction revert flow"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m4-decision-revert` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement correction impact analysis, dry-run report, and revert execution. - [ ] Docs [Jeff]: Add `docs/reference/decision_correction.md` for revert behavior and dry-run output. - [ ] Tests (Behave) [Jeff]: Add revert + dry-run scenarios. @@ -4286,10 +4343,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Git [Jeff]: `git push -u origin feature/m4-decision-revert` - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-decision-revert` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Jeff | Group: D4.append | Branch: feature/m4-decision-append | Planned: Day 25 | Expected: Day 25) - Commit message: "feat(service): add decision correction append flow"** +- [ ] **COMMIT (Owner: Jeff | Group: D4.append | Branch: feature/m4-decision-append | Planned: Day 25 | Expected: Day 26) - Commit message: "feat(service): add decision correction append flow"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m4-decision-append` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement append corrections as new subtree with lineage and subplan spawning. - [ ] Docs [Jeff]: Extend correction docs for append mode and guidance usage. - [ ] Tests (Behave) [Jeff]: Add append correction scenarios. @@ -4303,10 +4361,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-decision-append` to `master` with a suitable and thorough description **Parallel Group D5: Decision Persistence [Hamza + Luis]** (depends on D1) -- [ ] **COMMIT (Owner: Hamza | Group: D5.db | Branch: feature/m4-decision-persistence | Planned: Day 24 | Expected: Day 25) - Commit message: "feat(db): add decision tables"** +- [ ] **COMMIT (Owner: Hamza | Group: D5.db | Branch: feature/m4-decision-persistence | Planned: Day 24 | Expected: Day 26) - Commit message: "feat(db): add decision tables"** - [ ] Git [Hamza]: `git checkout master` - [ ] Git [Hamza]: `git pull origin master` - [ ] Git [Hamza]: `git checkout -b feature/m4-decision-persistence` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Add Alembic migrations for `decisions` and `context_snapshots` with indexes. - [ ] Code [Hamza]: Add indexes for plan_id, decision_type, and superseded flags for fast tree queries. - [ ] Code [Hamza]: Store decision JSON payloads with deterministic ordering for stable diffs and audits. @@ -4320,10 +4379,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Git [Hamza]: `git commit -m "feat(db): add decision tables"`. - [ ] Git [Hamza]: `git push -u origin feature/m4-decision-persistence` - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-persistence` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Hamza | Group: D5.repo | Branch: feature/m4-decision-persistence | Planned: Day 25 | Expected: Day 25) - Commit message: "feat(repo): add decision repositories"** +- [ ] **COMMIT (Owner: Hamza | Group: D5.repo | Branch: feature/m4-decision-persistence | Planned: Day 25 | Expected: Day 26) - Commit message: "feat(repo): add decision repositories"** - [ ] Git [Hamza]: `git checkout master` - [ ] Git [Hamza]: `git pull origin master` - [ ] Git [Hamza]: `git checkout -b feature/m4-decision-persistence` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Implement DecisionRepository + ContextSnapshotRepository with tree queries and max-sequence helpers. - [ ] Code [Hamza]: Add repository methods for superseded decision lookup and subtree retrieval. - [ ] Code [Hamza]: Add repository method to fetch ordered decision path from root to a given decision (for explain output). @@ -4337,10 +4397,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Git [Hamza]: `git commit -m "feat(repo): add decision repositories"`. - [ ] Git [Hamza]: `git push -u origin feature/m4-decision-persistence` - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-decision-persistence` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Luis | Group: D5.di | Branch: feature/m4-decision-di | Planned: Day 26 | Expected: Day 25) - Commit message: "feat(di): wire decision services"** +- [ ] **COMMIT (Owner: Luis | Group: D5.di | Branch: feature/m4-decision-di | Planned: Day 26 | Expected: Day 26) - Commit message: "feat(di): wire decision services"** - [ ] Git [Luis]: `git checkout master` - [ ] Git [Luis]: `git pull origin master` - [ ] Git [Luis]: `git checkout -b feature/m4-decision-di` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Wire decision repositories + services into DI and CLI. - [ ] Code [Luis]: Inject DecisionService into PlanLifecycleService so strategize/execute can record decisions automatically. - [ ] Docs [Luis]: Update DI docs for decision wiring. @@ -4353,10 +4414,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Git [Luis]: `git commit -m "feat(di): wire decision services"`. - [ ] Git [Luis]: `git push -u origin feature/m4-decision-di` - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-decision-di` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Brent | Group: D5.tests | Branch: feature/m4-decision-tests | Planned: Day 27 | Expected: Day 25) - Commit message: "test(persistence): add decision persistence suites"** +- [ ] **COMMIT (Owner: Brent | Group: D5.tests | Branch: feature/m4-decision-tests | Planned: Day 27 | Expected: Day 27) - Commit message: "test(persistence): add decision persistence suites"** - [ ] Git [Brent]: `git checkout master` - [ ] Git [Brent]: `git pull origin master` - [ ] Git [Brent]: `git checkout -b feature/m4-decision-tests` + - [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Tests (Behave) [Brent]: Add `features/decision_persistence.feature` scenarios. - [ ] Tests (Behave) [Brent]: Add scenarios for superseded decisions, correction attempts, and tree depth filtering. - [ ] Tests (Behave) [Brent]: Add output snapshots for `plan explain --format json` and `plan tree --format yaml`. @@ -4371,10 +4433,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Forgejo PR [Brent]: Open PR from `feature/m4-decision-tests` to `master` with a suitable and thorough description **Parallel Group DOD: Definition of Done + Invariants [Luis + Jeff]** (depends on D2/D4) -- [ ] **COMMIT (Owner: Luis | Group: DOD.dod | Branch: feature/m4-definition-of-done | Planned: Day 26 | Expected: Day 25) - Commit message: "feat(dod): enforce definition-of-done gating"** +- [ ] **COMMIT (Owner: Luis | Group: DOD.dod | Branch: feature/m4-definition-of-done | Planned: Day 26 | Expected: Day 26) - Commit message: "feat(dod): enforce definition-of-done gating"** - [ ] Git [Luis]: `git checkout master` - [ ] Git [Luis]: `git pull origin master` - [ ] Git [Luis]: `git checkout -b feature/m4-definition-of-done` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Evaluate `definition_of_done` before apply; block apply with clear error if unmet. - [ ] Code [Luis]: Ensure DoD templating uses plan arguments and preserves template in plan metadata. - [ ] Code [Luis]: Add DoD evaluation hook to capture pass/fail reasoning and store in plan validation summary. @@ -4391,10 +4454,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Git [Luis]: `git commit -m "feat(dod): enforce definition-of-done gating"`. - [ ] Git [Luis]: `git push -u origin feature/m4-definition-of-done` - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-definition-of-done` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Jeff | Group: DOD.invariants | Branch: feature/m4-invariants | Planned: Day 27 | Expected: Day 25) - Commit message: "feat(invariant): add invariant models and enforcement"** +- [ ] **COMMIT (Owner: Jeff | Group: DOD.invariants | Branch: feature/m4-invariants | Planned: Day 27 | Expected: Day 26) - Commit message: "feat(invariant): add invariant models and enforcement"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m4-invariants` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Add invariant models, merge order (plan > project > action > global), and enforcement before strategize. - [ ] Code [Jeff]: Add Invariant Reconciliation Actor role and record `invariant_enforced` decisions. - [ ] Code [Jeff]: Add `agents invariant add/list/remove` CLI with scope flags. @@ -4680,10 +4744,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [X] Git [Brent]: `git branch -d feature/m5-subplan-tests` **Parallel Group E2: Subplan Spawning [Jeff + Aditya]** (depends on D2 + E1) -- [ ] **COMMIT (Owner: Jeff | Group: E2.service | Branch: feature/m5-subplan-service | Planned: Day 26 | Expected: Day 26) - Commit message: "feat(service): add subplan service and spawn workflow"** +- [ ] **COMMIT (Owner: Jeff | Group: E2.service | Branch: feature/m5-subplan-service | Planned: Day 26 | Expected: Day 28) - Commit message: "feat(service): add subplan service and spawn workflow"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m5-subplan-service` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement `SubplanService` with `spawn_subplan`, `spawn_batch`, tree queries, and bounded context builder. - [ ] Code [Jeff]: Build bounded context from parent plan decisions + project context policies; enforce token/file limits. - [ ] Code [Jeff]: Inherit automation profile + invariants from parent plan; allow subplan overrides from decisions. @@ -4706,10 +4771,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Git [Jeff]: `git commit -m "feat(service): add subplan service and spawn workflow"` - [ ] Git [Jeff]: `git push -u origin feature/m5-subplan-service` - [ ] Forgejo PR [Jeff]: Open PR from `feature/m5-subplan-service` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Aditya | Group: E2.actor | Branch: feature/m5-subplan-actor | Planned: Day 26 | Expected: Day 26) - Commit message: "feat(actor): add plan_subplan tool and decision emission"** +- [ ] **COMMIT (Owner: Aditya | Group: E2.actor | Branch: feature/m5-subplan-actor | Planned: Day 26 | Expected: Day 28) - Commit message: "feat(actor): add plan_subplan tool and decision emission"** - [ ] Git [Aditya]: `git checkout master` - [ ] Git [Aditya]: `git pull origin master` - [ ] Git [Aditya]: `git checkout -b feature/m5-subplan-actor` + - [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Aditya]: Add `plan_subplan` tool to strategy actors and emit SUBPLAN_SPAWN decisions. - [ ] Code [Aditya]: Support `parallel=true` to emit SUBPLAN_PARALLEL_SPAWN and include dependency list. - [ ] Code [Aditya]: Include merge strategy, resource scope, and context view overrides in decision payload. @@ -4730,10 +4796,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Forgejo PR [Aditya]: Open PR from `feature/m5-subplan-actor` to `master` with a suitable and thorough description **Parallel Group E3: Parallel Execution [Luis + Jeff]** (depends on E1/E2) -- [ ] **COMMIT (Owner: Luis | Group: E3.exec | Branch: feature/m5-subplan-exec | Planned: Day 27 | Expected: Day 27) - Commit message: "feat(service): add subplan scheduler and execution"** +- [ ] **COMMIT (Owner: Luis | Group: E3.exec | Branch: feature/m5-subplan-exec | Planned: Day 27 | Expected: Day 28) - Commit message: "feat(service): add subplan scheduler and execution"** - [ ] Git [Luis]: `git checkout master` - [ ] Git [Luis]: `git pull origin master` - [ ] Git [Luis]: `git checkout -b feature/m5-subplan-exec` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Add subplan scheduler with `max_parallel`, dependency ordering, and fail-fast handling. - [ ] Code [Luis]: Support sequential and parallel execution modes based on SubplanConfig. - [ ] Code [Luis]: Track status updates for subplans and propagate to parent plan (processing/complete/errored). @@ -4756,10 +4823,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Forgejo PR [Luis]: Open PR from `feature/m5-subplan-exec` to `master` with a suitable and thorough description **Parallel Group E4: Result Merging [Jeff]** (depends on E3) -- [ ] **COMMIT (Owner: Jeff | Group: E4.merge | Branch: feature/m5-subplan-merge | Planned: Day 28 | Expected: Day 27) - Commit message: "feat(merge): add subplan merge strategies"** +- [ ] **COMMIT (Owner: Jeff | Group: E4.merge | Branch: feature/m5-subplan-merge | Planned: Day 28 | Expected: Day 28) - Commit message: "feat(merge): add subplan merge strategies"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m5-subplan-merge` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Add three-way merge strategy for file changes and conflict markers. - [ ] Code [Jeff]: Add sequential merge and JSON merge strategies; expose merge result artifacts. - [ ] Code [Jeff]: Add conflict artifact model (file_path, conflict_type, base/left/right snippets). @@ -4781,10 +4849,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Forgejo PR [Jeff]: Open PR from `feature/m5-subplan-merge` to `master` with a suitable and thorough description **Parallel Group E5: Multi-Project Plans [Hamza]** (depends on E2/E4) -- [ ] **COMMIT (Owner: Hamza | Group: E5.multi | Branch: feature/m5-multi-project | Planned: Day 29 | Expected: Day 27) - Commit message: "feat(plan): add multi-project subplan support"** +- [ ] **COMMIT (Owner: Hamza | Group: E5.multi | Branch: feature/m5-multi-project | Planned: Day 29 | Expected: Day 28) - Commit message: "feat(plan): add multi-project subplan support"** - [ ] Git [Hamza]: `git checkout master` - [ ] Git [Hamza]: `git pull origin master` - [ ] Git [Hamza]: `git checkout -b feature/m5-multi-project` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Allow plans to target multiple projects with separate resource link contexts. - [ ] Code [Hamza]: Ensure sandbox isolation and cross-project dependency resolution. - [ ] Code [Hamza]: Add plan metadata to track project-specific ChangeSets and validation summaries. @@ -4811,10 +4880,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled **Local-mode only**: large-project autonomy is required; server connectivity remains stubbed. **Parallel Group G1: Large-Project Decomposition [Jeff]** -- [ ] **COMMIT (Owner: Jeff | Group: G1.decompose | Branch: feature/m6-large-decompose | Planned: Day 26 | Expected: Day 30) - Commit message: "feat(plan): add large-project decomposition and dependency closure"** +- [ ] **COMMIT (Owner: Jeff | Group: G1.decompose | Branch: feature/m6-large-decompose | Planned: Day 26 | Expected: Day 31) - Commit message: "feat(plan): add large-project decomposition and dependency closure"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m6-large-decompose` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Add hierarchical decomposition with 4+ levels and bounded context per subplan. - [ ] Code [Jeff]: Implement decomposition heuristics (max_files_per_subplan, max_tokens_per_subplan, language/dir clustering). - [ ] Code [Jeff]: Add dependency closure computation for large graphs and DAG execution ordering. @@ -4838,10 +4908,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-large-decompose` to `master` with a suitable and thorough description **Parallel Group G2: Checkpointing & Rollback [Luis]** -- [ ] **COMMIT (Owner: Luis | Group: G2.checkpoint | Branch: feature/m6-checkpoint | Planned: Day 27 | Expected: Day 30) - Commit message: "feat(checkpoint): add checkpointing and rollback"** +- [ ] **COMMIT (Owner: Luis | Group: G2.checkpoint | Branch: feature/m6-checkpoint | Planned: Day 27 | Expected: Day 31) - Commit message: "feat(checkpoint): add checkpointing and rollback"** - [ ] Git [Luis]: `git checkout master` - [ ] Git [Luis]: `git pull origin master` - [ ] Git [Luis]: `git checkout -b feature/m6-checkpoint` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Add checkpoint declarations for tools and plan-level rollback policy. - [ ] Code [Luis]: Add `checkpoints` table (checkpoint_id ULID, plan_id, sandbox_ref, created_at, metadata_json). - [ ] Code [Luis]: Implement `plan rollback ` command. @@ -4864,10 +4935,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Forgejo PR [Luis]: Open PR from `feature/m6-checkpoint` to `master` with a suitable and thorough description **Parallel Group G3: Semantic Validation [Luis]** -- [ ] **COMMIT (Owner: Luis | Group: G3.semantic | Branch: feature/m6-semantic-validation | Planned: Day 27 | Expected: Day 30) - Commit message: "feat(validation): add semantic validation service"** +- [ ] **COMMIT (Owner: Luis | Group: G3.semantic | Branch: feature/m6-semantic-validation | Planned: Day 27 | Expected: Day 31) - Commit message: "feat(validation): add semantic validation service"** - [ ] Git [Luis]: `git checkout master` - [ ] Git [Luis]: `git pull origin master` - [ ] Git [Luis]: `git checkout -b feature/m6-semantic-validation` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Add semantic validation hooks during strategize/execute and error-pattern checks. - [ ] Code [Luis]: Add built-in semantic checks for syntax errors, missing imports, and broken references for Python projects. - [ ] Code [Luis]: Expose semantic validation as Validation tools so they can be attached per resource. @@ -4890,10 +4962,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Forgejo PR [Luis]: Open PR from `feature/m6-semantic-validation` to `master` with a suitable and thorough description **Parallel Group G4: Context Tiers & Views [Hamza]** -- [ ] **COMMIT (Owner: Hamza | Group: G4.context | Branch: feature/m6-context-tiers | Planned: Day 28 | Expected: Day 30) - Commit message: "feat(context): add hot/warm/cold tiers and actor views"** +- [ ] **COMMIT (Owner: Hamza | Group: G4.context | Branch: feature/m6-context-tiers | Planned: Day 28 | Expected: Day 31) - Commit message: "feat(context): add hot/warm/cold tiers and actor views"** - [ ] Git [Hamza]: `git checkout master` - [ ] Git [Hamza]: `git pull origin master` - [ ] Git [Hamza]: `git checkout -b feature/m6-context-tiers` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Implement hot/warm/cold tiers with indexing, LRU eviction, and promotion/demotion. - [ ] Code [Hamza]: Add tier storage backends (in-memory hot, sqlite warm, file-backed cold). - [ ] Code [Hamza]: Add per-actor context views (strategist/executor/reviewer) and filtered presentation. @@ -4917,10 +4990,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-context-tiers` to `master` with a suitable and thorough description **Parallel Group G5: Cost & Risk Estimation [Hamza]** -- [ ] **COMMIT (Owner: Hamza | Group: G5.estimate | Branch: feature/m6-estimation | Planned: Day 28 | Expected: Day 30) - Commit message: "feat(estimation): add cost and risk estimation actor"** +- [ ] **COMMIT (Owner: Hamza | Group: G5.estimate | Branch: feature/m6-estimation | Planned: Day 28 | Expected: Day 31) - Commit message: "feat(estimation): add cost and risk estimation actor"** - [ ] Git [Hamza]: `git checkout master` - [ ] Git [Hamza]: `git pull origin master` - [ ] Git [Hamza]: `git checkout -b feature/m6-estimation` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Add optional `estimation_actor` role and cost/risk estimation outputs. - [ ] Code [Hamza]: Persist estimation output to plan metadata (cost_estimate, risk_score, duration_estimate). - [ ] Code [Hamza]: Invoke estimation during `plan use` and surface estimates in `plan status` output. @@ -4972,10 +5046,11 @@ No standalone Q0-Advanced commits planned. Advanced QA enhancements are bundled - 50 Behave scenarios (233 steps), 1 Robot suite, 1 ASV benchmark file **Parallel Group G6: CLI Polish [Jeff]** (depends on G5b.render) -- [ ] **COMMIT (Owner: Jeff | Group: G6.cli | Branch: feature/m6-cli-polish | Planned: Day 29 | Expected: Day 30) - Commit message: "chore(cli): polish help and output"** +- [ ] **COMMIT (Owner: Jeff | Group: G6.cli | Branch: feature/m6-cli-polish | Planned: Day 29 | Expected: Day 31) - Commit message: "chore(cli): polish help and output"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m6-cli-polish` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Standardize help text, progress indicators, and error messages with recovery hints. - [ ] Code [Jeff]: Ensure `--format` outputs are consistent (rich/color/table/plain/json/yaml) across core commands. - [ ] Code [Jeff]: Ensure `plain` format uses ASCII-only output to support log pipelines. @@ -5009,10 +5084,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) -- [ ] **COMMIT (Owner: Luis | Group: F0.stubs | Branch: feature/m6-server-stubs | Planned: Day 28 | Expected: Day 30) - Commit message: "feat(interfaces): add server client stubs"** +- [ ] **COMMIT (Owner: Luis | Group: F0.stubs | Branch: feature/m6-server-stubs | Planned: Day 28 | Expected: Day 31) - Commit message: "feat(interfaces): add server client stubs"** - [ ] Git [Luis]: `git checkout master` - [ ] Git [Luis]: `git pull origin master` - [ ] Git [Luis]: `git checkout -b feature/m6-server-stubs` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Add protocol stubs for `ServerClient`, `RemoteExecutionClient`, and `AuthClient` with NotImplementedError. - [ ] Code [Luis]: Add `ServerConnectionConfig` model (server_url, namespace, auth_token_ref, tls_verify) with validation. - [ ] Code [Luis]: Add config keys (`core.server_url`, `core.server_namespace`, `core.server_tls_verify`) and ensure they load from config/env. @@ -5040,10 +5116,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is **PARALLEL SUBTRACK F1.lsp [Jeff]**: LSP server stub + wiring to ACP facade **SEQUENTIAL MERGE NOTE**: F1.acp → F1.lsp. -- [ ] **COMMIT (Owner: Luis | Group: F1.acp | Branch: feature/m6-acp-local | Planned: Day 29 | Expected: Day 30) - Commit message: "feat(acp): add local ACP facade stubs"** +- [ ] **COMMIT (Owner: Luis | Group: F1.acp | Branch: feature/m6-acp-local | Planned: Day 29 | Expected: Day 31) - Commit message: "feat(acp): add local ACP facade stubs"** - [ ] Git [Luis]: `git checkout master` - [ ] Git [Luis]: `git pull origin master` - [ ] Git [Luis]: `git checkout -b feature/m6-acp-local` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Add ACP request/response models for session, plan lifecycle, registry access, and event streaming envelopes. - [ ] Code [Luis]: Implement in-process ACP facade that maps ACP calls to existing services in local mode (no network). - [ ] Code [Luis]: Add ACP event stream stub with in-memory queue and explicit "not implemented for remote" errors. @@ -5059,10 +5136,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Git [Luis]: `git push -u origin feature/m6-acp-local` - [ ] Forgejo PR [Luis]: Open PR from `feature/m6-acp-local` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Jeff | Group: F1.lsp | Branch: feature/m6-lsp-stub | Planned: Day 29 | Expected: Day 30) - Commit message: "feat(lsp): add LSP server stub"** +- [ ] **COMMIT (Owner: Jeff | Group: F1.lsp | Branch: feature/m6-lsp-stub | Planned: Day 29 | Expected: Day 31) - Commit message: "feat(lsp): add LSP server stub"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m6-lsp-stub` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Add minimal LSP server entrypoint that supports initialize/shutdown and reports stubbed capability set. - [ ] Code [Jeff]: Wire LSP requests to ACP facade (local mode) and return explicit "not implemented" responses for unsupported methods. - [ ] Code [Jeff]: Add CLI command `agents lsp` to launch the stub server with logging and PID output. @@ -5089,10 +5167,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]** -- [ ] **COMMIT (Owner: Luis | Group: 10A.async | Branch: feature/m6-async-infra | Planned: Day 27 | Expected: Day 33) - Commit message: "feat(async): add async command execution and workers"** +- [ ] **COMMIT (Owner: Luis | Group: 10A.async | Branch: feature/m6-async-infra | Planned: Day 27 | Expected: Day 36) - Commit message: "feat(async): add async command execution and workers"** - [ ] Git [Luis]: `git checkout master` - [ ] 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). @@ -5115,10 +5194,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Git [Luis]: `git commit -m "feat(async): add async command execution and workers"` - [ ] Git [Luis]: `git push -u origin feature/m6-async-infra` - [ ] Forgejo PR [Luis]: Open PR from `feature/m6-async-infra` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Luis | Group: 10A.retry | Branch: feature/m6-async-infra | Planned: Day 28 | Expected: Day 34) - Commit message: "feat(async): wire retry policies into services"** +- [ ] **COMMIT (Owner: Luis | Group: 10A.retry | Branch: feature/m6-async-infra | Planned: Day 28 | Expected: Day 37) - 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. @@ -5183,10 +5263,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [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%. — verified 97% on develop-brent-2 (4437 scenarios, 515 robot tests) on 2026-02-20 - [X] Quality [Brent]: Run `nox` (all default sessions, including benchmark), fix any errors if needed ensuring nox passes across **entire** code base, do not ignore any failure even if it seems unrelated to this commit, fix it. — all nox sessions pass on develop-brent-2 (lint, typecheck, unit_tests, integration_tests, coverage_report) on 2026-02-20 - [X] Forgejo PR [Brent]: Open PR from `feature/m6-validation-edge` to `master` with a suitable and thorough description. — merged to master via develop-brent-2 PR #132 on 2026-02-20 -- [ ] **COMMIT (Owner: Luis | Group: 10C.semantic | Branch: feature/m6-validation-semantic | Planned: Day 25 | Expected: Day 28) - Commit message: "test(validation): add semantic validation suites"** +- [ ] **COMMIT (Owner: Luis | Group: 10C.semantic | Branch: feature/m6-validation-semantic | Planned: Day 25 | Expected: Day 31) - 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). @@ -5231,10 +5312,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]** -- [ ] **COMMIT (Owner: Luis | Group: SEC1.eval | Branch: feature/m4-security-eval | Planned: Day 11 | Expected: Day 25) - Commit message: "fix(security): remove eval-based config parsing"** +- [ ] **COMMIT (Owner: Luis | Group: SEC1.eval | Branch: feature/m4-security-eval | Planned: Day 11 | Expected: Day 26) - 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. @@ -5251,10 +5333,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-security-eval` to `master` with description "Remove eval-based config parsing and add security checks.". (Code review by Brent still pending) **Parallel Group SEC2: Template Injection Prevention [Luis]** -- [ ] **COMMIT (Owner: Luis | Group: SEC2.template | Branch: feature/m4-security-template | Planned: Day 11 | Expected: Day 25) - Commit message: "fix(security): harden template rendering"** +- [ ] **COMMIT (Owner: Luis | Group: SEC2.template | Branch: feature/m4-security-template | Planned: Day 11 | Expected: Day 26) - 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. @@ -5272,10 +5355,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-security-template` to `master` with a suitable and thorough description **Parallel Group SEC3: Exception Handling Audit [Luis]** -- [ ] **COMMIT (Owner: Luis | Group: SEC3.exceptions | Branch: feature/m4-security-exceptions | Planned: Day 12 | Expected: Day 25) - Commit message: "fix(security): enforce explicit exception handling"** +- [ ] **COMMIT (Owner: Luis | Group: SEC3.exceptions | Branch: feature/m4-security-exceptions | Planned: Day 12 | Expected: Day 26) - 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. @@ -5293,10 +5377,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-security-exceptions` to `master` with a suitable and thorough description **Parallel Group SEC4: Async Lifecycle Correctness [Luis]** -- [ ] **COMMIT (Owner: Luis | Group: SEC4.async | Branch: feature/m4-security-async-cleanup | Planned: Day 12 | Expected: Day 25) - Commit message: "fix(security): close async resources and leaks"** +- [ ] **COMMIT (Owner: Luis | Group: SEC4.async | Branch: feature/m4-security-async-cleanup | Planned: Day 12 | Expected: Day 26) - 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. @@ -5339,10 +5424,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [x] Git [Hamza]: Branch kept for PR review (not deleted yet) **Parallel Group SEC6: Read-Only Enforcement [Luis]** -- [ ] **COMMIT (Owner: Luis | Group: SEC6.readonly | Branch: feature/m4-security-readonly | Planned: Day 13 | Expected: Day 15) - Commit message: "feat(security): enforce read-only actions"** +- [ ] **COMMIT (Owner: Luis | Group: SEC6.readonly | Branch: feature/m4-security-readonly | Planned: Day 13 | Expected: Day 26) - 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. @@ -5390,10 +5476,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is **Target: Days 8-12** **Parallel Group PROV1: Provider Fixes [Luis]** -- [ ] **COMMIT (Owner: Luis | Group: PROV1.fixes | Branch: feature/m4-provider-fixes | Planned: Day 8 | Expected: Day 10) - Commit message: "fix(provider): remove FakeListLLM defaults"** +- [ ] **COMMIT (Owner: Luis | Group: PROV1.fixes | Branch: feature/m4-provider-fixes | Planned: Day 8 | Expected: Day 26) - 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. @@ -5413,10 +5500,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-provider-fixes` to `master` with a suitable and thorough description **Parallel Group PROV2: Cost Controls & Fallback [Luis]** -- [ ] **COMMIT (Owner: Luis | Group: PROV2.costs | Branch: feature/m4-provider-costs | Planned: Day 10 | Expected: Day 12) - Commit message: "feat(provider): add cost controls and fallback"** +- [ ] **COMMIT (Owner: Luis | Group: PROV2.costs | Branch: feature/m4-provider-costs | Planned: Day 10 | Expected: Day 26) - 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. @@ -5468,10 +5556,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is **PARALLEL SUBTRACK CLI1.beta [Brent]**: Extended CLI tests + output snapshots **SEQUENTIAL MERGE NOTE**: CLI1.alpha depends on A6 automation profiles + D2 invariants; CLI1.beta runs after CLI1.alpha. -- [ ] **COMMIT (Owner: Jeff | Group: CLI1.alpha | Branch: feature/m4-cli-extensions | Planned: Day 11 | Expected: Day 13) - Commit message: "feat(cli): add action and plan CLI extensions"** +- [ ] **COMMIT (Owner: Jeff | Group: CLI1.alpha | Branch: feature/m4-cli-extensions | Planned: Day 11 | Expected: Day 26) - Commit message: "feat(cli): add action and plan CLI extensions"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m4-cli-extensions` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Add `--automation-profile` and `--invariant` flags to `plan use` and persist to plan metadata. - [ ] Code [Jeff]: Add actor override flags (`--strategy-actor`, `--execution-actor`, `--estimation-actor`, `--invariant-actor`) with namespaced validation. - [ ] Code [Jeff]: Update `plan status/list` output to include automation_profile + invariants when present. @@ -5487,10 +5576,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Git [Jeff]: `git push -u origin feature/m4-cli-extensions` - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-cli-extensions` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Brent | Group: CLI1.beta | Branch: feature/m4-cli-extension-tests | Planned: Day 12 | Expected: Day 14) - Commit message: "test(cli): cover action and plan extensions"** +- [ ] **COMMIT (Owner: Brent | Group: CLI1.beta | Branch: feature/m4-cli-extension-tests | Planned: Day 12 | Expected: Day 26) - Commit message: "test(cli): cover action and plan extensions"** - [ ] Git [Brent]: `git checkout master` - [ ] Git [Brent]: `git pull origin master` - [ ] Git [Brent]: `git checkout -b feature/m4-cli-extension-tests` + - [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Tests (Behave) [Brent]: Add scenarios for automation_profile resolution, invariant ordering, and actor override errors. - [ ] Tests (Behave) [Brent]: Add output snapshot assertions for extended fields in JSON/YAML/table formats. - [ ] Tests (Robot) [Brent]: Add Robot test that validates `action show` includes optional actors/invariants when set. @@ -5508,10 +5598,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is ### Section 14: Concurrency & Cleanup [Days 12-14] **Parallel Group CONC1: Plan Locking [Luis]** -- [ ] **COMMIT (Owner: Luis | Group: CONC1.lock | Branch: feature/m4-concurrency-locks | Planned: Day 12 | Expected: Day 14) - Commit message: "feat(concurrency): add plan and project locks"** +- [ ] **COMMIT (Owner: Luis | Group: CONC1.lock | Branch: feature/m4-concurrency-locks | Planned: Day 12 | Expected: Day 26) - 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. @@ -5532,10 +5623,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-concurrency-locks` to `master` with a suitable and thorough description **Parallel Group CONC2: Resumable Execution [Luis]** -- [ ] **COMMIT (Owner: Luis | Group: CONC2.resume | Branch: feature/m4-concurrency-resume | Planned: Day 13 | Expected: Day 15) - Commit message: "feat(concurrency): add plan resume"** +- [ ] **COMMIT (Owner: Luis | Group: CONC2.resume | Branch: feature/m4-concurrency-resume | Planned: Day 13 | Expected: Day 26) - 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. @@ -5585,10 +5677,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]** -- [ ] **COMMIT (Owner: Hamza | Group: ACMS1.uko | Branch: feature/m6-acms-uko-schema | Planned: Day 26 | Expected: Day 29) - Commit message: "feat(uko): add UKO ontology scaffolding"** +- [ ] **COMMIT (Owner: Hamza | Group: ACMS1.uko | Branch: feature/m6-acms-uko-schema | Planned: Day 26 | Expected: Day 31) - Commit message: "feat(uko): add UKO ontology scaffolding"** - [ ] Git [Hamza]: `git checkout master` - [ ] Git [Hamza]: `git pull origin master` - [ ] Git [Hamza]: `git checkout -b feature/m6-acms-uko-schema` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Add UKO Layer 0-3 ontology skeleton (RDF/TTL) under `docs/ontology/uko.ttl` with version headers. - [ ] Code [Hamza]: Define base URI, version IRI, and prefix conventions for layers and language-specific nodes. - [ ] Code [Hamza]: Add minimal Layer 0 nodes (Resource, Artifact, CodeArtifact, Document) to allow end-to-end parsing. @@ -5609,10 +5702,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-acms-uko-schema` to `master` with a suitable and thorough description **Parallel Group ACMS2: Context Request Protocol [Jeff]** (depends on ACMS1 + CTX1) -- [ ] **COMMIT (Owner: Jeff | Group: ACMS2.crp | Branch: feature/m6-acms-crp-models | Planned: Day 27 | Expected: Day 29) - Commit message: "feat(acms): add context request protocol models"** +- [ ] **COMMIT (Owner: Jeff | Group: ACMS2.crp | Branch: feature/m6-acms-crp-models | Planned: Day 27 | Expected: Day 31) - Commit message: "feat(acms): add context request protocol models"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m6-acms-crp-models` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Add `ContextRequest`, `ContextFragment`, `DetailLevel`, and `ContextBudget` models with validation. - [ ] Code [Jeff]: Add built-in `builtin/context` skill with tools `request_context`, `query_history`, and `get_context_budget` (stubbed to ACMS). - [ ] Code [Jeff]: Add `ContextRequest` fields for `focus`, `breadth`, `depth`, `strategy`, `temporal_scope`, and `skeleton_ratio` with defaulting rules. @@ -5632,10 +5726,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-acms-crp-models` to `master` with a suitable and thorough description **Parallel Group ACMS3: Context Strategies & Registry [Hamza]** (depends on CTX1/CTX2) -- [ ] **COMMIT (Owner: Hamza | Group: ACMS3.strategy | Branch: feature/m6-acms-strategy-registry | Planned: Day 27 | Expected: Day 29) - Commit message: "feat(acms): add context strategy registry"** +- [ ] **COMMIT (Owner: Hamza | Group: ACMS3.strategy | Branch: feature/m6-acms-strategy-registry | Planned: Day 27 | Expected: Day 31) - Commit message: "feat(acms): add context strategy registry"** - [ ] Git [Hamza]: `git checkout master` - [ ] Git [Hamza]: `git pull origin master` - [ ] Git [Hamza]: `git checkout -b feature/m6-acms-strategy-registry` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Define `ContextStrategy` interface and StrategyRegistry with plugin discovery. - [ ] Code [Hamza]: Add stub strategies (keyword, semantic, graph, temporal) with feature flags and no-op defaults. - [ ] Code [Hamza]: Add `ContextStrategyResult` model (fragments, stats, errors) with deterministic ordering. @@ -5655,10 +5750,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-acms-strategy-registry` to `master` with a suitable and thorough description **Parallel Group ACMS4: Strategy Coordinator & Fusion Engine [Jeff]** (depends on ACMS2/ACMS3) -- [ ] **COMMIT (Owner: Jeff | Group: ACMS4.fusion | Branch: feature/m6-acms-fusion-engine | Planned: Day 28 | Expected: Day 30) - Commit message: "feat(acms): add strategy coordinator and fusion engine"** +- [ ] **COMMIT (Owner: Jeff | Group: ACMS4.fusion | Branch: feature/m6-acms-fusion-engine | Planned: Day 28 | Expected: Day 31) - Commit message: "feat(acms): add strategy coordinator and fusion engine"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m6-acms-fusion-engine` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement StrategyCoordinator with parallel execution and budget allocation. - [ ] Code [Jeff]: Implement FusionEngine to dedupe fragments, resolve detail conflicts, and pack within budget. - [ ] Code [Jeff]: Allocate budget proportionally by strategy confidence and enforce per-strategy max caps. @@ -5678,10 +5774,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Forgejo PR [Jeff]: Open PR from `feature/m6-acms-fusion-engine` to `master` with a suitable and thorough description **Parallel Group ACMS5: Scoped Backend Views [Hamza]** (depends on B2.project + CTX1) -- [ ] **COMMIT (Owner: Hamza | Group: ACMS5.scoped | Branch: feature/m6-acms-scoped-view | Planned: Day 28 | Expected: Day 30) - Commit message: "feat(acms): add scoped backend view filtering"** +- [ ] **COMMIT (Owner: Hamza | Group: ACMS5.scoped | Branch: feature/m6-acms-scoped-view | Planned: Day 28 | Expected: Day 31) - Commit message: "feat(acms): add scoped backend view filtering"** - [ ] Git [Hamza]: `git checkout master` - [ ] Git [Hamza]: `git pull origin master` - [ ] Git [Hamza]: `git checkout -b feature/m6-acms-scoped-view` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Implement ScopedBackendView that filters text/vector/graph queries to project resources. - [ ] Code [Hamza]: Add enforcement hooks in context retrieval services and StrategyCoordinator. - [ ] Code [Hamza]: Add allowlist/denylist resolution for resource scopes using project resource links and aliases. @@ -5701,10 +5798,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Forgejo PR [Hamza]: Open PR from `feature/m6-acms-scoped-view` to `master` with a suitable and thorough description **Parallel Group ACMS6: Skeleton Compression [Jeff]** (depends on ACMS4 + G4 context tiers) -- [ ] **COMMIT (Owner: Jeff | Group: ACMS6.skeleton | Branch: feature/m6-acms-skeleton-compress | Planned: Day 29 | Expected: Day 30) - Commit message: "feat(acms): add skeleton compressor"** +- [ ] **COMMIT (Owner: Jeff | Group: ACMS6.skeleton | Branch: feature/m6-acms-skeleton-compress | Planned: Day 29 | Expected: Day 31) - Commit message: "feat(acms): add skeleton compressor"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m6-acms-skeleton-compress` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement skeleton compressor that produces compressed inherited context with `skeleton_ratio`. - [ ] Code [Jeff]: Integrate skeleton output into subplan context inheritance and strategy coordinator budgets. - [ ] Code [Jeff]: Add stable ordering for compressed fragments to avoid non-deterministic context payloads. @@ -5728,10 +5826,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is ### Section 16: Context Indexing [Days 15-17] **Parallel Group CTX1: Repository Indexing [Hamza]** -- [ ] **COMMIT (Owner: Hamza | Group: CTX1.index | Branch: feature/m4-context-indexing | Planned: Day 15 | Expected: Day 17) - Commit message: "feat(context): add repo indexing service"** +- [ ] **COMMIT (Owner: Hamza | Group: CTX1.index | Branch: feature/m4-context-indexing | Planned: Day 15 | Expected: Day 26) - Commit message: "feat(context): add repo indexing service"** - [ ] Git [Hamza]: `git checkout master` - [ ] Git [Hamza]: `git pull origin master` - [ ] Git [Hamza]: `git checkout -b feature/m4-context-indexing` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Implement indexing service with file tree, language detection, and incremental refresh. - [ ] Code [Hamza]: Add index metadata table (resource_id, indexed_at, file_count, token_estimate). - [ ] Code [Hamza]: Enforce max file size and total size limits from project context policy. @@ -5753,10 +5852,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Forgejo PR [Hamza]: Open PR from `feature/m4-context-indexing` to `master` with a suitable and thorough description **Parallel Group CTX2: Embedding Index [Hamza]** -- [ ] **COMMIT (Owner: Hamza | Group: CTX2.embedding | Branch: feature/m4-context-embedding | Planned: Day 16 | Expected: Day 18) - Commit message: "feat(context): add optional embedding search"** +- [ ] **COMMIT (Owner: Hamza | Group: CTX2.embedding | Branch: feature/m4-context-embedding | Planned: Day 16 | Expected: Day 26) - Commit message: "feat(context): add optional embedding search"** - [ ] Git [Hamza]: `git checkout master` - [ ] Git [Hamza]: `git pull origin master` - [ ] Git [Hamza]: `git checkout -b feature/m4-context-embedding` + - [ ] Git [Hamza]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Hamza]: Add embedding-based search with opt-in flag and fallback to full-text search. - [ ] Code [Hamza]: Add embedding index metadata and cache invalidation on repo updates. - [ ] Code [Hamza]: Add embedding provider abstraction (model name, batch size, rate limit) with local-only default. @@ -5790,10 +5890,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is **PARALLEL SUBTRACK SK4.refresh [Aditya]**: MCP refresh hooks and dynamic updates **SEQUENTIAL MERGE NOTE**: SK2.persistence must land before SK1.core + SK3.cli to avoid schema mismatches; SK4.refresh depends on C7.mcp and can land after SK1.core. -- [ ] **COMMIT (Owner: Jeff | Group: SK1.core | Branch: feature/m4-skill-registry-core | Planned: Day 18 | Expected: Day 19) - Commit message: "feat(skill): add registry flattening and capability summaries"** +- [ ] **COMMIT (Owner: Jeff | Group: SK1.core | Branch: feature/m4-skill-registry-core | Planned: Day 18 | Expected: Day 26) - Commit message: "feat(skill): add registry flattening and capability summaries"** - [ ] Git [Jeff]: `git checkout master` - [ ] Git [Jeff]: `git pull origin master` - [ ] Git [Jeff]: `git checkout -b feature/m4-skill-registry-core` + - [ ] Git [Jeff]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Jeff]: Implement skill flattening that resolves `includes`, named tool refs, and anonymous inline tools into a deterministic flattened list. - [ ] Code [Jeff]: Detect include cycles and emit a clear error listing the cycle path (`skillA -> skillB -> skillA`). - [ ] Code [Jeff]: Implement per-tool override merging (shallow merge) with explicit disallow list for non-overridable fields. @@ -5813,10 +5914,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Git [Jeff]: `git push -u origin feature/m4-skill-registry-core` - [ ] Forgejo PR [Jeff]: Open PR from `feature/m4-skill-registry-core` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Luis | Group: SK2.persistence | Branch: feature/m4-skill-registry-db | Planned: Day 17 | Expected: Day 18) - Commit message: "feat(skill): persist flattened tool sets"** +- [ ] **COMMIT (Owner: Luis | Group: SK2.persistence | Branch: feature/m4-skill-registry-db | Planned: Day 17 | Expected: Day 26) - Commit message: "feat(skill): persist flattened tool sets"** - [ ] Git [Luis]: `git checkout master` - [ ] Git [Luis]: `git pull origin master` - [ ] Git [Luis]: `git checkout -b feature/m4-skill-registry-db` + - [ ] Git [Luis]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Luis]: Add migration fields/tables to store `flattened_tools_json`, `includes_json`, and `capability_summary_json` for each skill. - [ ] Code [Luis]: Persist original skill YAML text and computed flattening hash for refresh invalidation. - [ ] Code [Luis]: Extend SkillRepository to read/write flattened tool sets and invalidate cached summaries on update. @@ -5834,10 +5936,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Git [Luis]: `git push -u origin feature/m4-skill-registry-db` - [ ] Forgejo PR [Luis]: Open PR from `feature/m4-skill-registry-db` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Aditya | Group: SK3.cli | Branch: feature/m4-skill-registry-cli | Planned: Day 18 | Expected: Day 19) - Commit message: "feat(cli): add skill tools and refresh commands"** +- [ ] **COMMIT (Owner: Aditya | Group: SK3.cli | Branch: feature/m4-skill-registry-cli | Planned: Day 18 | Expected: Day 26) - Commit message: "feat(cli): add skill tools and refresh commands"** - [ ] Git [Aditya]: `git checkout master` - [ ] Git [Aditya]: `git pull origin master` - [ ] Git [Aditya]: `git checkout -b feature/m4-skill-registry-cli` + - [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Aditya]: Add `agents skill tools ` to show flattened tool list and capability summary. - [ ] Code [Aditya]: Add `agents skill refresh |--all` to recompute flattening and sync MCP-backed skills. - [ ] Code [Aditya]: Update `skill list/show` output with includes, tool counts, and capability summary fields. @@ -5855,10 +5958,11 @@ By Day 30, the system must be able to (all in LOCAL MODE, server connectivity is - [ ] Git [Aditya]: `git push -u origin feature/m4-skill-registry-cli` - [ ] Forgejo PR [Aditya]: Open PR from `feature/m4-skill-registry-cli` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Aditya | Group: SK4.refresh | Branch: feature/m4-skill-registry-refresh | Planned: Day 19 | Expected: Day 20) - Commit message: "feat(skill): add MCP refresh hooks"** +- [ ] **COMMIT (Owner: Aditya | Group: SK4.refresh | Branch: feature/m4-skill-registry-refresh | Planned: Day 19 | Expected: Day 26) - Commit message: "feat(skill): add MCP refresh hooks"** - [ ] Git [Aditya]: `git checkout master` - [ ] Git [Aditya]: `git pull origin master` - [ ] Git [Aditya]: `git checkout -b feature/m4-skill-registry-refresh` + - [ ] Git [Aditya]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Code [Aditya]: Implement `SkillRegistry.refresh(name)` and `refresh_all()` to recompute flattened tool sets on demand. - [ ] Code [Aditya]: Wire MCP `notifications/tools/list_changed` to trigger skill refresh and registry cache invalidation. - [ ] Code [Aditya]: Add safeguard to skip refresh when tool registry is unavailable; emit a single warning with recovery steps. @@ -5882,10 +5986,11 @@ 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. -- [ ] **COMMIT (Owner: Hamza | Group: POST.resource-types.virtual-core | Branch: feature/post-resource-types-virtual-core | Planned: Day 31 | Expected: Day 36) - Commit message: "feat(resource): add virtual core resource types"** +- [ ] **COMMIT (Owner: Hamza | Group: POST.resource-types.virtual-core | Branch: feature/post-resource-types-virtual-core | Planned: Day 31 | Expected: Day 39) - Commit message: "feat(resource): add virtual core resource types"** - [ ] Git [Hamza]: `git checkout master` - [ ] Git [Hamza]: `git pull origin master` - [ ] Git [Hamza]: `git checkout -b feature/post-resource-types-virtual-core` + - [ ] 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 `examples/resource-types/`: `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 equivalence metadata fields (content hash/name/permissions for `file`/`directory`; git object identity for `commit`/`branch`/`tag`/`tree`). @@ -5901,10 +6006,11 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Git [Hamza]: `git push -u origin feature/post-resource-types-virtual-core` - [ ] Forgejo PR [Hamza]: Open PR from `feature/post-resource-types-virtual-core` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Hamza | Group: POST.resource-types.physical | Branch: feature/post-resource-types-physical | Planned: Day 32 | Expected: Day 37) - Commit message: "feat(resource): add deferred physical resource types"** +- [ ] **COMMIT (Owner: Hamza | Group: POST.resource-types.physical | Branch: feature/post-resource-types-physical | Planned: Day 32 | Expected: Day 40) - 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. @@ -5919,10 +6025,11 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Git [Hamza]: `git push -u origin feature/post-resource-types-physical` - [ ] Forgejo PR [Hamza]: Open PR from `feature/post-resource-types-physical` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Hamza | Group: POST.resource-types.virtual | Branch: feature/post-resource-types-virtual | Planned: Day 33 | Expected: Day 38) - Commit message: "feat(resource): add deferred virtual resource types"** +- [ ] **COMMIT (Owner: Hamza | Group: POST.resource-types.virtual | Branch: feature/post-resource-types-virtual | Planned: Day 33 | Expected: Day 41) - 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. @@ -5936,10 +6043,11 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Git [Hamza]: `git push -u origin feature/post-resource-types-virtual` - [ ] Forgejo PR [Hamza]: Open PR from `feature/post-resource-types-virtual` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Luis | Group: POST.safety-profile | Branch: feature/post-safety-profile | Planned: Day 32 | Expected: Day 37) - Commit message: "feat(security): add safety profile model and enforcement stubs"** +- [ ] **COMMIT (Owner: Luis | Group: POST.safety-profile | Branch: feature/post-safety-profile | Planned: Day 32 | Expected: Day 40) - 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. @@ -5954,10 +6062,11 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Git [Luis]: `git push -u origin feature/post-safety-profile` - [ ] Forgejo PR [Luis]: Open PR from `feature/post-safety-profile` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Brent | Group: POST.safety-profile-tests | Branch: feature/post-safety-profile-tests | Planned: Day 33 | Expected: Day 38) - Commit message: "test(security): cover safety profile enforcement"** +- [ ] **COMMIT (Owner: Brent | Group: POST.safety-profile-tests | Branch: feature/post-safety-profile-tests | Planned: Day 33 | Expected: Day 41) - Commit message: "test(security): cover safety profile enforcement"** - [ ] Git [Brent]: `git checkout master` - [ ] Git [Brent]: `git pull origin master` - [ ] Git [Brent]: `git checkout -b feature/post-safety-profile-tests` + - [ ] Git [Brent]: `git fetch origin && git merge origin/master` (run before final tests and before commit) - [ ] Tests (Behave) [Brent]: Add scenarios for safety profile allow/deny rules and missing profile errors (stub enforcement expected). - [ ] Tests (Behave) [Brent]: Add scenarios for cost/retry bounds validation on action creation. - [ ] Tests (Robot) [Brent]: Add Robot test that verifies safety profile appears in `action show` output. @@ -5970,10 +6079,11 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Git [Brent]: `git push -u origin feature/post-safety-profile-tests` - [ ] Forgejo PR [Brent]: Open PR from `feature/post-safety-profile-tests` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Hamza | Group: POST.resource | Branch: feature/m7-post-resource-equivalence | Planned: Day 34 | Expected: Day 39) - Commit message: "feat(resource): add virtual resource equivalence tracking"** +- [ ] **COMMIT (Owner: Hamza | Group: POST.resource | Branch: feature/m7-post-resource-equivalence | Planned: Day 34 | Expected: Day 42) - 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. @@ -5993,10 +6103,11 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Git [Hamza]: `git push -u origin feature/m7-post-resource-equivalence` - [ ] Forgejo PR [Hamza]: Open PR from `feature/m7-post-resource-equivalence` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Luis | Group: POST.server | Branch: feature/m7-post-server | Planned: Day 35 | Expected: Day 40) - Commit message: "feat(client): add server http client"** +- [ ] **COMMIT (Owner: Luis | Group: POST.server | Branch: feature/m7-post-server | Planned: Day 35 | Expected: Day 43) - 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. @@ -6016,10 +6127,11 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Git [Luis]: `git push -u origin feature/m7-post-server` - [ ] Forgejo PR [Luis]: Open PR from `feature/m7-post-server` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Luis | Group: POST.server | Branch: feature/m7-post-server | Planned: Day 36 | Expected: Day 41) - Commit message: "feat(client): add plan sync and remote execution"** +- [ ] **COMMIT (Owner: Luis | Group: POST.server | Branch: feature/m7-post-server | Planned: Day 36 | Expected: Day 44) - 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. @@ -6038,10 +6150,11 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Git [Luis]: `git push -u origin feature/m7-post-server` - [ ] Forgejo PR [Luis]: Open PR from `feature/m7-post-server` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Luis | Group: POST.server | Branch: feature/m7-post-server | Planned: Day 37 | Expected: Day 42) - Commit message: "feat(client): add websocket updates"** +- [ ] **COMMIT (Owner: Luis | Group: POST.server | Branch: feature/m7-post-server | Planned: Day 37 | Expected: Day 45) - 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. @@ -6060,10 +6173,11 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Git [Luis]: `git push -u origin feature/m7-post-server` - [ ] Forgejo PR [Luis]: Open PR from `feature/m7-post-server` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Hamza | Group: POST.server | Branch: feature/m7-post-server | Planned: Day 38 | Expected: Day 43) - Commit message: "feat(client): add remote project support"** +- [ ] **COMMIT (Owner: Hamza | Group: POST.server | Branch: feature/m7-post-server | Planned: Day 38 | Expected: Day 46) - 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). @@ -6082,10 +6196,11 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Git [Hamza]: `git push -u origin feature/m7-post-server` - [ ] Forgejo PR [Hamza]: Open PR from `feature/m7-post-server` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Rui | Group: POST.repl | Branch: feature/m7-post-repl | Planned: Day 36 | Expected: Day 41) - Commit message: "feat(cli): add interactive repl"** +- [ ] **COMMIT (Owner: Rui | Group: POST.repl | Branch: feature/m7-post-repl | Planned: Day 36 | Expected: Day 44) - 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 (`!!`). @@ -6104,10 +6219,11 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Git [Rui]: `git push -u origin feature/m7-post-repl` - [ ] Forgejo PR [Rui]: Open PR from `feature/m7-post-repl` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Luis | Group: POST.auth | Branch: feature/m7-post-auth | Planned: Day 37 | Expected: Day 42) - Commit message: "feat(cli): add auth and team commands"** +- [ ] **COMMIT (Owner: Luis | Group: POST.auth | Branch: feature/m7-post-auth | Planned: Day 37 | Expected: Day 45) - 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). @@ -6126,10 +6242,11 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Git [Luis]: `git push -u origin feature/m7-post-auth` - [ ] Forgejo PR [Luis]: Open PR from `feature/m7-post-auth` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Jeff | Group: POST.tui | Branch: feature/m7-post-tui | Planned: Day 38 | Expected: Day 43) - Commit message: "feat(ui): add TUI/Web interface"** +- [ ] **COMMIT (Owner: Jeff | Group: POST.tui | Branch: feature/m7-post-tui | Planned: Day 38 | Expected: Day 46) - 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). @@ -6145,10 +6262,11 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Git [Jeff]: `git push -u origin feature/m7-post-tui` - [ ] Forgejo PR [Jeff]: Open PR from `feature/m7-post-tui` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Hamza | Group: POST.dbresources | Branch: feature/m7-post-resource-db | Planned: Day 39 | Expected: Day 44) - Commit message: "feat(resource): add database resources"** +- [ ] **COMMIT (Owner: Hamza | Group: POST.dbresources | Branch: feature/m7-post-resource-db | Planned: Day 39 | Expected: Day 47) - 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). @@ -6163,10 +6281,11 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Git [Hamza]: `git push -u origin feature/m7-post-resource-db` - [ ] Forgejo PR [Hamza]: Open PR from `feature/m7-post-resource-db` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Hamza | Group: POST.cloud | Branch: feature/m7-post-resource-cloud | Planned: Day 40 | Expected: Day 45) - Commit message: "feat(resource): add cloud infrastructure resources"** +- [ ] **COMMIT (Owner: Hamza | Group: POST.cloud | Branch: feature/m7-post-resource-cloud | Planned: Day 40 | Expected: Day 48) - 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). @@ -6181,10 +6300,11 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] Git [Hamza]: `git push -u origin feature/m7-post-resource-cloud` - [ ] Forgejo PR [Hamza]: Open PR from `feature/m7-post-resource-cloud` to `master` with a suitable and thorough description -- [ ] **COMMIT (Owner: Luis | Group: POST.permissions | Branch: feature/m7-post-permissions | Planned: Day 39 | Expected: Day 44) - Commit message: "feat(security): add permission system"** +- [ ] **COMMIT (Owner: Luis | Group: POST.permissions | Branch: feature/m7-post-permissions | Planned: Day 39 | Expected: Day 47) - 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. @@ -6203,6 +6323,7 @@ Deferred items remain planned but are not part of the 30-day MVP scope. - [ ] 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.