* feat(#22): add plan_review.source_grounding + _authority config keys Two additive opt-out keys for the drift guard: source_grounding (bool, default true) gates the source-grounded reviewer pass; _authority (enum grep|intel|treesitter|lsp|scip, default grep) selects the resolver rung. No existing default changed. Refs #22 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(#22): add intel api-surface renderer + CLI subcommand Renders .planning/intel/api-map.json into a human-readable API-SURFACE.md for planner injection. Empty/missing map still writes a surface that announces itself incomplete (absence = unknown, not 'does not exist'). Gated on intel.enabled like all intel functions. Refs #22 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(#22): add source-grounding pass to plan-review-convergence Default-on reviewer pass (plan_review.source_grounding) that enumerates every symbol a plan cites, excludes declared new artifacts, resolves each against source via the configured authority adapter, and records three-valued verdicts. rung-0/1 MISSING is needs-acknowledgement, not a hard block; UNCHECKABLE is logged in a REVIEWS.md coverage section. Refs #22 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(#22): inject API-SURFACE.md into planner + require Artifacts section When intel.enabled, plan-phase regenerates API-SURFACE.md and injects it as a HINT (prefer, may be incomplete, absence = unknown), never a hard rule. Every plan must now emit an 'Artifacts this phase produces' section so the source-grounding reviewer can separate new symbols from references to existing code. Refs #22 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(#22): surface drift-guard in setup + settings, add docs /gsd:new-project asks to enable plan_review.source_grounding (default Y); /gsd:settings exposes the toggle and authority knob. Documents both config keys in CONFIGURATION.md, the intel api-surface command in COMMANDS.md, the drift guard in USER-GUIDE.md, and links ADR 22 from ARCHITECTURE.md. Refs #22 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(#22): respect AskUserQuestion 4-option cap and plan-phase XL line budget settings drift-guard toggle moved to its own 2-option question; #22 plan-phase additions condensed to bring the file back under the 1810-line XL budget without dropping the intel gate, the incomplete-surface hint, or the Artifacts-section requirement. Refs #22 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix(#22): use live slash-command forms in drift-guard docs Doc-parity gate requires every slash-command token in docs/*.md to resolve to a registered command. Corrected the command form(s) referenced in the #22 drift-guard / api-surface documentation. The unresolved token was /gsd-core, matched from the GitHub repo reference "open-gsd/gsd-core#22" in docs/adr/22-plan-drift-guard.md. This is the same pattern as the existing 'test-runner' exemption (open-gsd/gsd-test-runner). Added 'core' to INTERNAL_COMPONENT_SLUGS with a matching explanatory comment. Refs #22 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * chore(#22): add changeset fragment for drift guard (PR #487) Refs #22 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: CI Rebase Check <ci@gsd-redux> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
98 lines
3.0 KiB
JSON
98 lines
3.0 KiB
JSON
{
|
|
"_comment": "Canonical CONFIG_DEFAULTS for the Configuration Module. Nested shape is canonical. CJS flat projection (branching_strategy, sub_repos, etc.) is handled by consumers at the boundary. Security keys (security_enforcement, security_asvs_level, security_block_on) and post_planning_gaps live in workflow.* as their canonical location. resolve_model_ids, context_window, phase_naming are CJS-originated top-level keys included here. brave_search, firecrawl, exa_search default to false in the manifest; at runtime buildNewProjectConfig detects API keys. The plan_checker (CJS flat) → workflow.plan_check (canonical nested) divergence is resolved: canonical name is workflow.plan_check. _auto_chain_active is a runtime-state field included for completeness.",
|
|
"model_profile": "balanced",
|
|
"commit_docs": true,
|
|
"parallelization": true,
|
|
"search_gitignored": false,
|
|
"brave_search": false,
|
|
"firecrawl": false,
|
|
"exa_search": false,
|
|
"resolve_model_ids": false,
|
|
"context_window": 200000,
|
|
"phase_naming": "sequential",
|
|
"project_code": null,
|
|
"mode": "interactive",
|
|
"claude_md_path": "./CLAUDE.md",
|
|
"git": {
|
|
"branching_strategy": "none",
|
|
"create_tag": true,
|
|
"base_branch": null,
|
|
"phase_branch_template": "gsd/phase-{phase}-{slug}",
|
|
"milestone_branch_template": "gsd/{milestone}-{slug}",
|
|
"quick_branch_template": null
|
|
},
|
|
"workflow": {
|
|
"research": true,
|
|
"plan_check": true,
|
|
"verifier": true,
|
|
"nyquist_validation": true,
|
|
"ai_integration_phase": true,
|
|
"tdd_mode": false,
|
|
"human_verify_mode": "end-of-phase",
|
|
"auto_advance": false,
|
|
"_auto_chain_active": false,
|
|
"node_repair": true,
|
|
"node_repair_budget": 2,
|
|
"ui_phase": true,
|
|
"ui_safety_gate": true,
|
|
"text_mode": false,
|
|
"research_before_questions": false,
|
|
"discuss_mode": "discuss",
|
|
"skip_discuss": false,
|
|
"max_discuss_passes": 3,
|
|
"subagent_timeout": 300000,
|
|
"context_coverage_gate": true,
|
|
"code_review": true,
|
|
"code_review_depth": "standard",
|
|
"code_review_command": null,
|
|
"pattern_mapper": true,
|
|
"plan_bounce": false,
|
|
"plan_bounce_script": null,
|
|
"plan_bounce_passes": 2,
|
|
"auto_prune_state": false,
|
|
"post_planning_gaps": true,
|
|
"security_enforcement": true,
|
|
"security_asvs_level": 1,
|
|
"security_block_on": "high"
|
|
},
|
|
"planning": {
|
|
"commit_docs": true,
|
|
"search_gitignored": false,
|
|
"sub_repos": [],
|
|
"granularity": "standard"
|
|
},
|
|
"hooks": {
|
|
"context_warnings": true,
|
|
"workflow_guard": false
|
|
},
|
|
"ship": {
|
|
"pr_body_sections": []
|
|
},
|
|
"graphify": {
|
|
"auto_update": false
|
|
},
|
|
"agent_skills": {},
|
|
"effort": {
|
|
"default": "high",
|
|
"routing_tier_defaults": {
|
|
"light": "low",
|
|
"standard": "high",
|
|
"heavy": "xhigh"
|
|
},
|
|
"agent_overrides": {}
|
|
},
|
|
"fast_mode": {
|
|
"enabled": false,
|
|
"routing_tier_defaults": {
|
|
"light": true,
|
|
"standard": false,
|
|
"heavy": false
|
|
},
|
|
"agent_overrides": {}
|
|
},
|
|
"plan_review": {
|
|
"source_grounding": true,
|
|
"source_grounding_authority": "grep"
|
|
}
|
|
}
|