* fix(tests): update 5 source-text tests to read config-schema.cjs VALID_CONFIG_KEYS moved from config.cjs to config-schema.cjs in the drift-prevention companion PR. Tests that read config.cjs source text and checked for key literal includes() now point to the correct file. Closes #2480 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(workflows): close LEARNINGS.md consumption-and-graduation loop (#2430) Part A — Consumption: extend plan-phase.md cross-phase context load to include LEARNINGS.md files from the 3 most recent prior phases (same recency gate as CONTEXT.md + SUMMARY.md: CONTEXT_WINDOW >= 500000 only). Also loads LEARNINGS.md from any phases in the Depends-on chain. Silent skip if absent; 15% context budget cap with oldest-first truncation; [from Phase N LEARNINGS] attribution. Part B — Graduation: add graduation_scan step to transition.md (after evolve_project) that delegates to new graduation.md helper workflow. The helper clusters recurring items across the last N phases (default window=5, threshold=3) using Jaccard lexical similarity, surfaces HITL Promote/Defer/Dismiss prompts, routes promotions to PROJECT.md or PATTERNS.md by category, annotates graduated items with `graduated:` field, and persists dismissed/deferred clusters in STATE.md graduation_backlog. Always non-blocking; silently no-ops on first phase or when data is insufficient. Also: adds optional `graduated:` annotation docs to extract_learnings.md schema. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(graduation): address CodeRabbit review findings on PR #2490 - graduation.md: unify insufficient-data guard to silent-skip (remove contradictory [no-op] print path) - graduation.md: add TEXT_MODE fallback for HITL cluster prompts - graduation.md: add A (defer-all) to accepted actions [P/D/X/A] - graduation.md: tag untyped code fences with text language (MD040) - transition.md: tag untyped graduation.md fence with text language Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(graduation): rephrase TEXT_MODE line to avoid prompt-injection scanner false positive Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
7.3 KiB
7.3 KiB