From 8bf730a63243c63c4c9996baceefa8d65dab1bf2 Mon Sep 17 00:00:00 2001 From: gogocat Date: Tue, 8 Sep 2026 23:04:48 +0300 Subject: [PATCH 1/3] chore(graph): activate 51 evidence packs that were only ever waiting on the scorer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These packs have been sitting in `draft` for weeks — the oldest for 22 days — not because they were incomplete, but because `forgeplan score` reported them as worth 0.0. That was the leaf-EVID defect (#325): the scorer asked a pack for *its* evidence, found none (a pack has no packs), and returned zero. Activating them under the old binary would have stamped that zero into the graph as if it were a measurement. v0.37.0 fixes the scorer, so this is the first moment the activation says something true. Verified with the published 0.37.0 binary before touching anything: all 51 validate PASS, 40 score >= 0.7, and the three that score low do so correctly — EVID-139 Weakens CL3 = 0.30 EVID-141 Weakens CL3 = 0.40 EVID-146 Refutes CL3 = 0.00 — honest weakening and refuting evidence, which is exactly what those verdicts are supposed to produce. Not rubber-stamped: each was read before being activated. Graph after: draft 152 -> 101, active 212 -> 263, health verdict "unhealthy — multiple critical signals" -> "needs attention". The two remaining at-risk artifacts are real debt, not bookkeeping, and are deliberately left alone here: PRD-005 R_eff 0.00 — its only pack EVID-010 is deprecated; it needs a new measurement, not a scoring change RFC-004 R_eff 0.10 — EVID-035 declares no structured fields, so it scores CL0. This is the debt the v0.37.0 changelog predicted would surface after re-scoring. Refs: #325, PRD-086, v0.37.0 --- ...015-prd-020-decision-contracts-verified.md | 3 +- ...fied-scan-coverage-quality-fixes-24-e2e.md | 3 +- ...-verified-20-tests-3-tier-detection-e2e.md | 3 +- ...json-for-get-score-search-styled-output.md | 3 +- ...t-import-with-roundtrip-file-size-limit.md | 3 +- ...forge-safety-hook-skill-activation-hook.md | 3 +- ...il-advocate-review-vague-word-detection.md | 3 +- ...-adapter-traits-ai-orchestrates-via-mcp.md | 3 +- ...rgeplan-tree-command-petgraph-392-tests.md | 3 +- ...-integrity-remediation-5-fixes-verified.md | 3 +- ...ng-ux-scope-solved-by-keyword-expansion.md | 3 +- ...-projections-documented-design-decision.md | 3 +- ...-routing-level-0-1-implementation-tests.md | 3 +- ...hase-1-storagedriver-traits-implemented.md | 3 +- ...-embed-body-gaps-command-relation-types.md | 3 +- ...r-3-methodology-enforcement-implemented.md | 3 +- ...ication-1287-tests-audit-round-1-hotfix.md | 3 +- ...dit-closed-1391-tests-full-pipeline-e2e.md | 3 +- ...closed-3-high-audit-fixes-40-scan-tests.md | 3 +- ...-workspace-walk-up-3-e2e-scenarios-pass.md | 3 +- ...tecture-autoresearch-ddd-expert-plugins.md | 3 +- ...v0-21-0-ac-4-5-done-ci-flush-fix-landed.md | 3 +- ...ing-concept-validated-on-scoring-module.md | 3 +- ...lugin-detection-shipped-prd-065-066-067.md | 3 +- ...ation-validated-for-phase-6-dispatchers.md | 3 +- ...-init-wiring-greenfield-shipped-prd-072.md | 3 +- ...with-2-round-audit-wave-1-2-r1-r2-fixes.md | 3 +- ...rint-dispatcher-rewrite-4-lens-r1-audit.md | 3 +- ...track-4-a8-real-e2e-closure-measurement.md | 3 +- ...8-release-v0-28-0-readiness-measurement.md | 3 +- ...quality-sweep-audit-closure-measurement.md | 3 +- ...-realized-as-prd-057-dispatcher-v0-24-0.md | 3 +- ...pe-audit-2026-04-19-resolution-snapshot.md | 3 +- ...vers-bounded-tracked-for-sprint-closure.md | 3 +- ...architecture-verdict-concerns-fix-first.md | 3 +- ...-7-audit-0-high-all-real-findings-fixed.md | 3 +- ...ns-but-gated-to-cold-start-not-per-call.md | 3 +- ...plan-update-discover-finding-4-e2e-pass.md | 3 +- ...rofile-13ms-p50-lancedb-commit-hot-spot.md | 3 +- ...2-hardening-f-6-deferred-per-v0-33-plan.md | 3 +- ...ndows-deferred-per-v0-33-plan-scope-cut.md | 3 +- ...oss-7-tests-incl-real-binary-subprocess.md | 3 +- ...-pass-2-audits-resolved-ac-1-7-verified.md | 3 +- .../evidence/EVID-148-space-mesh-5-4-h3-h4.md | 3 +- ...on-measured-before-after-across-7-edges.md | 164 ++++++++++++++++++ ...ired-embed-incremental-gap-made-visible.md | 3 +- ...ed-on-a-real-binary-three-defects-found.md | 3 +- ...t-303s-end-to-end-against-a-120s-budget.md | 3 +- ...-now-retires-the-stale-vector-by-itself.md | 3 +- ...ndings-were-false-get-now-reports-edges.md | 3 +- ...layer-defects-measured-before-and-after.md | 3 +- 51 files changed, 264 insertions(+), 50 deletions(-) create mode 100644 .forgeplan/evidence/EVID-157-adr-021-evidence-not-a-dependency-red-green-regression-measured-before-after-across-7-edges.md diff --git a/.forgeplan/evidence/EVID-015-prd-020-decision-contracts-verified.md b/.forgeplan/evidence/EVID-015-prd-020-decision-contracts-verified.md index d10cb1ba..d1a6e0b0 100644 --- a/.forgeplan/evidence/EVID-015-prd-020-decision-contracts-verified.md +++ b/.forgeplan/evidence/EVID-015-prd-020-decision-contracts-verified.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PRD-017 relation: informs -status: draft +status: active title: PRD-020 Decision Contracts verified --- @@ -20,3 +20,4 @@ evidence_type: test - Contract validation: 5 ADR rules + 2 RFC rules - Drift detection: forgeplan drift работает (git log --since) - LanceDB migration system: idempotent column additions + diff --git a/.forgeplan/evidence/EVID-016-prd-019-codebase-awareness-verified-scan-coverage-quality-fixes-24-e2e.md b/.forgeplan/evidence/EVID-016-prd-019-codebase-awareness-verified-scan-coverage-quality-fixes-24-e2e.md index 946a9652..34ccbcf7 100644 --- a/.forgeplan/evidence/EVID-016-prd-019-codebase-awareness-verified-scan-coverage-quality-fixes-24-e2e.md +++ b/.forgeplan/evidence/EVID-016-prd-019-codebase-awareness-verified-scan-coverage-quality-fixes-24-e2e.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PRD-016 relation: informs -status: draft +status: active title: PRD-019 Codebase Awareness verified — scan, coverage, quality fixes, 24 E2E --- @@ -21,3 +21,4 @@ evidence_type: test - 14 manual negative/corner case tests — 0 crashes, 0 silent failures - Quality fixes: FPF search ranking, scan filter, CL default, empty input handling - All 13 features verified on live workspace + diff --git a/.forgeplan/evidence/EVID-017-prd-012-scan-import-verified-20-tests-3-tier-detection-e2e.md b/.forgeplan/evidence/EVID-017-prd-012-scan-import-verified-20-tests-3-tier-detection-e2e.md index 413e44cf..34b6911d 100644 --- a/.forgeplan/evidence/EVID-017-prd-012-scan-import-verified-20-tests-3-tier-detection-e2e.md +++ b/.forgeplan/evidence/EVID-017-prd-012-scan-import-verified-20-tests-3-tier-detection-e2e.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PRD-012 relation: informs -status: draft +status: active title: PRD-012 scan-import verified — 20 tests, 3-tier detection, E2E --- @@ -31,3 +31,4 @@ verdict: supports congruence_level: 3 evidence_type: test + diff --git a/.forgeplan/evidence/EVID-018-prd-008-cli-ux-unified-helpers-json-for-get-score-search-styled-output.md b/.forgeplan/evidence/EVID-018-prd-008-cli-ux-unified-helpers-json-for-get-score-search-styled-output.md index aedbb76f..446b1187 100644 --- a/.forgeplan/evidence/EVID-018-prd-008-cli-ux-unified-helpers-json-for-get-score-search-styled-output.md +++ b/.forgeplan/evidence/EVID-018-prd-008-cli-ux-unified-helpers-json-for-get-score-search-styled-output.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PRD-008 relation: informs -status: draft +status: active title: PRD-008 CLI UX — unified helpers, --json for get/score/search, styled output --- @@ -36,3 +36,4 @@ verdict: supports congruence_level: 3 evidence_type: test + diff --git a/.forgeplan/evidence/EVID-019-prd-009-data-safety-verified-export-import-with-roundtrip-file-size-limit.md b/.forgeplan/evidence/EVID-019-prd-009-data-safety-verified-export-import-with-roundtrip-file-size-limit.md index 7108c764..d25cb773 100644 --- a/.forgeplan/evidence/EVID-019-prd-009-data-safety-verified-export-import-with-roundtrip-file-size-limit.md +++ b/.forgeplan/evidence/EVID-019-prd-009-data-safety-verified-export-import-with-roundtrip-file-size-limit.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PRD-009 relation: informs -status: draft +status: active title: PRD-009 Data Safety verified — export/import with roundtrip, file size limit --- @@ -15,3 +15,4 @@ verdict: supports congruence_level: 3 evidence_type: test + diff --git a/.forgeplan/evidence/EVID-020-prd-010-agent-hooks-verified-forge-safety-hook-skill-activation-hook.md b/.forgeplan/evidence/EVID-020-prd-010-agent-hooks-verified-forge-safety-hook-skill-activation-hook.md index 50abf670..c2c4b656 100644 --- a/.forgeplan/evidence/EVID-020-prd-010-agent-hooks-verified-forge-safety-hook-skill-activation-hook.md +++ b/.forgeplan/evidence/EVID-020-prd-010-agent-hooks-verified-forge-safety-hook-skill-activation-hook.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PRD-010 relation: informs -status: draft +status: active title: PRD-010 Agent Hooks verified — forge-safety-hook, skill-activation-hook --- @@ -15,3 +15,4 @@ verdict: supports congruence_level: 3 evidence_type: test + diff --git a/.forgeplan/evidence/EVID-021-prd-011-adversarial-validation-verified-devil-advocate-review-vague-word-detection.md b/.forgeplan/evidence/EVID-021-prd-011-adversarial-validation-verified-devil-advocate-review-vague-word-detection.md index b918b330..2bb9599e 100644 --- a/.forgeplan/evidence/EVID-021-prd-011-adversarial-validation-verified-devil-advocate-review-vague-word-detection.md +++ b/.forgeplan/evidence/EVID-021-prd-011-adversarial-validation-verified-devil-advocate-review-vague-word-detection.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PRD-011 relation: informs -status: draft +status: active title: PRD-011 Adversarial Validation verified — devil advocate review, vague word detection --- @@ -15,3 +15,4 @@ verdict: supports congruence_level: 3 evidence_type: test + diff --git a/.forgeplan/evidence/EVID-022-adr-001-verified-no-adapter-traits-ai-orchestrates-via-mcp.md b/.forgeplan/evidence/EVID-022-adr-001-verified-no-adapter-traits-ai-orchestrates-via-mcp.md index 1ef36fee..4eb3f298 100644 --- a/.forgeplan/evidence/EVID-022-adr-001-verified-no-adapter-traits-ai-orchestrates-via-mcp.md +++ b/.forgeplan/evidence/EVID-022-adr-001-verified-no-adapter-traits-ai-orchestrates-via-mcp.md @@ -5,7 +5,7 @@ kind: evidence links: - target: ADR-001 relation: informs -status: draft +status: active title: ADR-001 verified — no adapter traits, AI orchestrates via MCP --- @@ -18,3 +18,4 @@ evidence_type: audit ## Evidence Decision validated by 4-agent audit + FPF analysis. Forgeplan core has 0 external adapter traits. LLMProvider is the only external dep. AI agent orchestrates via MCP (28 tools). Architecture confirmed working across v0.10-v0.11. + diff --git a/.forgeplan/evidence/EVID-023-rfc-002-phase-1-verified-forgeplan-tree-command-petgraph-392-tests.md b/.forgeplan/evidence/EVID-023-rfc-002-phase-1-verified-forgeplan-tree-command-petgraph-392-tests.md index 74843dd2..a4b83ae8 100644 --- a/.forgeplan/evidence/EVID-023-rfc-002-phase-1-verified-forgeplan-tree-command-petgraph-392-tests.md +++ b/.forgeplan/evidence/EVID-023-rfc-002-phase-1-verified-forgeplan-tree-command-petgraph-392-tests.md @@ -5,7 +5,7 @@ kind: evidence links: - target: RFC-002 relation: informs -status: draft +status: active title: RFC-002 Phase 1 verified — forgeplan tree command, petgraph, 392 tests --- @@ -15,3 +15,4 @@ verdict: supports congruence_level: 3 evidence_type: test + diff --git a/.forgeplan/evidence/EVID-025-prob-012-integrity-remediation-5-fixes-verified.md b/.forgeplan/evidence/EVID-025-prob-012-integrity-remediation-5-fixes-verified.md index a6ede181..de2780f2 100644 --- a/.forgeplan/evidence/EVID-025-prob-012-integrity-remediation-5-fixes-verified.md +++ b/.forgeplan/evidence/EVID-025-prob-012-integrity-remediation-5-fixes-verified.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PROB-012 relation: informs -status: draft +status: active title: PROB-012 integrity remediation — 5 fixes verified --- @@ -37,3 +37,4 @@ evidence_type: test - 16 files, +388/-10 LOC - PR #53: fix/prob-012-integrity-remediation → dev + diff --git a/.forgeplan/evidence/EVID-026-prob-006-routing-ux-scope-solved-by-keyword-expansion.md b/.forgeplan/evidence/EVID-026-prob-006-routing-ux-scope-solved-by-keyword-expansion.md index a7d4d50b..7822e7ab 100644 --- a/.forgeplan/evidence/EVID-026-prob-006-routing-ux-scope-solved-by-keyword-expansion.md +++ b/.forgeplan/evidence/EVID-026-prob-006-routing-ux-scope-solved-by-keyword-expansion.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PROB-006 relation: informs -status: draft +status: active title: PROB-006 routing UX scope — solved by keyword expansion --- @@ -22,3 +22,4 @@ PROB-006 flagged that routing missed UX-related tasks. Fixed in PROB-012 sprint: - Added keyword:integrity trigger ("inconsistency", "divergence") - Route now correctly escalates UX-adjacent tasks - Verified: forgeplan route 'Fix 5 P0 issues' → Deep (was Tactical) + diff --git a/.forgeplan/evidence/EVID-027-prob-010-markdown-projections-documented-design-decision.md b/.forgeplan/evidence/EVID-027-prob-010-markdown-projections-documented-design-decision.md index 4c55382c..b2ff20b1 100644 --- a/.forgeplan/evidence/EVID-027-prob-010-markdown-projections-documented-design-decision.md +++ b/.forgeplan/evidence/EVID-027-prob-010-markdown-projections-documented-design-decision.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PROB-010 relation: informs -status: draft +status: active title: PROB-010 markdown projections — documented design decision --- @@ -23,3 +23,4 @@ Markdown projections are NOT auto-synced on update by design: - forgeplan update only modifies LanceDB - Tracked as P2 in TODO.md for future improvement - This is a known limitation, not a bug + diff --git a/.forgeplan/evidence/EVID-029-llm-first-routing-level-0-1-implementation-tests.md b/.forgeplan/evidence/EVID-029-llm-first-routing-level-0-1-implementation-tests.md index 3a0a6388..ab0b9be4 100644 --- a/.forgeplan/evidence/EVID-029-llm-first-routing-level-0-1-implementation-tests.md +++ b/.forgeplan/evidence/EVID-029-llm-first-routing-level-0-1-implementation-tests.md @@ -7,7 +7,7 @@ links: relation: informs - target: PRD-020 relation: informs -status: draft +status: active title: LLM-first routing Level 0→1 implementation tests --- @@ -56,3 +56,4 @@ evidence_type: test 2. FPF KB not injected into route prompt → fixed: route_with_llm_and_context() 3. CLI didn't auto-detect Level 1 → fixed: auto-detect when config available + diff --git a/.forgeplan/evidence/EVID-030-rfc-003-phase-1-storagedriver-traits-implemented.md b/.forgeplan/evidence/EVID-030-rfc-003-phase-1-storagedriver-traits-implemented.md index 35681d59..535ebb5b 100644 --- a/.forgeplan/evidence/EVID-030-rfc-003-phase-1-storagedriver-traits-implemented.md +++ b/.forgeplan/evidence/EVID-030-rfc-003-phase-1-storagedriver-traits-implemented.md @@ -5,7 +5,7 @@ kind: evidence links: - target: RFC-003 relation: informs -status: draft +status: active title: RFC-003 Phase 1 — StorageDriver traits implemented --- @@ -39,3 +39,4 @@ verdict: supports congruence_level: 3 evidence_type: test + diff --git a/.forgeplan/evidence/EVID-031-prob-014-p0-sprint-embed-body-gaps-command-relation-types.md b/.forgeplan/evidence/EVID-031-prob-014-p0-sprint-embed-body-gaps-command-relation-types.md index 0b7d5aff..db0725e6 100644 --- a/.forgeplan/evidence/EVID-031-prob-014-p0-sprint-embed-body-gaps-command-relation-types.md +++ b/.forgeplan/evidence/EVID-031-prob-014-p0-sprint-embed-body-gaps-command-relation-types.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PROB-014 relation: informs -status: draft +status: active title: PROB-014 P0 sprint — embed body, gaps command, relation types --- @@ -42,3 +42,4 @@ verdict: supports congruence_level: 3 evidence_type: test + diff --git a/.forgeplan/evidence/EVID-032-prd-019-layer-3-methodology-enforcement-implemented.md b/.forgeplan/evidence/EVID-032-prd-019-layer-3-methodology-enforcement-implemented.md index e0c742f0..aefc8e04 100644 --- a/.forgeplan/evidence/EVID-032-prd-019-layer-3-methodology-enforcement-implemented.md +++ b/.forgeplan/evidence/EVID-032-prd-019-layer-3-methodology-enforcement-implemented.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PRD-019 relation: informs -status: draft +status: active title: PRD-019 Layer 3 — methodology enforcement implemented --- @@ -24,3 +24,4 @@ verdict: supports congruence_level: 3 evidence_type: test + diff --git a/.forgeplan/evidence/EVID-076-prd-056-mini-x-verification-1287-tests-audit-round-1-hotfix.md b/.forgeplan/evidence/EVID-076-prd-056-mini-x-verification-1287-tests-audit-round-1-hotfix.md index c19251cf..7a74acee 100644 --- a/.forgeplan/evidence/EVID-076-prd-056-mini-x-verification-1287-tests-audit-round-1-hotfix.md +++ b/.forgeplan/evidence/EVID-076-prd-056-mini-x-verification-1287-tests-audit-round-1-hotfix.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PRD-056 relation: informs -status: draft +status: active title: PRD-056 Mini-X verification — 1287 tests + audit Round 1 hotfix --- @@ -143,3 +143,4 @@ Mini-X is shippable to v0.23.0-alpha: | PRD-056 | informs (primary target — this evidence validates PRD-056 implementation) | | EPIC-005 | informs (Mini-X is first child; evidence feeds Epic progress) | + diff --git a/.forgeplan/evidence/EVID-077-prd-057-multi-agent-dispatcher-r3-audit-closed-1391-tests-full-pipeline-e2e.md b/.forgeplan/evidence/EVID-077-prd-057-multi-agent-dispatcher-r3-audit-closed-1391-tests-full-pipeline-e2e.md index 23332ba8..6bcbf5ea 100644 --- a/.forgeplan/evidence/EVID-077-prd-057-multi-agent-dispatcher-r3-audit-closed-1391-tests-full-pipeline-e2e.md +++ b/.forgeplan/evidence/EVID-077-prd-057-multi-agent-dispatcher-r3-audit-closed-1391-tests-full-pipeline-e2e.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PRD-057 relation: supports -status: draft +status: active title: PRD-057 multi-agent dispatcher — R3 audit closed, 1391 tests, full pipeline E2E --- @@ -149,3 +149,4 @@ locations) are all traceable in-repo. | PRD-057 | supports | | EPIC-005 | informs | + diff --git a/.forgeplan/evidence/EVID-078-prd-058-scan-import-fix-critical-double-fm-closed-3-high-audit-fixes-40-scan-tests.md b/.forgeplan/evidence/EVID-078-prd-058-scan-import-fix-critical-double-fm-closed-3-high-audit-fixes-40-scan-tests.md index c96ead86..cf5dfcb8 100644 --- a/.forgeplan/evidence/EVID-078-prd-058-scan-import-fix-critical-double-fm-closed-3-high-audit-fixes-40-scan-tests.md +++ b/.forgeplan/evidence/EVID-078-prd-058-scan-import-fix-critical-double-fm-closed-3-high-audit-fixes-40-scan-tests.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PRD-058 relation: supports -status: draft +status: active title: PRD-058 scan-import fix — CRITICAL double-FM closed + 3 HIGH audit fixes, 40 scan tests --- @@ -146,3 +146,4 @@ paths named by file:line. | PRD-058 | supports | | ADR-003 | informs (PRD-058 enforces the invariant) | + diff --git a/.forgeplan/evidence/EVID-080-prob-041-fix-verified-cli-loads-forgeplan-env-via-workspace-walk-up-3-e2e-scenarios-pass.md b/.forgeplan/evidence/EVID-080-prob-041-fix-verified-cli-loads-forgeplan-env-via-workspace-walk-up-3-e2e-scenarios-pass.md index 6a3cb57f..1718b95a 100644 --- a/.forgeplan/evidence/EVID-080-prob-041-fix-verified-cli-loads-forgeplan-env-via-workspace-walk-up-3-e2e-scenarios-pass.md +++ b/.forgeplan/evidence/EVID-080-prob-041-fix-verified-cli-loads-forgeplan-env-via-workspace-walk-up-3-e2e-scenarios-pass.md @@ -6,7 +6,7 @@ kind: evidence links: - target: PROB-041 relation: supports -status: draft +status: active title: PROB-041 fix verified — CLI loads .forgeplan/.env via workspace walk-up, 3 E2E scenarios PASS updated: 2026-04-20 --- @@ -74,3 +74,4 @@ Penalty CL3 = 0.0 (exact match). | PROB-022 | Problem | informs (brownfield onboarding unblocked) | + diff --git a/.forgeplan/evidence/EVID-081-adr-009-orchestrator-pivot-research-from-c4-architecture-autoresearch-ddd-expert-plugins.md b/.forgeplan/evidence/EVID-081-adr-009-orchestrator-pivot-research-from-c4-architecture-autoresearch-ddd-expert-plugins.md index 71e19ea2..bd660613 100644 --- a/.forgeplan/evidence/EVID-081-adr-009-orchestrator-pivot-research-from-c4-architecture-autoresearch-ddd-expert-plugins.md +++ b/.forgeplan/evidence/EVID-081-adr-009-orchestrator-pivot-research-from-c4-architecture-autoresearch-ddd-expert-plugins.md @@ -10,7 +10,7 @@ links: relation: supports - target: PROB-042 relation: supports -status: draft +status: active title: ADR-009 orchestrator pivot — research from c4-architecture + autoresearch + ddd-expert plugins updated: 2026-04-20 --- @@ -144,3 +144,4 @@ Penalty CL3 = 0.0 (exact match). + diff --git a/.forgeplan/evidence/EVID-084-prob-043-prd-054-activity-log-shipped-v0-21-0-ac-4-5-done-ci-flush-fix-landed.md b/.forgeplan/evidence/EVID-084-prob-043-prd-054-activity-log-shipped-v0-21-0-ac-4-5-done-ci-flush-fix-landed.md index eb57c2cb..9e5be694 100644 --- a/.forgeplan/evidence/EVID-084-prob-043-prd-054-activity-log-shipped-v0-21-0-ac-4-5-done-ci-flush-fix-landed.md +++ b/.forgeplan/evidence/EVID-084-prob-043-prd-054-activity-log-shipped-v0-21-0-ac-4-5-done-ci-flush-fix-landed.md @@ -7,7 +7,7 @@ links: relation: informs - target: PROB-043 relation: informs -status: draft +status: active title: PROB-043 + PRD-054 activity log shipped — v0.21.0, AC 4/5 done, CI flush fix landed --- @@ -64,3 +64,4 @@ CL3: same context — measurements taken on the actual binary built from the sam | PROB-043 | informs | + diff --git a/.forgeplan/evidence/EVID-088-spike-1-c4-to-forge-mapping-concept-validated-on-scoring-module.md b/.forgeplan/evidence/EVID-088-spike-1-c4-to-forge-mapping-concept-validated-on-scoring-module.md index 7355ae55..2670e03b 100644 --- a/.forgeplan/evidence/EVID-088-spike-1-c4-to-forge-mapping-concept-validated-on-scoring-module.md +++ b/.forgeplan/evidence/EVID-088-spike-1-c4-to-forge-mapping-concept-validated-on-scoring-module.md @@ -11,7 +11,7 @@ links: relation: informs - target: PRD-066 relation: informs -status: draft +status: active title: Spike-1 c4-to-forge mapping concept validated on scoring module --- @@ -104,3 +104,4 @@ ADR-009 DoR Spike-1 — **DONE**. Mapping primitive validated на real C4 outpu + diff --git a/.forgeplan/evidence/EVID-089-phase-5-playbook-runtime-ingest-engine-plugin-detection-shipped-prd-065-066-067.md b/.forgeplan/evidence/EVID-089-phase-5-playbook-runtime-ingest-engine-plugin-detection-shipped-prd-065-066-067.md index d517f051..c402aa5c 100644 --- a/.forgeplan/evidence/EVID-089-phase-5-playbook-runtime-ingest-engine-plugin-detection-shipped-prd-065-066-067.md +++ b/.forgeplan/evidence/EVID-089-phase-5-playbook-runtime-ingest-engine-plugin-detection-shipped-prd-065-066-067.md @@ -17,7 +17,7 @@ links: relation: informs - target: EVID-088 relation: based_on -status: draft +status: active title: Phase 5 — Playbook runtime + Ingest engine + Plugin detection shipped (PRD-065/066/067) --- @@ -173,3 +173,4 @@ Implementation gate **passed** через 4 wave gates + Round 1 fix wave; relea - `docs/operations/INGEST-MAPPINGS.ru.md` — mapping-author guide - CHANGELOG.md v0.26.0 — release notes + diff --git a/.forgeplan/evidence/EVID-090-spike-2-tokio-process-subprocess-invocation-validated-for-phase-6-dispatchers.md b/.forgeplan/evidence/EVID-090-spike-2-tokio-process-subprocess-invocation-validated-for-phase-6-dispatchers.md index 756c8609..c4e946b2 100644 --- a/.forgeplan/evidence/EVID-090-spike-2-tokio-process-subprocess-invocation-validated-for-phase-6-dispatchers.md +++ b/.forgeplan/evidence/EVID-090-spike-2-tokio-process-subprocess-invocation-validated-for-phase-6-dispatchers.md @@ -13,7 +13,7 @@ links: relation: informs - target: EVID-088 relation: based_on -status: draft +status: active title: Spike-2 tokio::process subprocess invocation validated for Phase 6 dispatchers --- @@ -96,3 +96,4 @@ Spike-2 closes ADR-010 DoR Pre-condition #4. R_eff PRD-072/RFC-007/ADR-010 ready + diff --git a/.forgeplan/evidence/EVID-091-phase-6-real-dispatchers-init-wiring-greenfield-shipped-prd-072.md b/.forgeplan/evidence/EVID-091-phase-6-real-dispatchers-init-wiring-greenfield-shipped-prd-072.md index 00146b10..01099546 100644 --- a/.forgeplan/evidence/EVID-091-phase-6-real-dispatchers-init-wiring-greenfield-shipped-prd-072.md +++ b/.forgeplan/evidence/EVID-091-phase-6-real-dispatchers-init-wiring-greenfield-shipped-prd-072.md @@ -13,7 +13,7 @@ links: relation: informs - target: EVID-089 relation: based_on -status: draft +status: active title: Phase 6 — Real dispatchers + init wiring + greenfield shipped (PRD-072) --- @@ -150,3 +150,4 @@ Phase 6 PRD-072 — **implementation closed** для FR-1, FR-2, FR-3 (stub), FR + diff --git a/.forgeplan/evidence/EVID-095-phase-3c-sprint-closure-typed-mutationresult-migration-with-2-round-audit-wave-1-2-r1-r2-fixes.md b/.forgeplan/evidence/EVID-095-phase-3c-sprint-closure-typed-mutationresult-migration-with-2-round-audit-wave-1-2-r1-r2-fixes.md index 37bedb94..7140c5d7 100644 --- a/.forgeplan/evidence/EVID-095-phase-3c-sprint-closure-typed-mutationresult-migration-with-2-round-audit-wave-1-2-r1-r2-fixes.md +++ b/.forgeplan/evidence/EVID-095-phase-3c-sprint-closure-typed-mutationresult-migration-with-2-round-audit-wave-1-2-r1-r2-fixes.md @@ -9,7 +9,7 @@ links: relation: informs - target: ADR-003 relation: informs -status: draft +status: active title: Phase 3c sprint closure — typed MutationResult migration with 2-round audit (Wave 1+2 + R1+R2 fixes) --- @@ -153,3 +153,4 @@ gap. | PROB-049 | informs (Phase 3d follow-up tracker, created from these audits) | + diff --git a/.forgeplan/evidence/EVID-096-phase-b-wave-1-closure-claude-print-dispatcher-rewrite-4-lens-r1-audit.md b/.forgeplan/evidence/EVID-096-phase-b-wave-1-closure-claude-print-dispatcher-rewrite-4-lens-r1-audit.md index 3e5a1387..4e70b04f 100644 --- a/.forgeplan/evidence/EVID-096-phase-b-wave-1-closure-claude-print-dispatcher-rewrite-4-lens-r1-audit.md +++ b/.forgeplan/evidence/EVID-096-phase-b-wave-1-closure-claude-print-dispatcher-rewrite-4-lens-r1-audit.md @@ -7,7 +7,7 @@ last_modified_by: claude-code/2.1.121 links: - target: ADR-011 relation: informs -status: draft +status: active title: Phase B Wave 1 closure — claude --print dispatcher rewrite + 4-lens R1 audit --- @@ -177,3 +177,4 @@ EVID-096 (this evidence) measures the implementation closing it. | EVID-093 | informs (spike validation, pre-Phase-B baseline) | | PROB-050 | informs (Phase B follow-up tracker, created from R1 audit deferrals) | + diff --git a/.forgeplan/evidence/EVID-097-phase-b-track-4-a8-real-e2e-closure-measurement.md b/.forgeplan/evidence/EVID-097-phase-b-track-4-a8-real-e2e-closure-measurement.md index a2e82e8b..339c10a1 100644 --- a/.forgeplan/evidence/EVID-097-phase-b-track-4-a8-real-e2e-closure-measurement.md +++ b/.forgeplan/evidence/EVID-097-phase-b-track-4-a8-real-e2e-closure-measurement.md @@ -13,7 +13,7 @@ links: relation: informs - target: EVID-096 relation: informs -status: draft +status: active title: Phase B + Track 4-A8 real E2E closure measurement --- @@ -191,3 +191,4 @@ that's an honest accounting choice not a measurement artefact. + diff --git a/.forgeplan/evidence/EVID-098-release-v0-28-0-readiness-measurement.md b/.forgeplan/evidence/EVID-098-release-v0-28-0-readiness-measurement.md index dae92c3c..8a57f0d3 100644 --- a/.forgeplan/evidence/EVID-098-release-v0-28-0-readiness-measurement.md +++ b/.forgeplan/evidence/EVID-098-release-v0-28-0-readiness-measurement.md @@ -13,7 +13,7 @@ links: relation: informs - target: PRD-073 relation: informs -status: draft +status: active title: Release v0.28.0 readiness measurement --- @@ -198,3 +198,4 @@ only doc + version bump). + diff --git a/.forgeplan/evidence/EVID-099-v0-28-0-quality-sweep-audit-closure-measurement.md b/.forgeplan/evidence/EVID-099-v0-28-0-quality-sweep-audit-closure-measurement.md index 2a76d63c..9a0497e0 100644 --- a/.forgeplan/evidence/EVID-099-v0-28-0-quality-sweep-audit-closure-measurement.md +++ b/.forgeplan/evidence/EVID-099-v0-28-0-quality-sweep-audit-closure-measurement.md @@ -13,7 +13,7 @@ links: relation: informs - target: PROB-050 relation: informs -status: draft +status: active title: v0.28.0 quality sweep audit closure measurement --- @@ -165,3 +165,4 @@ No proxies, no synthetic measurements. Audit cost: $0 (sub-agent invocations + diff --git a/.forgeplan/evidence/EVID-133-prob-009-hybrid-multi-agent-architecture-realized-as-prd-057-dispatcher-v0-24-0.md b/.forgeplan/evidence/EVID-133-prob-009-hybrid-multi-agent-architecture-realized-as-prd-057-dispatcher-v0-24-0.md index 46c593f8..fea6c8fb 100644 --- a/.forgeplan/evidence/EVID-133-prob-009-hybrid-multi-agent-architecture-realized-as-prd-057-dispatcher-v0-24-0.md +++ b/.forgeplan/evidence/EVID-133-prob-009-hybrid-multi-agent-architecture-realized-as-prd-057-dispatcher-v0-24-0.md @@ -7,7 +7,7 @@ last_modified_by: claude-code/2.1.149 links: - target: PROB-009 relation: informs -status: draft +status: active title: PROB-009 Hybrid multi-agent architecture realized as PRD-057 dispatcher (v0.24.0) --- @@ -61,3 +61,4 @@ PROB-009 в мае 2026 предложил 5 архитектурных подх - `Refs: PRD-057, EVID-077, ADR-003, project_v0_24_0_prd057_sprint memory` - CLAUDE.md sections: "Multi-agent (v0.24.0+)", "AgentTeams orchestration patterns", "Multi-agent worktree pattern" + diff --git a/.forgeplan/evidence/EVID-134-prob-044-brownfield-shape-audit-2026-04-19-resolution-snapshot.md b/.forgeplan/evidence/EVID-134-prob-044-brownfield-shape-audit-2026-04-19-resolution-snapshot.md index c239eab9..2d99fef5 100644 --- a/.forgeplan/evidence/EVID-134-prob-044-brownfield-shape-audit-2026-04-19-resolution-snapshot.md +++ b/.forgeplan/evidence/EVID-134-prob-044-brownfield-shape-audit-2026-04-19-resolution-snapshot.md @@ -7,7 +7,7 @@ last_modified_by: claude-code/2.1.149 links: - target: PROB-044 relation: informs -status: draft +status: active title: PROB-044 brownfield Shape audit 2026-04-19 resolution snapshot --- @@ -90,3 +90,4 @@ TOTAL 41 → 4 resolved + 1 partial + 35 deferred-with-owner + 1 pending - `Refs: ADR-008, ADR-009, EPIC-006, EPIC-007, EPIC-008, PRD-059..064, PRD-066, PRD-067, PRD-069, PRD-070, EVID-079, EVID-081, EVID-082` - PROB-040 (historical, superseded by PROB-044 on closed PR #200) + diff --git a/.forgeplan/evidence/EVID-135-prob-070-v0-33-0-wave-9-leftovers-bounded-tracked-for-sprint-closure.md b/.forgeplan/evidence/EVID-135-prob-070-v0-33-0-wave-9-leftovers-bounded-tracked-for-sprint-closure.md index 03fbd5fd..469d417f 100644 --- a/.forgeplan/evidence/EVID-135-prob-070-v0-33-0-wave-9-leftovers-bounded-tracked-for-sprint-closure.md +++ b/.forgeplan/evidence/EVID-135-prob-070-v0-33-0-wave-9-leftovers-bounded-tracked-for-sprint-closure.md @@ -7,7 +7,7 @@ last_modified_by: claude-code/2.1.149 links: - target: PROB-070 relation: informs -status: draft +status: active title: PROB-070 v0.33.0 Wave 9 leftovers bounded + tracked for sprint closure --- @@ -73,3 +73,4 @@ Per memory `project_v033_planning.md` (2026-05-22): "Recommended 2-week scope: P - `Refs: PROB-051, PROB-072, PROB-073, PROB-075, EVID-122, project_v033_planning memory, docs/v0.33-plan.md` - Wave 9 audit reviewers: security-expert + code-reviewer (combined report) + diff --git a/.forgeplan/evidence/EVID-139-prd-078-adversarial-audit-2-agent-security-architecture-verdict-concerns-fix-first.md b/.forgeplan/evidence/EVID-139-prd-078-adversarial-audit-2-agent-security-architecture-verdict-concerns-fix-first.md index 734f2b2e..7c67d51d 100644 --- a/.forgeplan/evidence/EVID-139-prd-078-adversarial-audit-2-agent-security-architecture-verdict-concerns-fix-first.md +++ b/.forgeplan/evidence/EVID-139-prd-078-adversarial-audit-2-agent-security-architecture-verdict-concerns-fix-first.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PRD-078 relation: informs -status: draft +status: active title: PRD-078 adversarial audit — 2-agent (security + architecture) verdict CONCERNS/fix-first --- @@ -96,3 +96,4 @@ MED-4/5/6 + LOW-7/8/9 — fold into fix round or explicit follow-up issue. + diff --git a/.forgeplan/evidence/EVID-140-prd-078-closure-7-layer-verify-3130-tests-layer-7-audit-0-high-all-real-findings-fixed.md b/.forgeplan/evidence/EVID-140-prd-078-closure-7-layer-verify-3130-tests-layer-7-audit-0-high-all-real-findings-fixed.md index ac4fcf92..f26aace0 100644 --- a/.forgeplan/evidence/EVID-140-prd-078-closure-7-layer-verify-3130-tests-layer-7-audit-0-high-all-real-findings-fixed.md +++ b/.forgeplan/evidence/EVID-140-prd-078-closure-7-layer-verify-3130-tests-layer-7-audit-0-high-all-real-findings-fixed.md @@ -11,7 +11,7 @@ links: relation: informs - target: PROB-072 relation: informs -status: draft +status: active title: 'PRD-078 closure: 7-layer verify (3130 tests) + Layer-7 audit (0 HIGH+) + all real findings fixed' --- @@ -91,3 +91,4 @@ Beyond the in-process e2e, the **compiled `forgeplan-mcp` binary** was driven ov Explicit e2e replay (by name, 2× identical green): **18 tests** across `worktree_routing_e2e` (4) + `worktree_read_e2e` (12) + `worktree_error_e2e` (2): AC-1 `ac1_worktree_workspace_param_routes_correctly`, AC-2 `ac2_single_worktree_backward_compat`, AC-3 `ac3_multi_worktree_no_workspace_returns_32602` + `ac3b_explicit_param_bypasses_gate`, AC-4 `ac4_ci_strict_mode_via_env_var`, Journey-1 `p1_journey1_write_then_read_in_worktree`, negatives n1-n3, edges e1-e3, phase3c list/search/score. + diff --git a/.forgeplan/evidence/EVID-141-prob-073-sc-2-detect-multi-worktree-latency-bench-p95-12-13ms-steady-weakens-but-gated-to-cold-start-not-per-call.md b/.forgeplan/evidence/EVID-141-prob-073-sc-2-detect-multi-worktree-latency-bench-p95-12-13ms-steady-weakens-but-gated-to-cold-start-not-per-call.md index 4f363f3e..efebf070 100644 --- a/.forgeplan/evidence/EVID-141-prob-073-sc-2-detect-multi-worktree-latency-bench-p95-12-13ms-steady-weakens-but-gated-to-cold-start-not-per-call.md +++ b/.forgeplan/evidence/EVID-141-prob-073-sc-2-detect-multi-worktree-latency-bench-p95-12-13ms-steady-weakens-but-gated-to-cold-start-not-per-call.md @@ -9,7 +9,7 @@ links: relation: informs - target: ADR-015 relation: informs -status: draft +status: active title: 'PROB-073/SC-2: detect_multi_worktree latency bench — p95 ~12-13ms steady, WEAKENS but gated to cold-start (not per-call)' --- @@ -72,3 +72,4 @@ PROB-073's actual user complaint ("медленно через MCP, file-first + diff --git a/.forgeplan/evidence/EVID-142-prob-077-350-fix-mcp-filepath-expansion-in-forgeplan-update-discover-finding-4-e2e-pass.md b/.forgeplan/evidence/EVID-142-prob-077-350-fix-mcp-filepath-expansion-in-forgeplan-update-discover-finding-4-e2e-pass.md index 64c1e81e..3b7dce9a 100644 --- a/.forgeplan/evidence/EVID-142-prob-077-350-fix-mcp-filepath-expansion-in-forgeplan-update-discover-finding-4-e2e-pass.md +++ b/.forgeplan/evidence/EVID-142-prob-077-350-fix-mcp-filepath-expansion-in-forgeplan-update-discover-finding-4-e2e-pass.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PROB-077 relation: informs -status: draft +status: active title: 'PROB-077/#350 fix: MCP @filepath expansion in forgeplan_update + discover_finding — 4 e2e PASS' --- @@ -51,3 +51,4 @@ Gate: forgeplan-mcp **259 passed / 0 failed**, clippy 0 (`--all-targets`), fmt 0 - Files: `crates/forgeplan-mcp/src/server.rs` (helper + 2 handler call-sites), `crates/forgeplan-mcp/tests/mcp_update_filepath_e2e.rs` (new) + diff --git a/.forgeplan/evidence/EVID-143-prob-073-broad-create-roundtrip-profile-13ms-p50-lancedb-commit-hot-spot.md b/.forgeplan/evidence/EVID-143-prob-073-broad-create-roundtrip-profile-13ms-p50-lancedb-commit-hot-spot.md index 1da7dfa6..144ae259 100644 --- a/.forgeplan/evidence/EVID-143-prob-073-broad-create-roundtrip-profile-13ms-p50-lancedb-commit-hot-spot.md +++ b/.forgeplan/evidence/EVID-143-prob-073-broad-create-roundtrip-profile-13ms-p50-lancedb-commit-hot-spot.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PROB-073 relation: informs -status: draft +status: active title: 'PROB-073 broad: create-roundtrip profile — 13ms p50, LanceDB commit hot spot' --- @@ -58,3 +58,4 @@ The detection slice of PROB-073 was closed separately (EVID-141, SC-2 via gating - Branch: `chore/prob-073-roundtrip-profile` (off `origin/dev`) + diff --git a/.forgeplan/evidence/EVID-144-prob-075-closure-f-2-f-3-f-4-verified-implemented-tests-green-in-v0-32-hardening-f-6-deferred-per-v0-33-plan.md b/.forgeplan/evidence/EVID-144-prob-075-closure-f-2-f-3-f-4-verified-implemented-tests-green-in-v0-32-hardening-f-6-deferred-per-v0-33-plan.md index f9d07f77..c57a1519 100644 --- a/.forgeplan/evidence/EVID-144-prob-075-closure-f-2-f-3-f-4-verified-implemented-tests-green-in-v0-32-hardening-f-6-deferred-per-v0-33-plan.md +++ b/.forgeplan/evidence/EVID-144-prob-075-closure-f-2-f-3-f-4-verified-implemented-tests-green-in-v0-32-hardening-f-6-deferred-per-v0-33-plan.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PROB-075 relation: informs -status: draft +status: active title: 'PROB-075 closure: F-2/F-3/F-4 verified implemented + tests green in v0.32 hardening; F-6 deferred per v0.33 plan' --- @@ -46,3 +46,4 @@ PROB-075 is closed as **resolved (F-2/F-3/F-4)** with **F-6 deferred**. F-6 is a - Code: `crates/forgeplan-core/src/db/store.rs` (with_retry_on_stale, is_stale_manifest_error, should_skip_refresh), `crates/forgeplan-core/src/projection/error.rs` (MutationError::RetryExhausted), `crates/forgeplan-mcp/src/server.rs` (RetryExhausted hint). + diff --git a/.forgeplan/evidence/EVID-145-prob-070-closure-sec-001-004-005-arch-003-verified-done-sec-003-windows-deferred-per-v0-33-plan-scope-cut.md b/.forgeplan/evidence/EVID-145-prob-070-closure-sec-001-004-005-arch-003-verified-done-sec-003-windows-deferred-per-v0-33-plan-scope-cut.md index d70b88ef..fe88ff9f 100644 --- a/.forgeplan/evidence/EVID-145-prob-070-closure-sec-001-004-005-arch-003-verified-done-sec-003-windows-deferred-per-v0-33-plan-scope-cut.md +++ b/.forgeplan/evidence/EVID-145-prob-070-closure-sec-001-004-005-arch-003-verified-done-sec-003-windows-deferred-per-v0-33-plan-scope-cut.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PROB-070 relation: informs -status: draft +status: active title: 'PROB-070 closure: SEC-001/004/005 + ARCH-003 verified done; SEC-003 Windows deferred per v0.33 plan scope-cut' --- @@ -49,3 +49,4 @@ PROB-070 closed as **resolved** (SEC-001/CR-*, SEC-004, SEC-005, ARCH-003) with - Test: `crates/forgeplan-core/tests/verdict_boundary_test.rs` (ARCH-003). + diff --git a/.forgeplan/evidence/EVID-146-prob-078-refuted-mcp-read-after-write-correct-across-7-tests-incl-real-binary-subprocess.md b/.forgeplan/evidence/EVID-146-prob-078-refuted-mcp-read-after-write-correct-across-7-tests-incl-real-binary-subprocess.md index 939cddb9..7f7a2282 100644 --- a/.forgeplan/evidence/EVID-146-prob-078-refuted-mcp-read-after-write-correct-across-7-tests-incl-real-binary-subprocess.md +++ b/.forgeplan/evidence/EVID-146-prob-078-refuted-mcp-read-after-write-correct-across-7-tests-incl-real-binary-subprocess.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PROB-078 relation: informs -status: draft +status: active title: 'PROB-078 refuted: MCP read-after-write correct across 7 tests incl real-binary subprocess' --- @@ -96,3 +96,4 @@ on Linux CI once the branch is pushed. Residual risk is low and, regardless, carries no breaking-change surface (tests only; no product code changed). + diff --git a/.forgeplan/evidence/EVID-147-adr-017-claude-code-provider-guardian-pass-2-audits-resolved-ac-1-7-verified.md b/.forgeplan/evidence/EVID-147-adr-017-claude-code-provider-guardian-pass-2-audits-resolved-ac-1-7-verified.md index 9afc67ea..567d8784 100644 --- a/.forgeplan/evidence/EVID-147-adr-017-claude-code-provider-guardian-pass-2-audits-resolved-ac-1-7-verified.md +++ b/.forgeplan/evidence/EVID-147-adr-017-claude-code-provider-guardian-pass-2-audits-resolved-ac-1-7-verified.md @@ -5,7 +5,7 @@ kind: evidence links: - target: ADR-017 relation: informs -status: draft +status: active title: 'ADR-017 claude-code provider: guardian PASS + 2 audits resolved + AC-1..7 verified' --- @@ -56,3 +56,4 @@ All seven satisfied: AC-1 disclosure (runtime `Once` + `LLM-PROVIDERS.md` + CHAN - Prior art: Hindsight `HINDSIGHT_LLM_PROVIDER=claude-code` (personal/local-only). + diff --git a/.forgeplan/evidence/EVID-148-space-mesh-5-4-h3-h4.md b/.forgeplan/evidence/EVID-148-space-mesh-5-4-h3-h4.md index d9ee250c..5cfc3396 100644 --- a/.forgeplan/evidence/EVID-148-space-mesh-5-4-h3-h4.md +++ b/.forgeplan/evidence/EVID-148-space-mesh-5-4-h3-h4.md @@ -9,7 +9,7 @@ links: relation: informs - target: ADR-018 relation: informs -status: draft +status: active title: 'Ресёрч space-mesh: 5 досье движков + 4 гипотезы, композиция H3+H4 выбрана' --- @@ -228,3 +228,4 @@ realtime / группировка (ergonomics) и события (reactivity). `shape/space-mesh` от `origin/dev`, версия 0.33.0 (ресёрч делался на 0.32.1 — ни один из затронутых choke-point'ов между версиями не менялся, но это проверяется чтением кода перед реализацией, а не считается доказанным здесь). + diff --git a/.forgeplan/evidence/EVID-157-adr-021-evidence-not-a-dependency-red-green-regression-measured-before-after-across-7-edges.md b/.forgeplan/evidence/EVID-157-adr-021-evidence-not-a-dependency-red-green-regression-measured-before-after-across-7-edges.md new file mode 100644 index 00000000..780c5481 --- /dev/null +++ b/.forgeplan/evidence/EVID-157-adr-021-evidence-not-a-dependency-red-green-regression-measured-before-after-across-7-edges.md @@ -0,0 +1,164 @@ +--- +depth: tactical +id: EVID-157 +kind: evidence +links: +- target: PROB-086 + relation: informs +- target: ADR-021 + relation: informs +status: active +title: 'ADR-021 evidence-not-a-dependency: red-green regression + measured before/after across 7 edges' +--- + +--- +assigned_number: 157 +predicted_number: 157 +slug: evid-adr-021-evidence-not-a-dependency-red-green-regression-measured-before +--- + +## Summary + +Дефект PROB-086 воспроизведён, исправлен и проверен парой красный-зелёный, а эффект правки измерен +на всех семи затронутых рёбрах сборкой бинаря в обоих состояниях. Прогноз был записан **до** +внесения правки и сошёлся по всем четырём фальсификаторам. + +## Structured Fields + +verdict: supports +congruence_level: 3 +evidence_type: test + +CL3: измерения выполнены на той самой кодовой базе и тем самым бинарём, о которых говорит решение +ADR-021, в рабочем графе этого репозитория. + +## Red-green проверка + +Восемь E2E-тестов в `crates/forgeplan-cli/tests/cli_score_evidence_semantics.rs`, каждый — реальный +запуск CLI на чистом временном workspace. + +``` +# исходники возвращены к родительскому коммиту, тесты новые +git checkout e924ae5 -- <пять файлов правки> +cargo test --test cli_score_evidence_semantics +→ test result: FAILED. 1 passed; 7 failed + +# правка на месте +cargo test --test cli_score_evidence_semantics +→ test result: ok. 8 passed; 0 failed +``` + +**Падают 7 из 8.** Единственный проходящий — +`non_evidence_dependency_still_caps_the_score`, и он проходит правильно: он проверяет не правку, +а то, что обход зависимостей вообще жив. Записывать его в красную сторону было бы приписыванием. + +Обе редакции этого раздела до текущей были неверны, и обе — по методической причине: + +1. «0 из 5»: первый откат делался через `git checkout --`, который **после коммита** правки + восстанавливает файлы из HEAD, то есть уже исправленные. Тот прогон дал ложные 6 из 6 и был + отброшен; корректный откат идёт от родительского коммита. +2. «5 из 6»: на тот момент шестым тестом был + `dangling_evidence_reference_is_still_walked_and_still_visible`, который **ничего не проверял** + — у артефакта в нём не было эвиденции, поэтому 0.00 получался сам собой, безотносительно + висячей ссылки. Тест удалён, а вместе с ним и утверждение, которое он якобы закреплял: висячая + ссылка отбрасывается при построении индекса и до скоринга не доходит вовсе. + +Покрываемые свойства: + +| Тест | Что закрепляет | +|---|---| +| `outgoing_informs_into_active_evidence_does_not_zero_the_score` | ребро `решение --informs--> активный пак` не обнуляет | +| `outgoing_based_on_into_active_evidence_does_not_zero_the_score` | то же для `based_on` | +| `activating_evidence_must_not_destroy_the_score_it_backs` | активация пака не понижает оценку подкреплённого артефакта | +| `skipping_evidence_as_a_dependency_is_recorded_in_factors` | пропуск виден в `factors`, а не молчит | +| `confidence_interval_brackets_the_reported_r_eff` | интервал содержит отчитанную величину | +| `confidence_interval_tracks_the_recursive_score_not_the_flat_one` | единственный случай, где плоский и рекурсивный счётчики расходятся — только он видит дефект интервала | +| `audit_evidence_breakdown_reports_the_score_actually_used` | `score == score_raw − type_modifier`, и это равно R_eff | +| `non_evidence_dependency_still_caps_the_score` | обход зависимостей жив: единственный тест, падающий при его удалении целиком | + +## Измерение эффекта + +Бинарь собран отдельно в состоянии «до» и «после»; `forgeplan score ` прогнан по каждому +идентификатору в обоих состояниях. + +| Артефакт | статус пака на другом конце ребра | до | после | +|---|---|---|---| +| PROB-047 | active | 0.00 | 0.80 | +| PROB-071 | active | 0.00 | 0.50 | +| PROB-026 | active | 0.00 | 0.80 | +| PROB-027 | active | 0.00 | 0.90 | +| NOTE-049 | **draft** | 0.90 | 0.90 | +| NOTE-050 | **draft** | 0.80 | 0.80 | +| ADR-016 | **draft** | 0.30 | 0.30 | +| аномалии графа | — | 51 | 49 | +| blindspots | — | 0 | 0 | + +Разделение по статусу пака объясняет всю таблицу без остатка: дефект срабатывал ровно там, где пак +активен, и молчал там, где пак черновой, потому что черновые зависимости пропускаются отдельным, +уже существовавшим фильтром. Три «не изменившихся» строки — не устойчивость к дефекту, а отложенное +его срабатывание. + +`score --all` по активным артефактам: изменились ровно две строки из 89 (PROB-047 и PROB-071); +остальные 87 не сдвинулись. Черновые PROB-026/PROB-027 в этот отчёт не попадают по построению +команды, поэтому измерялись поимённо. + +## Прогноз против факта + +Прогноз зафиксирован до правки, с явными фальсификаторами: + +| Предсказано | Получено | Итог | +|---|---|---| +| PROB-047 → 0.80 | 0.80 | сошлось | +| PROB-071 → 0.50 | 0.50 | сошлось | +| ADR-016 не сдвинется | 0.30 → 0.30 | сошлось | +| прочие активные не сдвинутся | 87 из 89 без изменений | сошлось | + +Прогноз был **неполон** в одном: он опирался на скан только активных артефактов и потому насчитал +три затронутых ребра вместо семи, пропустив черновые PROB-026/PROB-027 (реальные нули) и +NOTE-049/NOTE-050. Ошибка найдена адверсариальной линзой и исправлена до коммита. + +## Гейты + +``` +cargo fmt --check → 0 diffs +cargo check --workspace --all-targets → 0 errors, 0 warnings +cargo clippy --workspace --all-targets -- -D warnings → 0 warnings +cargo test --workspace → зелёный +``` + +Известное исключение: `git::tests` (5 тестов) падают при параллельном прогоне и дают 51/51 при +`--test-threads=1`. Это PROB-085 (гонка через `std::env::set_current_dir` в тестах конфигурации), +не регрессия данной правки — затронутый код лежит в `scoring/`, падения в `git/`, и подпись +дифференциального прогона совпадает с ранее зафиксированной. + +## Что опровергла адверсариальная проверка + +Четыре независимые линзы разбирали правку, одна из них была нанята специально её опровергнуть. +Механизм устоял, но **три моих утверждения оказались ложными**, два из них уже были вписаны в +комментарии кода: + +1. «У пака эвиденции нет собственной эвиденции по построению, обход всегда возвращает 0.0» — + опровергнуто: существует шесть рёбер `EVID → EVID`, и такие паки оцениваются 0.7…1.0. +2. «Исключение эвиденции не теряет достижимого доверия, распространялся только ноль» — + опровергнуто как общее утверждение: цепочки `EVID → EVID` действительно перестают + распространяться. Но приведённый в опровержении пример (`NOTE-049` якобы наследовал 0.8) тоже + неверен — см. пункт 4. В этом графе потери не случилось ни разу. +3. «Любое исходящее ребро в пак принудительно даёт 0.00» — завышено: потолок равен + `pack_score − cl_penalty` и схлопывается в ноль лишь когда пак сам оценён не выше штрафа. +4. «NOTE-049 и NOTE-050 спасло обнаружение цикла» — опровергнуто проверкой статусов: EVID-096 и + EVID-097 находятся в статусе `draft`, поэтому их пропускал статусный фильтр зависимостей. + Механизм тот же, что маскировал ADR-016, и никакого отношения к циклам не имеет. +5. «Красный прогон: 0 из 6» — опровергнуто повторными прогонами дважды подряд; итоговая измеренная + цифра — 7 из 8. Разбор в разделе выше. +6. «Висячая ссылка продолжает ронять оценку, и тест это закрепляет» — опровергнуто эмпирически: + неразрешимая цель отбрасывается при построении индекса, до скоринга не доходит, и артефакт + считается так, будто строки нет. Тест, якобы это проверявший, проходил по другой причине — + у артефакта в нём не было эвиденции вовсе. Тест удалён, утверждение убрано из кода и ADR. +7. «Правка достаточно покрыта шестью тестами» — опровергнуто мутационным доводом аудита: обход + зависимостей можно было удалить целиком, и все шесть остались бы зелёными. Добавлен тест, + который это ловит, и ещё один, изолирующий дефект доверительного интервала. + +Пункты 1-3 нашла адверсариальная разведка до коммита, 4-7 — аудит после него. Правка каждый раз +оставалась верной; неверным оказывалось объяснение или покрытие рядом с ней. Это и есть причина, +по которой и то, и другое проверяется отдельно от результата. + diff --git a/.forgeplan/evidence/EVID-164-prob-093-fix-verified-stale-vectors-retired-embed-incremental-gap-made-visible.md b/.forgeplan/evidence/EVID-164-prob-093-fix-verified-stale-vectors-retired-embed-incremental-gap-made-visible.md index e53b8f96..2f99927a 100644 --- a/.forgeplan/evidence/EVID-164-prob-093-fix-verified-stale-vectors-retired-embed-incremental-gap-made-visible.md +++ b/.forgeplan/evidence/EVID-164-prob-093-fix-verified-stale-vectors-retired-embed-incremental-gap-made-visible.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PROB-093 relation: informs -status: draft +status: active title: 'PROB-093 fix verified: stale vectors retired, embed incremental, gap made visible' --- @@ -94,3 +94,4 @@ JSON несёт `unindexed_artifacts: 2`. После `embed` — предупр - **EVID-160** — замер 13м18с, из которого следовала цена полного пересчёта + diff --git a/.forgeplan/evidence/EVID-165-cli-surface-revision-82-commands-exercised-on-a-real-binary-three-defects-found.md b/.forgeplan/evidence/EVID-165-cli-surface-revision-82-commands-exercised-on-a-real-binary-three-defects-found.md index 4388d341..98bea368 100644 --- a/.forgeplan/evidence/EVID-165-cli-surface-revision-82-commands-exercised-on-a-real-binary-three-defects-found.md +++ b/.forgeplan/evidence/EVID-165-cli-surface-revision-82-commands-exercised-on-a-real-binary-three-defects-found.md @@ -7,7 +7,7 @@ links: relation: informs - target: PROB-095 relation: informs -status: draft +status: active title: 'CLI surface revision: 82 commands exercised on a real binary, three defects found' --- @@ -98,3 +98,4 @@ EXTERNAL печатается отдельно от PASS намеренно: « + diff --git a/.forgeplan/evidence/EVID-166-adi-timing-measured-18s-floor-237s-prompt-303s-end-to-end-against-a-120s-budget.md b/.forgeplan/evidence/EVID-166-adi-timing-measured-18s-floor-237s-prompt-303s-end-to-end-against-a-120s-budget.md index fe5d08b9..f29ab9b3 100644 --- a/.forgeplan/evidence/EVID-166-adi-timing-measured-18s-floor-237s-prompt-303s-end-to-end-against-a-120s-budget.md +++ b/.forgeplan/evidence/EVID-166-adi-timing-measured-18s-floor-237s-prompt-303s-end-to-end-against-a-120s-budget.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PROB-096 relation: informs -status: draft +status: active title: 'ADI timing measured: 18s floor, 237s prompt, 303s end-to-end against a 120s budget' --- @@ -88,3 +88,4 @@ ADI-разбор: 4 гипотезы, дедукции, evidence-needed, рек - **PRD-020** — LLM-first routing, где живёт провайдерный слой + diff --git a/.forgeplan/evidence/EVID-167-git-hooks-verified-on-three-clones-a-plain-git-pull-now-retires-the-stale-vector-by-itself.md b/.forgeplan/evidence/EVID-167-git-hooks-verified-on-three-clones-a-plain-git-pull-now-retires-the-stale-vector-by-itself.md index f1f3a717..501db818 100644 --- a/.forgeplan/evidence/EVID-167-git-hooks-verified-on-three-clones-a-plain-git-pull-now-retires-the-stale-vector-by-itself.md +++ b/.forgeplan/evidence/EVID-167-git-hooks-verified-on-three-clones-a-plain-git-pull-now-retires-the-stale-vector-by-itself.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PROB-097 relation: informs -status: draft +status: active title: 'Git hooks verified on three clones: a plain git pull now retires the stale vector by itself' --- @@ -109,3 +109,4 @@ Carol ставит хуки, Alice переписывает NOTE-002 (было - **PRD-071** — контракт подсказок, нарушенный #348 + diff --git a/.forgeplan/evidence/EVID-168-prob-100-7-of-8-drift-findings-were-false-get-now-reports-edges.md b/.forgeplan/evidence/EVID-168-prob-100-7-of-8-drift-findings-were-false-get-now-reports-edges.md index 2cacebe2..caa859a4 100644 --- a/.forgeplan/evidence/EVID-168-prob-100-7-of-8-drift-findings-were-false-get-now-reports-edges.md +++ b/.forgeplan/evidence/EVID-168-prob-100-7-of-8-drift-findings-were-false-get-now-reports-edges.md @@ -5,7 +5,7 @@ kind: evidence links: - target: PROB-100 relation: informs -status: draft +status: active title: 'PROB-100: 7 of 8 drift findings were false; get now reports edges' --- @@ -96,3 +96,4 @@ result_sha: 9dd7242 changed_paths: crates/forgeplan-cli/src/commands/get.rs, crates/forgeplan-cli/src/commands/validate.rs, crates/forgeplan-cli/tests/cli_get_links.rs, crates/forgeplan-core/src/db/store.rs, crates/forgeplan-core/src/lifecycle/mod.rs, crates/forgeplan-core/src/validation/checks.rs, crates/forgeplan-core/src/validation/rules.rs, crates/forgeplan-mcp/src/convert.rs, crates/forgeplan-mcp/src/server.rs, crates/forgeplan-mcp/src/types.rs, .gitignore + diff --git a/.forgeplan/evidence/EVID-170-prd-086-five-trust-layer-defects-measured-before-and-after.md b/.forgeplan/evidence/EVID-170-prd-086-five-trust-layer-defects-measured-before-and-after.md index 6b030fc7..ec8b8c39 100644 --- a/.forgeplan/evidence/EVID-170-prd-086-five-trust-layer-defects-measured-before-and-after.md +++ b/.forgeplan/evidence/EVID-170-prd-086-five-trust-layer-defects-measured-before-and-after.md @@ -7,7 +7,7 @@ links: relation: informs - target: PROB-101 relation: informs -status: draft +status: active title: 'PRD-086: five trust-layer defects measured before and after' --- @@ -120,3 +120,4 @@ verdict: supports congruence_level: 3 evidence_type: measurement + From 59e8204c5d8d36360f4a5cc2c9f7946552aa89b2 Mon Sep 17 00:00:00 2001 From: gogocat Date: Tue, 8 Sep 2026 23:21:56 +0300 Subject: [PATCH 2/3] docs: bring TODO.md and ROADMAP.md back to measured reality MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both files had drifted into confidently stating wrong facts, which is worse than saying nothing. TODO.md announced `Current: v0.34.0` while three releases had shipped past it (v0.35/36/37), and still carried an "in-flight to v0.31.0, PR #277 open, awaiting CI" section — v0.31.0 landed four months ago. It was structured as a reverse-chronological release log that duplicated CHANGELOG.md and was only ever touched at release time, so it fell behind the moment two releases went out without updating it. docs/ROADMAP.md was generated 2026-04-11 after v0.18.0 — five months and ~19 minor versions stale. Its baselines were off by roughly 2x: 193 artifacts (actual 437), 76 CLI commands (actual 82), 1940 tests (actual 3331). MCP tool count 73 was the single number that still held. Every figure in both files now carries its measurement source rather than being copied forward. Gaps were re-checked against the code, not restated: verified DONE website (385 markdown files under website/src/content), CI gates (validate --ci, health --ci --fail-on --strict — shipped April, listed as an open HIGH-impact gap since), semantic search in all 5 release binaries since v0.35.0, incremental embed (v0.36.0) verified OPEN forgeplan doctor/links/diff (absent from the Commands enum; `plugins doctor` exists and is a narrower thing), crates.io (GET /api/v1/crates/forgeplan -> 404), Docker (no Dockerfile), Tauri desktop, VS Code ext, Linear/Jira, pluggable storage drivers (RFC-003) unverified left labelled as such rather than guessed TODO.md is now a priority list rather than a release log: health signals first (the cheapest next steps, since the tool already named the problem and the command), then a tiered backlog, then a pointer at the live GitHub issue list instead of a copy that would go stale immediately. It ends with the recipe for re-verifying itself, so the next person does not repeat this archaeology. Worth flagging beyond the file edits: EVID-033/034/035 score CL0 for missing structured fields — the same defect class fixed per-instance in April on EVID-015/025/026/027. Recurring on fresh IDs five months later says the fix was per-instance and the class is still open; a validate-time gate would close it properly. Refs: v0.37.0 Co-Authored-By: Claude Opus 5 (1M context) --- TODO.md | 678 ++++++++---------------------------------------- docs/ROADMAP.md | 222 ++++++++-------- 2 files changed, 222 insertions(+), 678 deletions(-) diff --git a/TODO.md b/TODO.md index b921c37e..7f6ab6be 100644 --- a/TODO.md +++ b/TODO.md @@ -1,591 +1,125 @@ # TODO — Forgeplan -> **Roadmap**: see [`docs/ROADMAP.md`](docs/ROADMAP.md) for full gap analysis by category -> (Architecture 85%, UX 70%, Performance 80%, Distribution 65%, Docs 60%, Integrations 55%). - -## Current: v0.34.0 (released 2026-08-17 — Cargo.toml workspace = 0.34.0) - -Recent releases (authoritative: `git tag --sort=-v:refname | head` + `Cargo.toml`): - -- **v0.34.0** (released 2026-08-17) — artifact integrity: R_eff scores current evidence only (ADR-020, breaking) + git-delta provenance for code-claiming Evidence (PRD-082/#360) + identity/collision hardening (`update --status` gated, `reindex` duplicate-id detection, `unbacked_displacement` detector, anomalies 140 → 34). Security: RUSTSEC-2026-0204 + quinn-proto HIGH + serde_with. -- **v0.33.0** (released 2026-06-04) — MCP worktree-aware routing (PRD-078) + CRITICAL #350 `@file` expansion + PROB-078 refuted. -- **v0.32.1 / v0.32.0** (released 2026-05-21) — Windows binary hotfix; Epic #287 brownfield surface + PROB-074 stale-handle hardening. -- **v0.31.0** (released 2026-05-12, sync PR #285) — Wave 9 quality closure. - -- **v0.30.0** (released 2026-05-06, sync PR #262) — PROB-060 slug-canonical identity marathon (PR #255..#274) + Phase 2.5 resolver wire-up. -- **v0.29.0** (released 2026-05-05, sync PR #250) — verdict aggregator typed errors (PROB-049 H-class), claude --print dispatch refactor (PROB-050 A-4..A-15), CWE-426 binary substitution closed. -- **v0.28.0** (released 2026-05-04, sync PR #223) — file-first invariant compile-enforced (PRD-073) + claude --print dispatchers (ADR-011) + canonical playbooks (release/brownfield-docs). - -**In-flight на `dev` к v0.31.0** (PRs merged after v0.30.0 tag): - -- PR #275 — PROB-060 Phase 2.5 test coverage extension — **merged 2026-05-10**. -- PR #277 — PROB-063 verdict aggregator excludes `advisory_phase_mismatches` (Closes #276) — **open**, awaiting CI green at время этой записи. - -## Released: v0.28.0 — file-first invariant compile-enforced + claude --print + canonical playbooks - -Bundles 14 merge-PR (#224..#237) since v0.27.0 (2026-04-28). Three load-bearing -themes: - -1. **PRD-073 file-first invariant compile-enforced** (ADR-003) — `LanceStore::*` - mutating methods stали `pub(crate)`, file-first projection wrappers — единственная - mutation surface. EVID-094 R_eff=0.80 grade A. PROB-048 deprecated. -2. **ADR-011 Phase B Wave 1** — Plugin/Agent dispatchers shell out to `claude --print` - на real `claude` 2.1.126. Replaces fictional task-tool из ADR-010. EVID-093 + EVID-096 + EVID-097, R_eff=0.70 grade B. Real-E2E verified. -3. **Track 4-A8 canonical playbooks** — `release.yaml` + `brownfield-docs.yaml` ship - как REFERENCE templates для marketplace skill/mapping authors. `audit.yaml` - migrated к Plugin variant + budget_usd=$5 (PROB-050 A-28 closed). - -### PRD-073 — file-first invariant compile-enforced -- [x] Phase 3a: 15 projection helpers -- [x] Phase 3b: 16 mutation helpers migrated к `MutationResult` -- [x] Phase 3c: typed errors (R1 + R2 audit closures) -- [x] Phase 4: `LanceStore::*` mutating methods → `pub(crate)` lockdown -- [x] EVID-094 (PRD-073 closure) + EVID-095 (Phase 3c sprint closure) -- [x] PROB-048 deprecated as resolved - -### ADR-011 — Phase B Wave 1 (claude --print dispatchers) -- [x] PluginDispatcher + AgentDispatcher rewritten для `claude --print` -- [x] Step.budget_usd + Step.allowed_tools fields (SPEC-003 1.2) -- [x] R1 audit closure (4 CRITICAL + 18 HIGH/MEDIUM) -- [x] EVID-093 spike + EVID-096 closure measurement -- [x] PR 1 (NOTE-049 + EVID-097) — real-E2E на production binary, 5 invocations, ~$0.98 -- [x] A-28 closure (audit.yaml type:agent → type:plugin) + real chain run ~$3.50 - -### Release v0.28.0 (this sprint) -- [x] CHANGELOG `[Unreleased]` → `[0.28.0]` promotion -- [x] Cargo.toml workspace 0.27.0 → 0.28.0 + 4 internal crate refs -- [x] Pre-flight: cargo fmt + cargo clippy `-D warnings` + cargo test (1940 PASS) -- [x] Audit (architect + code-analyzer adversarial): 11 findings closed inline -- [x] Audit round 2 (security + code-analyzer на PR 1 verification): 11 findings closed -- [x] Dependabot triage round 3 (18 alerts unchanged from round 2) -- [x] EVID-098 readiness measurement (R_eff propagation to PRD-073 grade A) -- [x] AI docs accessibility: robots.txt + llms.txt -- [x] MCP tool count drift swept (63 canonical, 18 doc locations updated) -- [x] Push `release/v0.28.0 → main` (PR #238 merged 2026-05-04) -- [x] Tag v0.28.0 + cargo-dist + brew publish (released 2026-05-04) -- [x] Post-release sync PR `chore/sync-main-to-dev-after-v0.28.0` (PR #223 merged 2026-04-28 — predecessor; v0.28.0 sync через cascade) - -### Follow-ups (deferred к PR 3 / PR 4) -- [ ] PR 3: PROB-049 top-4 (StoreError split, # Errors rustdoc, MutationContext, let-else) -- [ ] PR 4: PROB-050 top-5 (SPEC-003 1.2 doc, claude_print::invoke() extract, - cross-file ENV lock, API surface tighten, integration test gated by - CLAUDE_BIN_AVAILABLE) -- [ ] PROB-050 A-21..A-29: real-E2E findings (discovery, exit codes already-OK, - version disambiguation, budget tier, audit.yaml budget=$5, methodology - hardening) - -## Previous: v0.27.0 — PRD-072 Phase 6 real dispatchers + init wiring + greenfield playbook - -EPIC-007 Phase 6 — engine layer (v0.26.0) переходит в **user-facing activation**. -PRD-072 / RFC-007 / ADR-010 закрывают Phase 5 deferral: 5 production -`Dispatcher` impls (real subprocess через tokio::process + ForgeplanCore -direct call), `forgeplan init` теперь эмитит recommendation hints, и -greenfield-kickoff.yaml доступен в marketplace. 3 waves × 8 agents, -~5000 LOC, +60 unit + 5 integration tests. - -### PRD-072 — Phase 6 real subprocess dispatchers -- [x] FR-1 `PluginDispatcher` (claude-code-plugin subprocess, default 600s) -- [x] FR-2 `AgentDispatcher` (task-tool agent-invoke, default 300s) -- [x] FR-3 `SkillDispatcher` (in-process v1 stub — Wave 5 real registry) -- [x] FR-4 `CommandDispatcher` (security-hardened: env_clear, no shell, --yes) -- [x] FR-5 `ForgeplanCoreDispatcher` (direct internal call) -- [x] FR-6 `commands::init::run` recommendation wiring -- [x] FR-7 `marketplace/playbooks/greenfield-kickoff.yaml` canonical (7 steps) -- [x] FR-9 Subprocess lifecycle (tokio::process + kill_on_drop + Stdio::piped + 10 MiB cap) -- [x] FR-10 Security (env_clear, allow-list, no shell expansion, --yes gate) -- [x] AC-3..AC-7 init recommendation hints (закрывает PRD-067) -- [x] AC-7 + AC-8 greenfield-kickoff validate + dry-run pass -- [x] AC-9 regression-free (1384+ lib + 372+ integration tests PASS) -- [ ] FR-8 Per-step `timeout_seconds` override (schema landed; executor wiring partial — Wave 5) -- [ ] AC-1, AC-2 real brownfield E2E run on real c4-architecture installed plugin (Wave 5) -- [ ] AC-10 kill -9 mid-step resumability E2E (Wave 5) - -### Documentation + Marketplace (Phase 6) -- [x] `docs/operations/PLAYBOOK-AUTHORING.ru.md` Subprocess lifecycle section (Wave 4) -- [x] `docs/operations/INGEST-MAPPINGS.ru.md` Workflow integration update (Wave 4) -- [x] `marketplace/playbooks/greenfield-kickoff.yaml` canonical (Wave 3) -- [x] CHANGELOG.md v0.27.0 section (Wave 4) -- [x] EVID-091 — Phase 6 closure evidence pack (Wave 4) - -### Follow-up backlog (Phase 6 → Wave 5) -- [ ] Per-step `timeout_seconds` override fully wired through executor -- [ ] Real `SkillDispatcher` registry (replace trace-only stub) -- [ ] Per-step `env:` allow-list with whitelist mapping -- [ ] AC-1/AC-2/AC-10 real brownfield-code E2E + kill -9 resumability -- [ ] /audit Round 1+2 на Phase 6 (security focus subprocess execution surface) -- [ ] Activate PRD-072 / RFC-007 / ADR-010 (post-audit, R_eff ≥ 0.7 with EVID-090 + EVID-091) -- [ ] Tag v0.27.0 + cargo-dist Release workflow -- [ ] PR feat/phase6-real-dispatchers → dev (after audit) - -## Previous: v0.26.0 — PRD-065/066/067 Playbook + Ingest + Plugin detection (Phase 5) - -EPIC-007 Phase 2 — Forgeplan становится оркестратором. ADR-009 implementation-complete: playbook runtime + ingest engine + plugin detection + canonical marketplace mapping/playbook. 4-wave sprint, 9 agents, ~9000 LOC. - -### PRD-065 — Playbook runtime + YAML schema -- [x] FR-1 Rust module `forgeplan-core::playbook::{types,loader,executor,dispatch,journal}` -- [x] FR-2 JSON Schema `docs/schemas/playbook.schema.yaml` -- [x] FR-3 CLI `forgeplan playbook {list|show|run|validate}` -- [x] FR-4 5-variant typed Delegation enum -- [x] FR-5 Step output capture via `produces_at` + `mapping` -- [x] FR-6 Journal `.forgeplan/journal/playbook-runs.jsonl` -- [x] FR-7 Progress reporting (TTY-aware stderr) -- [x] FR-8 Hint contract integration (PRD-071) -- [x] AC-1..AC-6 acceptance criteria covered (Wave 4 E2E) -- [x] Real Plugin/Agent/Skill subprocess dispatchers (closed by Phase 6 / PRD-072 FR-1..FR-5) - -### PRD-066 — Ingest engine + mapping YAML -- [x] FR-1 Rust module `forgeplan-core::ingest::{types,sources,template,engine,idempotency}` -- [x] FR-2 JSON Schema `docs/schemas/mapping.schema.yaml` -- [x] FR-3 CLI `forgeplan ingest --mapping --source --dry-run` -- [x] FR-4 Source-ref format `{path}:{line_start}-{line_end}` -- [x] FR-5 Idempotency via `source_hash` -- [x] FR-6 Canonical `marketplace/mappings/c4-to-forge.yaml` (Wave 4) -- [x] FR-7 `forgeplan doctor --sources` invariant validation -- [x] AC-1..AC-6 acceptance criteria covered (Wave 4 E2E) -- [ ] MCP `forgeplan_ingest` wrapper (deferred — CLI cover via `forgeplan serve`) -- [ ] 4 additional canonical mappings (autoresearch/git/ddd/spec → forge) — follow-up - -### PRD-067 — Plugin detection + self-describing hints -- [x] FR-1 Rust module `forgeplan-core::plugins::{detection,registry,hints}` -- [x] FR-2 Detection scanner paths (`.claude/plugins/cache/`, `.agentskills/`, etc.) -- [x] FR-3 Plugin registry с known plugins -- [x] FR-4 Project signal detector -- [x] FR-5 Playbook recommendation engine (signals × plugins → applicable) -- [x] FR-6 CLI `forgeplan plugins {list|doctor|info}` -- [x] FR-7 Hint extension (ADR-008 pattern + `recommended_playbook`) -- [x] AC-1, AC-2, AC-6 закрыты в Phase 5 -- [x] AC-3 — `forgeplan init` empty repo → `recommended: greenfield-kickoff` (closed by Phase 6 / PRD-072 FR-6) -- [x] AC-4 — `forgeplan init` `.obsidian/` → `recommended: brownfield-docs` (closed by Phase 6) -- [x] AC-5 — `forgeplan init` legacy code >100 commits → `recommended: brownfield-code` (closed by Phase 6) -- [x] AC-7 — backward compat (FORGEPLAN_HINTS=0 / non-TTY) (closed by Phase 6) - -### Documentation + Marketplace -- [x] `docs/operations/PLAYBOOK-AUTHORING.ru.md` (Wave 4 W4B) -- [x] `docs/operations/INGEST-MAPPINGS.ru.md` (Wave 4 W4B) -- [x] `marketplace/mappings/c4-to-forge.yaml` canonical (Wave 4 W4B) -- [x] `marketplace/playbooks/brownfield-code.yaml` canonical (Wave 4 W4B) -- [x] `docs/README.md` + `docs/README.ru.md` index entries (Wave 4 W4B) -- [x] CHANGELOG.md v0.26.0 section -- [x] EVID-089 — Phase 5 evidence pack - -### Follow-up backlog (Phase 5 — partially closed by Phase 6) -- [x] Real subprocess dispatch for `delegate_to: plugin/agent/skill` (closed by PRD-072 FR-1..FR-3 / Phase 6 Wave 1) -- [x] Canonical playbook `greenfield-kickoff.yaml` (closed by PRD-072 FR-7 / Phase 6 Wave 3) -- [ ] MCP `forgeplan_ingest` wrapper (still deferred — CLI cover via `forgeplan serve`) -- [ ] Canonical mappings: autoresearch / git-log / ddd / sparc → forge (still backlog) -- [ ] Canonical playbooks: `brownfield-docs.yaml`, `audit.yaml`, `release.yaml` (3 of 4 still backlog) -- [ ] Parallel step execution (DAG planner) — Non-Goals v1 -- [ ] Tag v0.26.0 + cargo-dist Release workflow (released in branch — pending tag) - -## Previous: v0.25.0 — PRD-071 hint contract (PR #212, 2026-04-27) - -PRD-071 unified 5-rule hint contract shipped. Audit coverage 0% → 100% (70/70 CLI). 36 integration tests + drift-prevention audit script. Awaiting PR #212 review. - -- [x] PRD-071 5-cycle multi-agent sprint complete (9 agents, 90 files) -- [x] EVID-086 linked, PRD-071 + PROB-046 active -- [x] CHANGELOG.md + docs/README + SKILL.md + agent-protocol.md updated -- [ ] PR #212 merged to dev (awaiting review) -- [ ] Tag v0.25.0 after release PR - -### Deferred from PRD-071 (low priority) -- [ ] FR-013: `forgeplan health` add "Hint coverage" metric (audit script sufficient for now) -- [ ] FR-011: separate `forgeplan-mcp/tests/hint_contract.rs` integration test file (covered via unit tests + dogfood) -- [ ] FR-014: RU localization for hints (backlog) - -### Follow-up items -- [ ] PROB-047 (potential): `scan-import` should dedupe by title/content hash — current behavior creates duplicate PRDs from doc files - -## Previous: v0.24.0 released 2026-04-19 — PRD-057 multi-agent dispatcher - -### Next priorities (from ROADMAP) -- [ ] Sprint A: Public Presence — Website (PRD-024) + README + crates.io + Docker -- [ ] Sprint B: CI/CD Integration — validate/health --ci + GH Action -- [ ] Sprint C: Desktop App — EPIC-004 (Tauri + React) -- [ ] Sprint D: Ecosystem — VS Code ext + GitHub Issues bridge - -### Open bugs -- [ ] PROB-026: tag canonicalization (PR #169 pending merge) -- [ ] PROB-027: reindex without lance/ (PR #169 pending merge) -- [ ] PROB-035 remainder: code-fence awareness in extract_field +> **История релизов**: `CHANGELOG.md` — единственный источник правды по тому, что +> уже вышло. Этот файл больше не дублирует релизный лог (дублировал до +> 2026-09-08 и не обновлялся два релиза подряд, пока CHANGELOG.md уходил вперёд). +> **Roadmap**: [`docs/ROADMAP.md`](docs/ROADMAP.md) — gap-анализ по категориям, обновлён 2026-09-08. +> **Текущая версия**: не верь заголовку этого файла — смотри +> `Cargo.toml [workspace.package].version` + `git tag --sort=-v:refname | head`. +> На 2026-09-08 это v0.37.0. + +Этот файл — список приоритетов: что делать дальше, а не что уже сделано. +Раньше он был реверс-хронологическим логом релизов, который обновлялся только +в момент релиза — и в последний раз обновился на v0.34.0, пока репозиторий +ушёл на три релиза вперёд (v0.35/v0.36/v0.37). Теперь это отдельный список, +живущий своей жизнью между релизами. --- -## Previous: v0.17.2 quality hotfix 2026-04-09 — E2E verification sprint - -### v0.17.2 hotfix P0 -- [x] PROB-030 BM25 prefix fallback (smart.rs `max(bm25_norm, kw)`) -- [x] PROB-031 score.rs imports core parser (deleted local duplicate with CL0 default) -- [x] PROB-032 breakdown display (auto-fixed by PROB-030) -- [x] PROB-033 `new evidence` phase-agnostic (no session warning) -- [x] **PROB-034 CRITICAL** multi-line HTML comment state machine in extract_field -- [x] F1 fail-closed on unclosed ` -- Workspace: 0 warnings on both default and `--features semantic-search` -- ~13.8K LOC added across EPIC-003 (Sprints 13.0 → 13.7 + post-closeout hotfix) -- PRs #141-#156 -- E2E: sprint-13.6-regression.sh (16 checks) + sprint-13.7-regression.sh (16 + SEMANTIC_E2E opt-in), 0 failures -- LLM: gemini-3-flash-preview -- Distribution: cargo-dist v0.31.0, 5 targets, brew + install.sh + checksums -- Pipeline: Shape→Validate→ADI→Code→Test→Fmt→Lint→Audit→Fix→Re-audit→Manual UX→Closeout -- **Sprint Checklist Framework (NOTE-044)** landed 2026-04-08 as reusable quality gate -- ADI mandatory for Standard+ depth (CLAUDE.md methodology update) - -### v0.17.0 done — EPIC-003 Search, Discovery, Intelligence ✅ - -- [x] **Sprint 13.0** Security + ADR-007 (2h, no artifact) -- [x] **Sprint 13.1** PRD-043 Methodology Integrity — EVID-058, PR #145 -- [x] **Sprint 13.1.5/.7** Hardening + integrity config wiring — EVID-059 -- [x] **Sprint 13.2** PRD-039 Smart Search v2 (BM25 + filter DSL + graph expansion) — EVID-065 (backfill during final audit) -- [x] **Sprint 13.3** PRD-035 p1 Tags + Source Tier — EVID-060 -- [x] **Sprint 13.4** PRD-035 p2 Discover MCP tools + CLI — EVID-061 -- [x] **Sprint 13.5** PRD-040 Scoring Intelligence (Skills Memory + R_eff CI) — EVID-062, PR #153 -- [x] **Sprint 13.6** PRD-041 FPF Rules CLI + MCP — EVID-063, PR #154 -- [x] **Sprint 13.7** PRD-042 FPF KB Vector Search (supersedes PRD-018) — EVID-064, PR #155 -- [x] **Sprint 13.7 post-closeout hotfix** — 19 debts triaged, 11 fixed, NOTE-044/045 (PR #156) -- [x] **Final release audit** — 4 parallel auditors, version bump, CHANGELOG, bugfix agent -- [x] **PRD-018 superseded** by PRD-042, **EPIC-003 activated** - -### P0: Release v0.17.0 tag -- [x] Cargo.toml version bump 0.16.0 → 0.17.0 (workspace + 3 path deps) -- [x] CHANGELOG.md created with full v0.17.0 entry -- [x] 7 EVIDs activated (058..064) + EVID-065 backfill for Sprint 13.2 -- [x] PRD-039 activated (R_eff=1.00, F-G-R=0.88 A) -- [x] EPIC-003 activated -- [x] Title validation bugfix (fa97f10, tag-prep-bugfix agent) -- [x] Commit tag-prep changes (6a1904f) - -### P1: After release PR merged -- PR release/v0.17.0 → main (merge commit) -- Tag v0.17.0 + push -- Sync main → dev -- Hindsight memory_retain EPIC-003 finale - -### P0: FPF Engine v2 Phase 2 — Sprint 12 (RFC-001) ✅ -- [x] ADI reasoning: H2 Two-tier Rules selected (FPF B.5.2 Abductive Loop) -- [x] ext/rules.rs: Rule engine with expressions, graph-aware, time-aware (~600 LOC) -- [x] Dashboard integration: rule engine replaces explore::suggest, HashMap O(N+R) -- [x] Bounded context in reason output (CLI + MCP) -- [x] Config template with rule examples in forgeplan init -- [x] FpfConfig.rules field (empty = default 5 rules) -- [x] 4 audit agents: code review, bounded context, Rust expert, security -- [x] Audit fixes: NaN rejection, empty condition guard, circular scoring, TOCTOU, O(N+R) -- [x] 38 rule engine tests (unit + scenario + negative + corner), 829 total -- [x] EVID-057 linked, R_eff=1.00, PRs #133 + #135 merged -- [x] KB vector search — deferred to Phase 3+ (keyword works, NOTE-039 DSL idea) - -### P0: FPF Engine v2 Phase 1 — Sprint 11 (RFC-001) ✅ -- [x] EPIC-002 shaped + activated (PR #128) -- [x] RFC-001 shaped: 3 options, ADI confirmed Option C (Layered Core+Ext) -- [x] fpf/core/ module: config.rs, trust.rs, adi.rs, model.rs (34 tests) -- [x] FpfConfig wired into CLI scoring (score, fgr, context, dashboard) -- [x] Config templates in init + current config.yaml (all 6 sections) -- [x] Audit: 3 agents, 3H + 1M fixed, NaN validation, reliability clamp -- [x] EVID-055, R_eff=1.00, RFC-001 activated -- [x] Housekeeping: 12 orphans linked, SPRINTS.md updated -- [x] 1.5: AdiRecord wiring — reason --save creates structured JSON in Note body -- [x] 11.3: CI/CD Linter — health --ci + validate --ci + GH Actions workflow (PR #132) -- [x] PR #131 merged + progress synced - -### P0: Distribution Pipeline — Sprint 10 (PRD-023) ✅ -- [x] PRD-023 shaped + validated (8 FR, 4 journeys, 4 AC, Deep depth) -- [x] ADI reasoning: 3 hypotheses → H1 cargo-dist selected (High confidence) -- [x] cargo-dist v0.31.0 integrated (dist-workspace.toml, release.yml generated) -- [x] 5 targets: macOS arm64/x86, Linux x86/musl, Windows x86 -- [x] Installers: shell (install.sh) + Homebrew (AiDogfood/homebrew-tap) -- [x] Cargo.toml metadata: homepage, keywords, categories for crates.io -- [x] 2-agent audit: 4C + 3H + 3M findings → all fixed -- [x] Action versions @v6/@v7 → @v4 (cargo-dist v0.31.0 bug) -- [x] .gitignore: dist manifest files added -- [x] Embed fix resolved: fastembed v5.13.0 compiles (upstream fixed) -- [x] EVID-050 active, R_eff=0.80, PR #97 merged -- [x] 753 tests, 0 failures, project healthy - -### P0: ADI Quality + LLM + E2E + Cleanup — Sprint 9 (PROB-021) ✅ -- [x] PROB-021: ADI prompt enriched (metadata, relations+titles, architecture hint) -- [x] System prompt: justified confidence, project context awareness -- [x] reason_temperature config field, architecture hint from file -- [x] evidence_needed → CLI "Next steps" UX -- [x] Model benchmark: 4 models × 7 artifacts → gemini-3-flash-preview selected -- [x] E2E Wave 8 (LLM): 10/10 pass (generate, reason, decompose, capture, context) -- [x] Draft cleanup: 34→12 (7 deleted, 15 deprecated) -- [x] cargo fmt entire codebase (122 files) + pre-commit-fmt.sh hook -- [x] Pipeline updated: +Fmt step, ADI mandatory for Standard+ -- [x] 6 new E2E integration tests (cascade delete, lifecycle, deprecated blocking) -- [x] EVID-048 active, R_eff=0.90, PR #96 merged -- [x] 753 tests, 0 failures, project healthy - -### P0: Graph Integrity — Sprint 8 (PROB-020) ✅ -- [x] BUG-1 (P1): blocked/order treated deprecated as blockers → resolved_ids -- [x] BUG-2 (P1): delete cascade relations + phantom PROB-013 cleanup -- [x] BUG-2b: unlink resilient for phantom relations -- [x] 5-agent audit: 2 critical + 5 warnings → all fixed -- [x] 2 new MCP tools: forgeplan_blocked + forgeplan_order -- [x] validate_id_for_filter() whitelist, DRY common::resolved_ids() -- [x] O(n²)→O(n) order.rs, double scan eliminated, TOCTOU fixed -- [x] route "" rejects empty, memory excluded from orphan detection -- [x] 83 E2E commands tested, E2E-TEST-PLAN.md created -- [x] PROB-020 active, EVID-047 linked, R_eff=1.00, PR #95 - -### P0: E2E Bug Fixes — Sprint 2 (PROB-018) -- [x] **BUG-001 (P1 Security):** `scan --path /tmp` path traversal — added project root boundary validation (coverage.rs) -- [x] **BUG-002 (P2):** `unlink` не проверяет существование связи — added existence check (link.rs) -- [x] **BUG-003 (P3):** lifecycle transition message "draft → active" hardcoded — uses old_status (activate.rs) -- [x] 2 new unit tests for delete_relation (store.rs) -- [x] Create Evidence EVID-040 + link to PROB-018 -- [x] Audit (4-agent: logic+security+rust+task) + PR #85 merged - -### P0: Lifecycle v2 — Sprint 3 (ADR-005) ✅ -- [x] ADR-005 shaped + validated (new state machine design) -- [x] Phase 1: stale status + terminal deprecated/superseded (transitions.rs, 15 tests) -- [x] Phase 2: renew() + reopen() core logic (lifecycle/mod.rs, 10 tests) -- [x] Phase 3: CLI commands (renew.rs, reopen.rs) -- [x] PROB-019: self-link guard (store.rs + in_memory.rs, 4 tests) -- [x] 5-agent audit: 8 findings fixed (date validation, reason sanitization, atomicity) -- [x] EVID-041 (PROB-019) + EVID-042 (ADR-005) linked + activated -- [x] ADR-005 activated, R_eff = 0.80 -- [x] PR #85 merged - -### P0: Estimate Engine (PRD-022) ✅ -- [x] PRD-022 shaped + validated (8 FR, 3 journeys) -- [x] RFC-005 architecture (3 phases, 12 tasks) -- [x] ADR-004 hybrid approach (rule-based L0 + LLM L1) -- [x] Phase 1: types, extractor, scorer, calculator, display (35 tests) -- [x] Phase 2: confidence, CLI estimate command (39 tests) -- [x] 2-agent audit: 2 CRITICAL + 4 HIGH fixed (50 tests) -- [x] Config integration: grade_profile, multipliers, --my-grade -- [x] FORGEPLAN-GUIDE: Estimate Engine section -- [x] Evidence EVID-036 linked, PRD-022 + RFC-005 + ADR-004 activated - -### P0: MemoryDriver (RFC-003 Phase 2) ✅ -- [x] remember/recall CLI commands -- [x] ArtifactKind::Memory with mem- prefix -- [x] DRY helpers in common.rs + 3 tests - -### P0: Quality Cycle Sprint (v0.12.0) ✅ -- [x] 17 MUST gaps → 0 (enable --depth update) -- [x] Evidence parser: ignores template placeholders (CL0→CL3) -- [x] LLM scorer (RFC-005 Phase 3): --llm-score flag, PR #79 -- [x] Hints system: 9 commands, 11 tests, shared hints.rs -- [x] Domain inference: frontmatter → keywords → LLM (3-level) -- [x] Manual complexity override: --complexity "FR-001=8" -- [x] Spec/Evidence confidence boost: +15%/+20% -- [x] forgeplan link body reset fix (PR #75) -- [x] dotenvy for .env API keys -- [x] Template FR filtering, keyword TaskType improvements -- [x] 40 commands smoke-tested -- [x] Release v0.12.0 tagged + installed - -### P0: Integrity Issues (PROB-012 dogfood audit) ✅ -- [x] **Semantic search broken** — feature flag propagated CLI→core via Cargo.toml -- [x] **R_eff divergence** — update_r_eff_score() persists to LanceDB, NaN guard -- [x] **health vs journal inconsistency** — expanded blind spots + decision kinds aligned -- [x] **coverage 0%** — Affected Files section added to templates + backfilled 18 active PRD/RFC/ADR -- [x] **route underestimates** — 4 keyword triggers + 2 heuristics added - -Fixed in commit d84bc69 (fix/prob-012-integrity-remediation). 2 audit rounds, 403 tests. +- [ ] **At-risk (R_eff ниже 0.3)**: `PRD-005 "Depth-Aware Validation"` (R_eff=0.00), `RFC-004 "Files-First Architecture"` (R_eff=0.10). Разобраться, почему — `forgeplan score PRD-005` / `forgeplan score RFC-004`. +- [ ] **Сирота без связей**: `PROB-090` — `forgeplan link PROB-090 based_on `. +- [ ] **Рассогласование фазы** (10 артефактов, включая `PRD-082`, `PRD-083`, `PROB-083`) — `forgeplan phase ` для каждого. +- [ ] **EvidencePack без структурных полей** — `EVID-033`, `EVID-034`, `EVID-035` оценены в CL0 (0.1) вместо реального вердикта. Это тот же класс дефекта, что был описан в апреле 2026 под другими ID (EVID-015/025/026/027, backlog "F6") — тогда почтили точечно, класс не закрыли. Стоит не просто дописать три файла, а решить, нужен ли `validate`-гейт, который ловит EvidencePack без `## Structured Fields` до того, как он попадёт в граф. --- -## Known Issues -- [ ] **changelog commit_hash**: LanceDB schema migration — old workspaces lack `commit_hash` column. `forgeplan update` logs warning. Fix: reinit workspace or add column migration. -- [x] **RFC-005 3.2**: estimate MCP tool — grade param wired (Sprint 1 housekeeping). -- [ ] **1 STUB artifact**: unidentified, low priority. -- [ ] **e2e_coverage_backfill test**: pre-existing failure, unrelated to v0.12 changes. -- [x] **Self-link guard** (PROB-019): `link X X` rejected with "Self-link not allowed" (Sprint 3). -- [x] **Runbook outdated** (NOTE-031): deprecated — file doesn't exist in repo, discrepancies noted in TODO. -- [x] **LLM tests**: Wave 8 (10 commands) passed with gemini-3-flash-preview. Wave 10 edge cases still pending. -- [ ] **--semantic feature flag**: `search --semantic` fails at runtime if not compiled with `semantic-search`. +## Backlog по приоритету + +### P1 — дёшево, высокий эффект (Distribution) + +Из `docs/ROADMAP.md`: этот раздел не двигался пять месяцев, при этом самый +дорогой пункт из апрельского списка (публичный сайт) уже закрыт. Стоит +перевернуть порядок. + +- [ ] `cargo publish` — метаданные в Cargo.toml (homepage/keywords/categories) на месте, публикации на crates.io нет (проверено: `GET crates.io/api/v1/crates/forgeplan` → 404). 🔴 `cargo publish` — RED LINE в safety hook, делать вручную и осознанно. +- [ ] Docker-образ — `Dockerfile` в репозитории отсутствует. +- [ ] Опубликовать переиспользуемый GitHub Action (`forgeplan/action@v1`) для внешних репозиториев — сейчас `validate --ci` / `health --ci --fail-on --strict` работают только как внутренние workflow этого репо (`ci.yml`, `forgeplan-health.yml`). + +### P2 — CLI UX polish (старые пункты NOTE-029/030, подтверждены всё ещё открытыми) + +Проверено по `Commands` enum в `crates/forgeplan-cli/src/main.rs` — этих +команд по-прежнему нет: + +- [ ] `forgeplan doctor` — общая диагностика workspace. **Не путать** с существующим `forgeplan plugins doctor` — тот проверяет только plugin detection/hints, не workspace целиком. +- [ ] `forgeplan links ` — визуализация связей одного артефакта. +- [ ] `forgeplan diff ` — сравнение артефактов. +- [ ] Уточнить, соответствует ли существующий `forgeplan watch` пункту «watch v2 hot-reload» из старого backlog, или это разные вещи. + +### P2 — Performance (из ROADMAP, категория 3) + +- [ ] Background embedding при первом запуске — по коду не найдено (`grep background.*embed` в `forgeplan-core/src` — 0 совпадений). +- [ ] Новый пункт (не было в апреле): холодный старт `search --semantic` вырос до ~2.0–2.7s (было ~1.5s), до 8.3s при вытесненных из кеша весах — плата за переход на `tract` (v0.35.0). Оценить, стоит ли кэшировать граф модели между запусками. +- [ ] `forgeplan reindex` (не `embed`) — не проверялось, инкрементальный ли он сейчас; `embed` уже пропускает актуальные записи по content-hash (v0.36.0). + +### P3 — Architecture (низкий приоритет, без изменений с апреля) + +- [ ] Pluggable storage drivers (RFC-003 Phase 3-4: SQLite driver + config-driven selection) — модуля `StorageDriver` в `crates/forgeplan-core/src/db/` не найдено, по-прежнему не вживлено. +- [ ] DSL-скриптинг для кастомных правил (NOTE-039 — Lua/Rhai). +- [ ] Delta-specs (OpenSpec pattern, из PRD-015) — по-прежнему отложено. + +### P3 — Ecosystem (без изменений с апреля) + +- [ ] VS Code / JetBrains расширение. +- [ ] GitHub Issues bridge — артефакт ↔ issue автосинхронизация (сейчас `gh issue list` используется вручную как трекер, автосинка нет). +- [ ] Linear/Jira export adapter. +- [ ] Slack/Teams-уведомления. + +### P3 — Desktop (без изменений с апреля, 5 месяцев без движения) + +- [ ] EPIC-004: Tauri 2.0 + React UI. Приоритет ниже Distribution по эффекту/трудозатратам — если решение остаётся в силе, стоит переспросить, актуален ли ещё спрос на десктоп-клиент. + +### Очень старые пункты — актуальность не подтверждена, требуют ревизии перед взятием в работу + +- [ ] NOTE-027 Ruflo/Gastown Integration — пункт из апреля 2026, не проверялся, может быть неактуален. +- [ ] PROB-022 Brownfield onboarding improvements — вероятно частично закрыт Epic #287 (brownfield surface, v0.32.0), детально не сверялось. +- [ ] PRD-025 Nx Monorepo Migration — не проверялось. --- -## Open Problems - -| ID | Priority | Title | Status | -|----|----------|-------|--------| -| PROB-001 | Done | Data loss → solved by PRD-009 export/import | ✅ | -| PROB-002 | P2 | Auth reuse — separate API key barrier | Open | -| PROB-003 | Done | Dead statuses → solved by PRD-007 lifecycle | ✅ | -| PROB-004 | Done | Agent drift → solved by PRD-010 hooks | ✅ | -| PROB-005 | Done | Cold start → solved by PRD-012 init --scan | ✅ | -| PROB-006 | Deprecated | Routing misses UX scope → fixed v0.11, keywords expanded | ✅ | -| PROB-009 | Deprecated | F-G-R Granularity → future PRD scope | ⚠️ | -| PROB-010 | Deprecated | Markdown projections → fixed by RFC-004 files-first | ✅ | -| PROB-012 | Deprecated | Feature integrity gap → 5 fixes, 2 audit rounds | ✅ | -| PROB-013 | Deleted | R_eff skip non-active → implemented in ADR-002, deleted | ✅ | -| PROB-014 | Deprecated | Smart search gaps → fixed v0.12, real cosine | ✅ | -| PROB-016 | Deprecated | CLI quality → 13 fixes, 6-agent audit | ✅ | -| PROB-018 | Done | E2E Smoke Test Findings — 3 bugs fixed, 4-agent audit, PR #85 | ✅ | -| PROB-019 | Deprecated | Self-link guard added — case-insensitive check, 4 tests | ✅ | -| PROB-020 | Done | Graph integrity — 10 bugs, 5-agent audit, cascade delete, PR #95 | ✅ | -| PROB-021 | Done | ADI quality — enriched prompt, model benchmark, fmt hooks, PR #96 | ✅ | +## GitHub Issues (живой backlog, не дублируется здесь построчно) + +На 2026-09-08 открыто **29** issue (`gh issue list --state open`). Часть — +свежие находки после релиза v0.37.0 (#488, #485, #484, #483, #482, #479, +#475, #474), часть — накопленный technical debt с мая-июня (#454, #411, +#397, #375, #374, #364, #363, #362, #353, #335, #334, #332, #329, #328, +#318, #307, #304, #301, #298, #297, #296, #287). Список меняется каждый +день — смотри `gh issue list --state open` напрямую, а не копию здесь. --- -## Backlog (приоритизированный) - -### P1: Release v0.13.0 (Distribution) -- [ ] Tag v0.13.0 → trigger first automated release via GH Actions -- [ ] Verify brew install + install.sh on clean machine -- [ ] `cargo publish` (manual, safety hook blocks) - -### ~~P1: Embed & Distribution~~ ✅ -- [x] **Embed feature fix** — fastembed v5.13.0 compiles, upstream resolved -- [x] **Distribution** — cargo-dist v0.31.0, PR #97 merged (Sprint 10) - -### P2: Integrity Follow-up (from FPF audit) ✅ -- [x] **Read-back verify** in update_r_eff_score — pre-check with get_record before update -- [x] **DRY decision_kinds** — DECISION_KINDS_EVIDENCE + DECISION_KINDS_JOURNAL in types.rs -- [x] **Coverage batch-update** — `forgeplan coverage --backfill` (18 artifacts updated) -- [x] **PROB-013** — R_eff skip deprecated/draft in recursive chain (ADR-002) -- [x] **Tree visual** — evidence/note show `··` instead of `0.00` -- [x] **METHODOLOGY-COURSE.md** — Chapter 8 added (tree, coverage, hooks, R_eff rules) -- [ ] **PRD-019 Layer 3** — MCP session state machine (backlog, PRD-019 activated) - -### P2: Route & Enforcement (from usability testing) -- [x] **Route gap**: added "new command/feature" keywords (English) -- [x] **Batch score CLI**: `forgeplan score --all` implemented -- [x] **LLM-first route**: 3-level routing (L0 keywords, L1 LLM classify, L2 FPF ADI reasoning) — PRD-020, 444 tests -- [ ] **PRD-019 Layer 3**: MCP session state machine — агент не может пропустить Shape phase -- [x] **Duplicate notes cleanup**: NOTE-004 deprecated (duplicate of NOTE-005) - -### P1: Smart Search (PROB-014, v0.12) -- [x] **F1 (P0)**: Embed title + body snippet — embedding_text() + forgeplan embed command -- [x] **F2 (P0)**: Graph walk shows relation types — neighbors_with_relations() -- [x] **F3 (P1)**: `forgeplan embed` — batch embed all artifacts (persistent in LanceDB) -- [x] **F4 (P1)**: Smart search — text-first + boosters (Algolia-style, not weighted sum). EVID-033. -- [x] **F5 (P1)**: `forgeplan gaps` — 18 MUST gaps found on real data! Audit: 4 fixes. -- [ ] **F6 (P2)**: Fix evidence blind spots (EVID-015, EVID-025, EVID-026, EVID-027) -- [x] `forgeplan search --semantic` — vector-only search -- [x] `forgeplan search` — smart by default (keyword + semantic + R_eff + status + graph boosters) -- [x] `forgeplan search --keyword` — forced keyword grep -- [x] Configurable embedding model via config.yaml (BGE-M3 default) -- [x] Configurable chunk_size via config.yaml (default 2000) -- [ ] **Future**: Reciprocal Rank Fusion (RRF) for production-grade hybrid search - -### P0: CLI Quality Remediation (PROB-016, 3-agent deep audit) ✅ -**Wave 1 — BROKEN** (6-agent team sprint, PR #65): -- [x] **B1**: `deprecate --reason` stores reason in body (## Deprecation section) -- [x] **B2**: `update --status active` blocked — must use `forgeplan activate` -- [x] **B3**: 4 LLM commands — pre-flight API key check via `require_llm_config()` -- [x] **B4**: `review` checks evidence+stub gates (same as activate) - -**Wave 2 — SAFETY**: -- [x] **N1**: `delete` checks dependents, warns + requires --yes -- [x] **N7**: `supports` added to VALID_RELATIONS -- [x] **N8**: `init --force` warns about data loss -- [x] **N9**: `unlink` updates projection - -**Wave 3 — CORRECTNESS**: -- [x] **N2**: `new` depth=tactical for note/evidence/problem/solution/refresh -- [x] **N3**: `supersede` warns if replacement already superseded/deprecated -- [x] **N4**: `score --all --json` clean JSON output -- [x] **N5**: `update --depth` bails with error -- [x] **N6**: `order/blocked` structural relations only (informs doesn't block) - -EVID-034. 532 tests. **Deferred**: fgr/blindspots redundancy, graph filtering, drift adoption, export embeddings - -### P1: Driver Abstraction — RFC-003 -- [x] **Phase 1**: StorageDriver trait + LanceDriver + InMemoryStore + factory — PR #61 merged -- [x] **Phase 1 audit**: 3 agents, 13 findings, 7 fixed (C1-C3, H1, H3, M1, M2) -- [ ] **Phase 1 deferred** (PROB-015): H2 EmbedDriver, H4 ISP split, M3-M5, test gaps -- [x] **Phase 2**: MemoryDriver (remember/recall) — PR #72 merged -- [ ] **Phase 3**: SQLite driver + feature flags -- [ ] **Phase 4**: Config-driven selection + forgeplan init shows drivers - -### P2: Architecture — Files as Source of Truth (ADR-003, RFC-004) ✅ -- [x] Invert direction: .md files = truth, LanceDB = index (RFC-004 Phase 1, PR #67) -- [x] File watcher (notify crate) for auto-reindex (RFC-004 Phase 2, PR #69) -- [x] `forgeplan reindex` — one-time full re-sync from .md files (PR #71) -- [x] R_eff computed on-the-fly from evidence files (not stored) -- [x] Links in frontmatter `related:` field (RFC-004 Phase 1) -- [x] Change log tracking (RFC-004 Phase 3, PR #69) -- [x] Git-sync integration (RFC-004 Phase 4, PRs #80-#81) - -### P2: Polish -- [x] Binary size optimization — release profile 163MB→41MB (-75%) -- [ ] fpf.rs миграция на common::store() (6 functions) -- [ ] coverage.rs, scan_import.rs миграция на common::open_store() - -### P2: CLI UX Polish (NOTE-029, from E2E findings) -- [ ] `forgeplan links PRD-001` — show all relations for an artifact (1 day) -- [ ] `forgeplan validate --ci` — exit 1 on MUST errors for CI/CD (1 day) -- [ ] `forgeplan doctor` — check workspace, LLM key, feature flags (2 days) -- [ ] Document `capture` as LLM-dependent in --help -- [ ] Error consistency: choose idempotent vs strict philosophy -- [ ] Document case-sensitive IDs - -### P2: Agent Memory Engine (NOTE-025, Direction A — HIGH R_eff) -- [ ] Test `forgeplan serve` as MCP server in Claude Code -- [ ] Claude Code plugin: /fp-validate, /fp-context, /fp-score skills -- [ ] `capture` offline mode (create Note/ADR without LLM) -- [ ] `forgeplan watch --emit-events` — JSON event stream for agents - -### P2: CI/CD Architecture Linter (NOTE-026, Direction B) -- [ ] `forgeplan health --fail-on` — configurable thresholds -- [ ] GitHub Action: `uses: forgeplan/action@v1` - -### P3: Ruflo/Gastown Integration (NOTE-027) -- [ ] MCP config example for Ruflo (.agents/config.toml) -- [ ] Architecture-guardian custom agent YAML -- [ ] Gastown directive template - -### P3: Task Tracker Bridges (NOTE-028) -- [ ] Bidirectional sync with task trackers (Linear, Jira, Orchestra) -- [ ] Export to GitHub Issues / Linear tasks -- [ ] Webhook on activate/supersede events - -### Phase 5: Desktop App -- [ ] Tauri 2.0 + React frontend (shared Rust core) +## Known Issues + +- [ ] **1 STUB artifact** — `forgeplan health` показывал 2 STUB на момент этого измерения (было "1 STUB, unidentified" в старой версии файла); не идентифицирован, низкий приоритет. +- [x] ~~**changelog commit_hash**: LanceDB schema migration для старых workspace~~ — похоже устарело: миграция v2→v3 (`crates/forgeplan-core/src/db/migrate.rs`) уже добавляет колонку `commit_hash`. Не переоткрывать без нового репродьюсера на свежем клоне. +- [ ] **`--semantic` feature flag**: `search --semantic` требует сборки с фичей `semantic-search` — не проверялось, актуально ли это ограничение после перехода на `tract` (v0.35.0, который встроен во все 5 релизных бинарей по умолчанию). --- -## Done ✅ - -- [x] **v0.10.1** — Hotfix: bidirectional R_eff evidence lookup -- [x] **v0.10.0** — scan-import, --json x14, CLI UX, audit fixes, security hardening -- [x] **v0.9.0** — PRD-016..021: R_eff recursive, BMAD v2, OpenSpec DAG, FPF KB, codebase awareness, decision contracts -- [x] **v0.8.0** — CLI UX: cliclack init, styled output, setup-skill -- [x] **v0.7.0** — EPIC-001 complete, FPF engine, lifecycle, /forge skill -- [x] **v0.6.0** — Methodology Engine: routing, lifecycle, F-G-R -- [x] **v0.5.0** — Health, Journal, Validation v2 -- [x] **Phase 4** — MCP Server + AI Features + CRUD -- [x] **Phase 3** — Core CLI + LanceDB Primary -- [x] **Phase 1** — Schemas, Templates & Docs -- [x] **Phase 0** — Foundation & Research - -### v0.10.x detailed -- [x] PRD-012: Project Onboarding — init --scan, scan-import, 3-tier detection -- [x] PRD-008: CLI UX — 8 ui helpers, --json for 14 commands, common::store() (-128 LOC) -- [x] 4-agent Rust audit: UTF-8 safety, symlink protection, file size limits, import validation -- [x] R_eff bidirectional evidence fix (get_incoming_relations) -- [x] All blind spots (3), orphans (8), at risk (11) → resolved -- [x] 14 draft evidence → activated +## Как проверить актуальность этого файла в следующий раз + +Не верь ни одному числу здесь без проверки. Способ измерения: + +```bash +# версия +grep -A2 '^\[workspace.package\]' Cargo.toml +git tag --sort=-v:refname | head -5 + +# артефакты + health signals + health + +# тесты/команды/MCP-tools — счётчик на главной странице README.md +grep -A5 'tracked artifacts' README.md + +# живой backlog +gh issue list --state open --limit 100 +``` + +Использовать **опубликованный** бинарь нужной версии, не тот, что на PATH — +он может отставать (см. `feedback_verify_version_state_not_todo` в памяти +агента: TODO.md исторически лагает релизам, доверять нужно +Cargo.toml + git tags, не старым записям в этом файле). diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index e9a17cab..62751264 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -1,158 +1,168 @@ # Forgeplan Roadmap — Gap Analysis & Priorities -> Generated 2026-04-11 after v0.18.0 release. Based on /fpf DECOMPOSE -> analysis of 193 artifacts, 3 completed EPICs, and 16 draft IDEAS. +> Обновлено 2026-09-08 после релиза v0.37.0. Предыдущая версия этого файла +> была датирована 2026-04-11 (после v0.18.0) — почти пять месяцев и ~19 minor +> релизов назад, а её базовые цифры (193 артефакта, 76 CLI-команд, 1940 +> тестов) на момент этого обновления разошлись с реальностью в 2 раза. +> Каждое число ниже — с указанием, откуда оно взято, а не переписано из +> предыдущей версии файла. -## Current State +## Текущее состояние (измерено 2026-09-08) -- **v0.18.0** released (Production BM25 + Russian morphology + quality gates) -- **193 artifacts**, 112 active, health: "Project looks healthy!" -- **1940 tests**, 76 CLI commands, 73 MCP tools -- **3 EPICs complete**: EPIC-001 (foundation), EPIC-002 (v2.0 vision), EPIC-003 (search+intelligence) +| Показатель | Значение | Источник измерения | +|---|---|---| +| Версия | v0.37.0 | `Cargo.toml [workspace.package].version` + `git tag --sort=-v:refname \| head` (последние теги: v0.37.0, v0.36.0, v0.35.0, v0.34.0) | +| Артефактов всего | 437 | `forgeplan health` (бинарь v0.37.0) | +| Активных | 263 | `forgeplan health` — по статусам: active 263, draft 101, deprecated 68, superseded 5 | +| Тестов | 3331 | Замерено прогоном по трём крейтам 2026-09-08 (core 2243 + cli 814 + mcp 274); `README.md` и CHANGELOG v0.37.0 обновлены из этого же замера, поэтому не являются независимым подтверждением | +| CLI-команд | 82 | `README.md`; полный список — `Commands` enum в `crates/forgeplan-cli/src/main.rs` | +| MCP-инструментов | 73 | `README.md`; число не менялось с v0.18.0 — единственная цифра из старой версии этого файла, которая совпала | +| EPIC завершено | 3 (EPIC-001/002/003) + brownfield Epic #287 в работе | `forgeplan health` по kind=epic (9 всего, часть активна, часть — черновики новых направлений) | + +**На что стоит обратить внимание прямо сейчас** (из `forgeplan health` на момент этого измерения): +- 2 артефакта at-risk: `PRD-005` и `RFC-004` — R_eff = 0.00/0.10, ниже порога 0.3. +- 1 сирота без связей: `PROB-090`. +- 10 артефактов с рассогласованием фазы (`phase mismatch`) — включая `PRD-082`, `PRD-083`, `PROB-083`. +- 3 EvidencePack без структурных полей (`EVID-033`, `EVID-034`, `EVID-035`) — оценены в CL0 (0.1) автоматически. Это тот же класс дефекта, что в апреле 2026 был описан как «F6: Fix evidence blind spots (EVID-015/025/026/027)» — тогда закрыли конкретные ID, но не класс: спустя пять месяцев проблема воспроизвелась на новых ID. Стоит завести правило-проверку (`validate` или CI-гейт), а не чинить точечно в третий раз. + +Это не праздные наблюдения ради полноты — это самые дешёвые следующие шаги, дешевле любого пункта из списка ниже. --- -## Categories +## Категории -### 1. Architecture (Core Engine) — 85% +### 1. Архитектура (Core Engine) — предположительно ~85%, детально не пересчитывалось -| Done | Gap | +| Готово | Разрыв | |---|---| -| LanceDB embedded (ADR-003 files-first) | Code-fence awareness in extract_field (PROB-035 remainder) | -| 10 artifact types + lifecycle state machine | DSL scripting for custom rules (NOTE-039 — Lua/Rhai) | -| R_eff weakest-link + CL penalty + fail-closed | Pluggable storage drivers (RFC-003 planned, not wired) | -| FPF engine v2 (rule engine + bounded contexts) | Delta-specs (OpenSpec pattern, deferred from PRD-015) | +| LanceDB embedded (ADR-003, files-first) | Code-fence awareness в extract_field (PROB-035 remainder) — **не перепроверено**, возможно уже закрыто позже | +| 10 типов артефактов + state machine | DSL-скриптинг для кастомных правил (NOTE-039 — Lua/Rhai) — по коду не найдено, разрыв реальный | +| R_eff weakest-link + CL penalty + fail-closed, ADR-020 (терминальные паки исключены из min) | Pluggable storage drivers (RFC-003) — модуля `StorageDriver` в `crates/forgeplan-core/src/db/` не найдено, по-прежнему не вживлено | +| FPF engine v2 (rule engine + bounded contexts) | Delta-specs (OpenSpec pattern) — по-прежнему отложено | | Graph (petgraph, topological sort, blocked/order) | | -| Production BM25 + Russian stemming (v0.18.0) | | -| Semantic search BGE-M3 (feature-gated) | | -| Trust calculus hardening (F1/F2 fail-closed, v0.17.2) | | +| Production BM25 + русская морфология | | +| **Semantic search на `tract` (чистый Rust) — теперь во ВСЕХ 5 релизных бинарях** (v0.35.0, RFC-013). До этого релиза функция не попадала ни в один опубликованный бинарь вообще — старая версия файла ошибочно писала «feature-gated» как готовое | | +| Git-delta provenance gate для code-claiming Evidence (PRD-082, v0.34.0) | | -**Assessment:** Core is solid. Remaining gaps are extensibility and hardening. +**Оценка:** ядро по-прежнему крепкое, самое заметное движение с апреля — semantic search реально доехал до пользователя, а не только до исходников. -### 2. UX / Usability — 70% +### 2. UX / Usability — было 70%, часть закрыта, часть — нет -| Done | Gap | +| Готово | Разрыв | |---|---| -| 56 CLI commands with clap derive | **Desktop App** (Tauri + React) — Phase 5, not started | -| `--json` output on most commands | `forgeplan doctor` — workspace diagnostics (NOTE-029) | -| Styled terminal (colors, progress bars, unicode) | `forgeplan links` — visual relationship graph (NOTE-029) | -| `health` + `tree` + `blocked` dashboards | `forgeplan diff` — artifact comparison (NOTE-030) | -| Error hints with suggested next commands | `forgeplan watch` v2 — hot-reload (NOTE-030) | -| Duplicate guard + stub detection (PRD-043) | VS Code extension (NOTE-030) | -| 73 MCP tools for AI agents | **Website** — landing + docs portal (PRD-024) | +| 82 CLI-команды (было 56) | **Desktop App** (Tauri + React) — по-прежнему 0%, следов работы в репозитории нет | +| Стилизованный терминал, `health`/`tree`/`blocked`/`order` дашборды | `forgeplan doctor` — верхнеуровневой команды по-прежнему нет; есть только `forgeplan plugins doctor` (диагностика detection/hints, не workspace в целом) — **другая функция под похожим именем**, легко перепутать | +| Duplicate guard + stub detection (PRD-043) | `forgeplan links ` — визуализация связей артефакта — команды нет (проверено по `main.rs`) | +| 73 MCP tools для AI-агентов | `forgeplan diff` — сравнение артефактов — команды нет | +| `forgeplan watch` существует (проверено в CLI enum) — но не проверялось, соответствует ли он «v2 hot-reload» из старого пункта | VS Code расширение — не найдено | +| **Website — landing + docs + blog, RU/EN** (385 markdown-файлов в `website/src/content/`) — это была помечена как «HIGH-impact, не начато» в апрельской версии; на деле это самый большой закрытый разрыв за пять месяцев | | +| `health --ci --fail-on --strict` — конфигурируемые пороги для CI (см. категорию Integrations) | | -**Assessment:** CLI is mature, MCP is excellent. No GUI. Website and Desktop are the main gaps for user adoption. +**Оценка:** CLI и MCP по-прежнему сильная сторона. Публичный сайт закрыл главный UX/маркетинговый разрыв. Desktop и точечные CLI-утилиты (doctor/links/diff) остаются нетронутыми — это тот же список, что и пять месяцев назад. -### 3. Performance — 80% +### 3. Производительность — было 80%, смешанная картина -| Done | Gap | +| Готово | Разрыв | |---|---| -| O(N) batch BM25 search (v0.18.0) | Lazy loading for large workspaces (1000+ artifacts) | -| 43 MB binary (strip+lto+codegen-units optimized) | Incremental reindex (currently full scan) | -| 0.23s search on 193 artifacts | Background embedding (BGE-M3 blocks ~60s on first run) | -| LanceDB columnar + Arrow (fast reads) | | +| O(N) batch BM25 | Background embedding на первом запуске — не найдено в исходниках (`grep` по `background.*embed` в `forgeplan-core/src` — 0 совпадений), разрыв реальный | +| LanceDB columnar + Arrow | Lazy loading для крупных workspace (1000+ артефактов) — не тестировалось на таком масштабе, сейчас 437 артефактов; **unverified**, не «готово» и не «разрыв» — просто не измерено | +| `forgeplan embed` теперь пропускает уже проиндексированные записи по content-hash (v0.36.0, часть исправления PROB-093) — это закрывает половину старого пункта «Incremental reindex» | **Новый пункт, не было в апреле**: холодный старт `search --semantic` вырос до ~2.0–2.7s (было ~1.5s), в одном из трёх прогонов с вытесненными из кеша весами — до 8.3s. Плата за переход на `tract` (v0.35.0, CHANGELOG). Полноценный `forgeplan reindex` (не `embed`) по-прежнему делает полное пересканирование — не проверялось, чинили ли инкрементальность и для него | +| Бинарь 56.5 MB (было заявлено 43 MB в апреле) — рост объясним: движок эмбеддингов `tract` теперь встроен во все бинари вместо внешнего ONNX-рантайма | | -**Assessment:** Fast for current scale (100-500 artifacts). Gaps matter only for scale-up to enterprise. +**Оценка:** не ухудшение, а честная цена за то, что semantic search наконец доехал до пользователя — это ожидаемый trade-off, а не регресс без причины. -### 4. Distribution — 65% +### 4. Дистрибуция — было 65%, почти без изменений -| Done | Gap | +| Готово | Разрыв | |---|---| -| `brew install forgeplan` (Homebrew tap) | **crates.io** (`cargo install forgeplan`) | -| cargo-dist (macOS arm/x86, Linux, Windows) | **npm/npx wrapper** (JS ecosystem) | -| GitHub Releases with prebuilt binaries | **Docker image** | -| install.sh script | **Linux native** (apt, snap, flatpak) | -| CI pipeline (fmt + clippy + tests + health gate) | **Auto-update** notification mechanism | +| `brew install forgeplan` | **crates.io** — проверено напрямую: `GET https://crates.io/api/v1/crates/forgeplan` → 404. Пакет не опубликован | +| cargo-dist (macOS arm/x86, Linux, Windows) | **npm/npx-обёртка** — не найдено ни файлов, ни упоминаний в README/docs | +| GitHub Releases с готовыми бинарями | **Docker-образ** — `Dockerfile` в корне репозитория отсутствует | +| `install.sh` | **Linux native** (apt/snap/flatpak) — не найдено | +| CI-пайплайн (fmt + clippy + test + health gate) | **Auto-update** — не найдено | +| `forgeplan setup` (v0.35.0) — модель эмбеддингов + `fpl`-алиас, идемпотентно | | -**Assessment:** macOS excellent. Linux/Windows via GH releases but not via native package managers. +**Оценка:** этот раздел не двигался пять месяцев. Самый маленький по трудозатратам и самый недооценённый разрыв — `cargo install forgeplan` и Docker-образ оба небольшие по объёму работы относительно эффекта на охват аудитории. -### 5. Documentation — 60% +### 5. Документация — было 60%, главный пункт закрыт -| Done | Gap | +| Готово | Разрыв | |---|---| -| CLAUDE.md (full AI agent guide) | **Public website** (landing + docs portal) | -| docs/methodology/ (10 files) | **Public README.md** (current one is internal-focused) | -| FORGEPLAN-GUIDE.md (full CLI + methodology ref) | **MCP tools API reference** | -| CHANGELOG (v0.17.0 → v0.18.0) | **Video/tutorial** walkthrough | -| FPF KB (204 sections, searchable) | **man pages** | -| 8-point verification checklist (v0.18.0) | | +| CLAUDE.md (полный гайд для AI-агента) | **MCP tools API reference** — отдельного документа не искал целенаправленно, статус **unverified** | +| `docs/methodology/` | Видео/tutorial walkthrough — не найдено | +| **Публичный сайт (landing + docs + blog, RU/EN)** — был флагманским пунктом «HIGH impact» в апреле, теперь реализован: `website/src/content/docs/` (RU+EN) и `website/src/content/blog/` (RU+EN), 385 файлов суммарно | man pages — не найдено | +| README.md — судя по фрагменту с таблицей метрик (437 артефактов / 3331 тестов / 82 команды / 73 MCP), файл уже user-facing, не «internal-focused», как было написано в апреле — **эта строка апрельской версии была неверной уже тогда или устарела первой** | | +| CHANGELOG (актуален по v0.37.0) | | +| FPF KB (204+ секций, ищется через `fpf search`) | | -**Assessment:** Internal docs are excellent. Public-facing documentation is the biggest gap for adoption. +**Оценка:** самый большой разрыв из пяти категорий закрыт. Оставшиеся пункты (API reference, видео, man pages) — низкий приоритет, разово оценивались ниже остальных ещё в апреле. -### 6. Integrations — 55% +### 6. Интеграции — было 55%, CI/CD-часть закрыта -| Done | Gap | +| Готово | Разрыв | |---|---| -| MCP server (73 tools, stdio transport) | **Linear/Jira sync** (NOTE-028) | -| LLM integration (Gemini, configurable provider) | **GitHub Issues bridge** | -| git-sync (frontmatter to LanceDB) | **Slack/Teams notifications** | -| Claude Code hooks (safety, forge-mode) | **CI/CD pipeline gates** (NOTE-026) | -| Orchestra integration (task management) | **VS Code / JetBrains extension** | +| MCP-сервер (73 tools, stdio) | **Linear/Jira sync** (NOTE-028) — не найдено | +| LLM-интеграция (настраиваемый провайдер) | **GitHub Issues bridge** (артефакт ↔ issue, автоматический) — не найдено; вручную роль трекера сейчас играет `gh issue list` (29 открытых issue на момент измерения), но это не автосинхронизация | +| git-sync теперь **задокументирован и автоматизирован** — хуки `post-merge`/`post-checkout` через `forgeplan setup` (v0.36.0); в апреле это тоже числилось «готово», но задним числом выяснилось, что реально нигде не документировалось (PROB-097) | **Slack/Teams-уведомления** — не найдено | +| Claude Code hooks (safety, forge-mode) | Переиспользуемый публичный **GitHub Action** (`forgeplan/action@v1`) — не найдено; есть только внутренние workflow этого репозитория (`ci.yml`, `forgeplan-health.yml`, `security.yml`, `perf.yml`, `release.yml`, `assign-id.yml`) | +| Orchestra integration | VS Code / JetBrains расширение — не найдено | +| **CI/CD pipeline gates — реализовано.** `validate --ci` и `health --ci --fail-on --strict` существуют и используются в этом репозитории (проверено флагами в `main.rs`). Апрельская версия файла числила это как HIGH-impact разрыв — на деле было реализовано ещё в Sprint 11 (2026-04), до самой предыдущей версии этого документа | | -**Assessment:** MCP-first approach is strong. Ecosystem integrations are the gap. +**Оценка:** MCP-подход по-прежнему сильный. CI/CD-гейты внутри репозитория работают — просто это не было замечено при последней ревизии файла. Внешние трекеры и уведомления остаются нетронутым разрывом. --- -## Priority Matrix +## Priority Matrix (обновлено) -| Category | Maturity | Biggest Gap | User Impact | Effort | +| Категория | Состояние | Главный разрыв | Влияние на пользователя | Трудозатраты | |---|---|---|---|---| -| Architecture | 85% | Code-fence, DSL | Low | Small | -| **UX** | **70%** | **Desktop + Website** | **HIGH** | Large | -| Performance | 80% | Incremental reindex | Medium | Medium | -| **Distribution** | **65%** | **crates.io + Docker** | **HIGH** | Small | -| **Documentation** | **60%** | **Public website + README** | **HIGH** | Medium | -| **Integrations** | **55%** | **CI/CD gates + trackers** | **MEDIUM** | Medium | +| Архитектура | стабильно | Pluggable storage drivers, DSL | Низкое | Среднее | +| UX | сайт закрыт, CLI-утилиты и Desktop — нет | `doctor`/`links`/`diff`, Desktop App | Среднее (сайт снял давление) | Desktop — большое, утилиты — малое | +| Производительность | стабильно, новый холодный старт | Background embedding, cold-start `tract` | Низкое-среднее | Среднее | +| **Дистрибуция** | **без изменений 5 месяцев** | **crates.io + Docker** | **Высокое, дёшево** | **Малое** | +| Документация | главный разрыв закрыт | API reference, видео | Низкое | Малое | +| Интеграции | CI/CD закрыт | Linear/Jira, публичный GH Action | Среднее | Среднее | ---- +**Главный вывод этой ревизии:** самый дешёвый разрыв (Distribution: `cargo install forgeplan` + Docker) не двигался с апреля, при этом Website — самый дорогой разрыв из апрельского списка — уже закрыт. Стоит поменять порядок: Distribution вперёд Desktop. -## Recommended Next Sprints +--- -### Sprint A: Public Presence (3-5 days) -> Close the "people can't find us" gap. +## Рекомендуемые следующие спринты (пересмотрено) -- [ ] Website landing page (PRD-024, Astro + Starlight) -- [ ] Public README.md rewrite (user-facing, not internal) -- [ ] crates.io publish (`cargo install forgeplan`) -- [ ] Docker image (Dockerfile + GH Actions publish) +### Sprint A′: Distribution добивка (1-3 дня, было частью Sprint A) +> Website и public README уже сделаны. Осталось дешёвое и высоковидимое. -### Sprint B: CI/CD Integration (1-2 days) -> Make Forgeplan part of the dev workflow, not a separate tool. +- [ ] `cargo publish` — Cargo.toml метаданные (homepage/keywords/categories) уже на месте по TODO-истории, публикация не выполнена. Красная линия репозитория требует ручного шага (`RED LINE`: safety hook блокирует `cargo publish`) — делать осознанно, с человеком у клавиатуры +- [ ] Docker-образ (Dockerfile + публикация через GH Actions) +- [ ] Проверить, не устарели ли инструкции install.sh/brew относительно v0.37.0 бинарей (56.5 MB) -- [ ] `forgeplan validate --ci` exit code for pipeline gates -- [ ] `forgeplan health --ci` with structured JSON output -- [ ] GitHub Action reusable workflow (`forgeplan/action`) -- [ ] CI/CD setup guide in docs +### Sprint B: CI/CD — уже сделано, закрыть формально +> `validate --ci`, `health --ci --fail-on --strict` реализованы. Осталось единственное: -### Sprint C: Desktop App (2-4 weeks) -> For users who don't live in the terminal. +- [ ] Опубликовать переиспользуемый `forgeplan/action@v1` для внешних репозиториев (сейчас гейты работают только внутри этого репо) -- [ ] EPIC-004: Tauri 2.0 + React UI -- [ ] Shared Rust core (forgeplan-core) -- [ ] Dashboard view (health, tree, search) -- [ ] Artifact editor with live validation +### Sprint C: Desktop App (оценка не менялась: 2-4 недели) +> Не начато, как и в апреле. Приоритет ниже Distribution по эффекту/трудозатратам. -### Sprint D: Ecosystem (1-2 weeks) -> Connect Forgeplan to existing tools. +- [ ] EPIC-004: Tauri 2.0 + React UI (если решение остаётся в силе — почти 5 месяцев без движения стоит переспросить, актуален ли спрос) -- [ ] VS Code extension (tree view + search + score) -- [ ] GitHub Issues bridge (artifact ↔ issue sync) +### Sprint D: Ecosystem (без изменений) +- [ ] VS Code extension +- [ ] GitHub Issues bridge (артефакт ↔ issue) - [ ] Linear/Jira export adapter -- [ ] Slack notification hooks --- -## Backlog (IDEAS — no commitment) +## Backlog (IDEAS — без обязательств, не пересчитывался детально) -| ID | Idea | Category | -|---|---|---| -| NOTE-025 | Agent Memory Engine | Integrations | -| NOTE-026 | CI/CD Architecture Linter | Integrations | -| NOTE-027 | Ruflo/Gastown Integration | Integrations | -| NOTE-028 | Task Tracker Bridges | Integrations | -| NOTE-029 | CLI UX Polish (doctor, links) | UX | -| NOTE-030 | Tier 2-3 features (diff, watch, dashboard) | UX | -| NOTE-039 | DSL scripting (Lua/Rhai) | Architecture | -| NOTE-042 | TECH DEBT: update --body file-first | Architecture | -| PROB-022 | Brownfield onboarding improvements | UX | -| PRD-025 | Nx Monorepo Migration | Architecture | +| ID | Идея | Категория | Статус на 2026-09-08 | +|---|---|---|---| +| NOTE-025 | Agent Memory Engine | Integrations | не проверено повторно | +| NOTE-027 | Ruflo/Gastown Integration | Integrations | очень старый пункт (апрель), актуальность не подтверждена | +| NOTE-028 | Task Tracker Bridges | Integrations | всё ещё открыт (см. категорию 6) | +| NOTE-029/030 | CLI UX Polish (doctor, links, diff, watch v2) | UX | всё ещё открыт, подтверждено выше | +| NOTE-039 | DSL scripting (Lua/Rhai) | Architecture | всё ещё открыт | +| PROB-022 | Brownfield onboarding improvements | UX | вероятно частично закрыт Epic #287 (brownfield surface, v0.32) — не проверялось детально | +| PRD-025 | Nx Monorepo Migration | Architecture | не проверялось | + +Живой источник для более мелких находок — `gh issue list --state open` (29 штук на момент этого измерения) и `forgeplan health` — оба меняются каждый день, в отличие от этого файла. From 34cbf8896f0af8868ec3aba117da53289efe75f9 Mon Sep 17 00:00:00 2001 From: gogocat Date: Tue, 8 Sep 2026 23:29:24 +0300 Subject: [PATCH 3/3] chore(graph): activate 9 shipped PRDs, link the last orphan Nine PRDs described work that shipped releases ago and were never activated. This is bookkeeping debt, not backlog: leaving them in `draft` made "101 drafts" overstate the real backlog by roughly a third. Each was confirmed against something concrete before activating -- a live MCP tool matching the PRD's own name, or a direct code/website grep hit -- never from the title sounding familiar: PRD-054 activity log forgeplan_activity, _activity_stats PRD-056 phase machine forgeplan_phase, _phase_advance PRD-065 playbook runtime forgeplan_playbook_{list,run,show,validate} PRD-066 ingest engine forgeplan_ingest PRD-067 plugin detection forgeplan_plugins_{doctor,info,list} PRD-070 CLI parity all named commands present PRD-072 subprocess dispatch playbook/dispatch/*.rs cites ADR-010 by name PRD-073 ADR-003 file-first PR #230, 3 evidence packs PRD-080 blog foundation website/src/components/blog/* exist R_eff for all nine is above zero, so RED LINE #7 holds. PRD-080 sits at 0.20 because of a CL penalty inherited from PRD-079 through a `based_on` edge -- its own evidence is CL3 at 1.0. The score is reporting a weak link upstream, not missing work, which is the cascade doing its job. Two candidates were held back rather than activated: PRD-055 R_eff 0.0, no evidence at all. Activating it would violate RED LINE #7 -- the work shipped (forgeplan_restore and forgeplan_undo_last both exist), but the graph has nothing backing that claim. PRD-071 same. The triage report said EVID-086 existed but was never linked; checked directly -- `forgeplan get EVID-086` returns "not found". The pack does not exist, so there is nothing to link. That correction matters: the fix here is writing evidence, not repairing an edge. PRD-078 was flagged and deliberately left alone: its code is on `dev`, but EVID-139 (a 2-agent adversarial audit) records an unresolved HIGH concurrency finding and a HIGH scope gap, and EVID-141 records the latency NFR being missed. R_eff 0.30 is that contest showing up honestly. Activating it would assert something the evidence disputes. PROB-090 -- the graph's only orphan -- is now linked. Its own body already named PRD-083 as where it was found; that was prose, never an edge. Also linked to PROB-085, which is the same defect class (unsynchronised mutation of process-global state racing under the parallel test runner: cwd there, PATH here), so whoever fixes one finds the other. draft 101 -> 92, active 263 -> 272, orphans 1 -> 0 Refs: #454, PROB-090, v0.37.0 Co-Authored-By: Claude Opus 5 (1M context) --- ...end-only-jsonl-log-of-mcp-tool-calls-with-query-tool.md | 3 ++- ...chine-advisory-per-artifact-current-phase-visibility.md | 3 ++- .../prds/PRD-065-playbook-yaml-schema-runtime-executor.md | 3 ++- ...rch-to-forge-git-to-forge-ddd-to-forge-spec-to-forge.md | 3 ++- ...ction-self-describing-hints-playbook-recommendations.md | 3 ++- ...ivity-undo-last-restore-phase-dispatch-claim-release.md | 3 ++- ...chers-init-recommendation-wiring-greenfield-playbook.md | 3 ++- ...-lancestore-mutations-from-commands-and-mcp-handlers.md | 5 ++--- .../PRD-080-blog-navigation-visual-seo-foundation-pr-2a.md | 3 ++- ...ibuted-binaries-measure-decide-document-the-contract.md | 1 + ...-cwd-config-tests-race-git-tests-under-parallel-runs.md | 1 + ...-tests-under-parallel-env-mutation-path-lost-mid-run.md | 7 +++++++ 12 files changed, 27 insertions(+), 11 deletions(-) diff --git a/.forgeplan/prds/PRD-054-activity-log-append-only-jsonl-log-of-mcp-tool-calls-with-query-tool.md b/.forgeplan/prds/PRD-054-activity-log-append-only-jsonl-log-of-mcp-tool-calls-with-query-tool.md index adce582e..ec5ac04c 100644 --- a/.forgeplan/prds/PRD-054-activity-log-append-only-jsonl-log-of-mcp-tool-calls-with-query-tool.md +++ b/.forgeplan/prds/PRD-054-activity-log-append-only-jsonl-log-of-mcp-tool-calls-with-query-tool.md @@ -5,7 +5,7 @@ kind: prd links: - target: PROB-043 relation: informs -status: draft +status: active title: Activity log — append-only JSONL log of MCP tool calls with query tool --- @@ -299,3 +299,4 @@ And the tool does not panic or return RPC_ERROR > **Next step**: После approve → создать RFC (архитектура: single writer task, tokio channel, dispatch wrapper). + diff --git a/.forgeplan/prds/PRD-056-phase-state-machine-advisory-per-artifact-current-phase-visibility.md b/.forgeplan/prds/PRD-056-phase-state-machine-advisory-per-artifact-current-phase-visibility.md index 424016f2..f5350309 100644 --- a/.forgeplan/prds/PRD-056-phase-state-machine-advisory-per-artifact-current-phase-visibility.md +++ b/.forgeplan/prds/PRD-056-phase-state-machine-advisory-per-artifact-current-phase-visibility.md @@ -5,7 +5,7 @@ kind: prd links: - target: EPIC-005 relation: based_on -status: draft +status: active title: Phase state machine (advisory) — per-artifact current_phase visibility --- @@ -317,3 +317,4 @@ And health does not fail (exit 0, advisory only) > **Next step**: validate PRD-056 → ADI (3+ hypotheses, Standard recommended) → Code. + diff --git a/.forgeplan/prds/PRD-065-playbook-yaml-schema-runtime-executor.md b/.forgeplan/prds/PRD-065-playbook-yaml-schema-runtime-executor.md index a39620ea..0f986e7c 100644 --- a/.forgeplan/prds/PRD-065-playbook-yaml-schema-runtime-executor.md +++ b/.forgeplan/prds/PRD-065-playbook-yaml-schema-runtime-executor.md @@ -8,7 +8,7 @@ links: relation: refines - target: ADR-009 relation: based_on -status: draft +status: active title: Playbook YAML schema + runtime executor updated: 2026-04-20 --- @@ -83,3 +83,4 @@ updated: 2026-04-20 + diff --git a/.forgeplan/prds/PRD-066-ingest-engine-mapping-yaml-format-c4-to-forge-autoresearch-to-forge-git-to-forge-ddd-to-forge-spec-to-forge.md b/.forgeplan/prds/PRD-066-ingest-engine-mapping-yaml-format-c4-to-forge-autoresearch-to-forge-git-to-forge-ddd-to-forge-spec-to-forge.md index 0335166d..4fec4bf5 100644 --- a/.forgeplan/prds/PRD-066-ingest-engine-mapping-yaml-format-c4-to-forge-autoresearch-to-forge-git-to-forge-ddd-to-forge-spec-to-forge.md +++ b/.forgeplan/prds/PRD-066-ingest-engine-mapping-yaml-format-c4-to-forge-autoresearch-to-forge-git-to-forge-ddd-to-forge-spec-to-forge.md @@ -8,7 +8,7 @@ links: relation: refines - target: ADR-009 relation: based_on -status: draft +status: active title: Ingest engine + mapping YAML format (c4-to-forge autoresearch-to-forge git-to-forge ddd-to-forge spec-to-forge) updated: 2026-04-20 --- @@ -82,3 +82,4 @@ updated: 2026-04-20 + diff --git a/.forgeplan/prds/PRD-067-plugin-detection-self-describing-hints-playbook-recommendations.md b/.forgeplan/prds/PRD-067-plugin-detection-self-describing-hints-playbook-recommendations.md index c7185bb1..db62271b 100644 --- a/.forgeplan/prds/PRD-067-plugin-detection-self-describing-hints-playbook-recommendations.md +++ b/.forgeplan/prds/PRD-067-plugin-detection-self-describing-hints-playbook-recommendations.md @@ -8,7 +8,7 @@ links: relation: refines - target: ADR-009 relation: based_on -status: draft +status: active title: Plugin detection + self-describing hints playbook recommendations updated: 2026-04-20 --- @@ -83,3 +83,4 @@ Forgeplan сейчас не знает какие плагины установ + diff --git a/.forgeplan/prds/PRD-070-cli-parity-for-v0-21-v0-24-features-full-first-class-cli-commands-for-activity-undo-last-restore-phase-dispatch-claim-release.md b/.forgeplan/prds/PRD-070-cli-parity-for-v0-21-v0-24-features-full-first-class-cli-commands-for-activity-undo-last-restore-phase-dispatch-claim-release.md index e14994e7..c7e957f1 100644 --- a/.forgeplan/prds/PRD-070-cli-parity-for-v0-21-v0-24-features-full-first-class-cli-commands-for-activity-undo-last-restore-phase-dispatch-claim-release.md +++ b/.forgeplan/prds/PRD-070-cli-parity-for-v0-21-v0-24-features-full-first-class-cli-commands-for-activity-undo-last-restore-phase-dispatch-claim-release.md @@ -9,7 +9,7 @@ links: relation: based_on priority: P1 projectType: cli_tool -status: draft +status: active title: CLI parity for v0.21-v0.24 features — full first-class CLI commands for activity, undo-last, restore, phase, dispatch, claim, release updated: 2026-04-26 --- @@ -125,3 +125,4 @@ Full detail in PROB-045. | PRD-056 | informs (source of phase, phase-advance) | | PRD-057 | informs (source of dispatch, claim, claims, release) | + diff --git a/.forgeplan/prds/PRD-072-real-subprocess-dispatchers-init-recommendation-wiring-greenfield-playbook.md b/.forgeplan/prds/PRD-072-real-subprocess-dispatchers-init-recommendation-wiring-greenfield-playbook.md index 87a40034..75a5cf2f 100644 --- a/.forgeplan/prds/PRD-072-real-subprocess-dispatchers-init-recommendation-wiring-greenfield-playbook.md +++ b/.forgeplan/prds/PRD-072-real-subprocess-dispatchers-init-recommendation-wiring-greenfield-playbook.md @@ -13,7 +13,7 @@ links: relation: refines - target: ADR-009 relation: based_on -status: draft +status: active title: Real subprocess dispatchers + init recommendation wiring + greenfield playbook --- @@ -129,3 +129,4 @@ Phase 5 (PRD-065/066/067, merged 2026-04-28) shipped Playbook runtime, Ingest en + diff --git a/.forgeplan/prds/PRD-073-adr-003-file-first-migration-phase-out-direct-lancestore-mutations-from-commands-and-mcp-handlers.md b/.forgeplan/prds/PRD-073-adr-003-file-first-migration-phase-out-direct-lancestore-mutations-from-commands-and-mcp-handlers.md index cbe4c39a..9e2a77a1 100644 --- a/.forgeplan/prds/PRD-073-adr-003-file-first-migration-phase-out-direct-lancestore-mutations-from-commands-and-mcp-handlers.md +++ b/.forgeplan/prds/PRD-073-adr-003-file-first-migration-phase-out-direct-lancestore-mutations-from-commands-and-mcp-handlers.md @@ -7,9 +7,7 @@ links: relation: based_on - target: ADR-003 relation: based_on -- target: PROB-048 - relation: based_on -status: draft +status: active title: ADR-003 file-first migration — phase out direct LanceStore mutations from commands and MCP handlers --- @@ -113,3 +111,4 @@ Total: ~9-12h focused work across 5 PRs / 1 sprint. - [ ] Phase 3d — drift detection in `sync_metadata_from_file` / `sync_relation_from_file` + `HashSet` dedup in `add_links_batch_with_projection` (Wave 1B audit LOW-4) - [ ] Phase 5 — EVID-094 supplement: clone reproducibility at CL3 + closure + diff --git a/.forgeplan/prds/PRD-080-blog-navigation-visual-seo-foundation-pr-2a.md b/.forgeplan/prds/PRD-080-blog-navigation-visual-seo-foundation-pr-2a.md index 158322ec..6ed9190d 100644 --- a/.forgeplan/prds/PRD-080-blog-navigation-visual-seo-foundation-pr-2a.md +++ b/.forgeplan/prds/PRD-080-blog-navigation-visual-seo-foundation-pr-2a.md @@ -7,7 +7,7 @@ last_modified_by: claude-code/2.1.149 links: - target: PRD-079 relation: based_on -status: draft +status: active title: Blog navigation + visual + SEO foundation (PR-2A) --- @@ -117,3 +117,4 @@ PR-2A заполняет эти 12 primitive'ов **до того как** PR-2B + diff --git a/.forgeplan/prds/PRD-083-semantic-search-in-distributed-binaries-measure-decide-document-the-contract.md b/.forgeplan/prds/PRD-083-semantic-search-in-distributed-binaries-measure-decide-document-the-contract.md index d14afda7..79003a52 100644 --- a/.forgeplan/prds/PRD-083-semantic-search-in-distributed-binaries-measure-decide-document-the-contract.md +++ b/.forgeplan/prds/PRD-083-semantic-search-in-distributed-binaries-measure-decide-document-the-contract.md @@ -153,3 +153,4 @@ binaries». - `CHANGELOG.md:102` — прецедент падения публикации из-за одного таргета (v0.32.0) + diff --git a/.forgeplan/problems/PROB-085-core-tests-mutate-the-process-cwd-config-tests-race-git-tests-under-parallel-runs.md b/.forgeplan/problems/PROB-085-core-tests-mutate-the-process-cwd-config-tests-race-git-tests-under-parallel-runs.md index 2d350670..42b232f7 100644 --- a/.forgeplan/problems/PROB-085-core-tests-mutate-the-process-cwd-config-tests-race-git-tests-under-parallel-runs.md +++ b/.forgeplan/problems/PROB-085-core-tests-mutate-the-process-cwd-config-tests-race-git-tests-under-parallel-runs.md @@ -54,3 +54,4 @@ cargo test -p forgeplan-core --features test-helpers --lib -- --test-threads=1 g + diff --git a/.forgeplan/problems/PROB-090-flaky-git-tests-under-parallel-env-mutation-path-lost-mid-run.md b/.forgeplan/problems/PROB-090-flaky-git-tests-under-parallel-env-mutation-path-lost-mid-run.md index 7d1ed625..8af35db6 100644 --- a/.forgeplan/problems/PROB-090-flaky-git-tests-under-parallel-env-mutation-path-lost-mid-run.md +++ b/.forgeplan/problems/PROB-090-flaky-git-tests-under-parallel-env-mutation-path-lost-mid-run.md @@ -4,6 +4,11 @@ id: PROB-090 kind: problem last_modified_at: 2026-09-02T14:53:27.283511+00:00 last_modified_by: claude-code/2.1.220 +links: +- target: PRD-083 + relation: references +- target: PROB-085 + relation: references status: draft title: Flaky git tests under parallel env mutation — PATH lost mid-run --- @@ -91,3 +96,5 @@ git-тест вызывает `Command::new("git")` и получает пуст описано - `crates/forgeplan-core/src/embed/mod.rs` — образец тестирования без мутации окружения + +