@event4u/agent-config 9.7.0 → 9.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +314 -190
- package/CONTRIBUTING.md +23 -7
- package/MIGRATION.md +20 -0
- package/README.md +57 -11
- package/dist/agent-src/commands/agents/audit.md +1 -1
- package/dist/agent-src/commands/agents/optimize.md +2 -2
- package/dist/agent-src/commands/agents/user.md +1 -1
- package/dist/agent-src/commands/agents.md +1 -1
- package/dist/agent-src/commands/check-current-md.md +3 -3
- package/dist/agent-src/commands/commit/in-chunks.md +8 -0
- package/dist/agent-src/commands/commit.md +17 -0
- package/dist/agent-src/commands/fix/portability.md +2 -2
- package/dist/agent-src/commands/fix/pr-comments-loop.md +136 -0
- package/dist/agent-src/commands/fix/refs.md +2 -2
- package/dist/agent-src/commands/fix/route.md +4 -3
- package/dist/agent-src/commands/fix.md +9 -6
- package/dist/agent-src/commands/ghostwriter.md +1 -1
- package/dist/agent-src/commands/image.md +1 -1
- package/dist/agent-src/commands/optimize/augmentignore.md +1 -1
- package/dist/agent-src/commands/optimize/skills.md +2 -2
- package/dist/agent-src/commands/post-as.md +1 -1
- package/dist/agent-src/commands/pr/create.md +4 -0
- package/dist/agent-src/commands/research.md +1 -1
- package/dist/agent-src/commands/roadmap/ai-council.md +1 -1
- package/dist/agent-src/commands/security-audit-config.md +1 -1
- package/dist/agent-src/commands/team/delegate.md +4 -0
- package/dist/agent-src/commands/video.md +1 -1
- package/dist/agent-src/contexts/authority/kernel-rule-edits.md +1 -1
- package/dist/agent-src/contexts/contracts/emergency-triage-block.md +2 -2
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +48 -2
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +10 -0
- package/dist/agent-src/contexts/execution/subagent-modes-detail.md +109 -8
- package/dist/agent-src/contexts/execution/subagent-response-contract.md +20 -0
- package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +53 -3
- package/dist/agent-src/contexts/override-system.md +75 -5
- package/dist/agent-src/rules/code-provenance.md +112 -0
- package/dist/agent-src/rules/context-hygiene.md +2 -0
- package/dist/agent-src/rules/doc-screenshot-hygiene.md +97 -0
- package/dist/agent-src/rules/domain-safety-pii.md +1 -0
- package/dist/agent-src/rules/external-code-graph-interop.md +13 -3
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +2 -0
- package/dist/agent-src/rules/git-history-discipline.md +2 -0
- package/dist/agent-src/rules/history-discipline.md +80 -0
- package/dist/agent-src/rules/language-and-tone.md +2 -0
- package/dist/agent-src/rules/lethal-trifecta-guard.md +3 -0
- package/dist/agent-src/rules/media-governance-routing.md +2 -0
- package/dist/agent-src/rules/minimal-safe-diff.md +2 -0
- package/dist/agent-src/rules/no-roadmap-references.md +4 -1
- package/dist/agent-src/rules/non-destructive-by-default.md +20 -0
- package/dist/agent-src/rules/onboarding-gate.md +2 -0
- package/dist/agent-src/rules/output-discipline.md +2 -0
- package/dist/agent-src/rules/persona-governance.md +2 -0
- package/dist/agent-src/rules/php-coding.md +1 -0
- package/dist/agent-src/rules/preservation-guard.md +3 -0
- package/dist/agent-src/rules/reviewer-awareness.md +1 -0
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +1 -0
- package/dist/agent-src/rules/roadmap-progress-sync.md +9 -0
- package/dist/agent-src/rules/scale-discipline.md +92 -0
- package/dist/agent-src/rules/secret-vcs-guard.md +106 -0
- package/dist/agent-src/rules/security-sensitive-stop.md +11 -1
- package/dist/agent-src/rules/session-canary.md +77 -0
- package/dist/agent-src/rules/skill-quality.md +2 -0
- package/dist/agent-src/rules/source-confidentiality.md +2 -0
- package/dist/agent-src/rules/source-of-truth.md +2 -0
- package/dist/agent-src/rules/telegraph-speak.md +2 -0
- package/dist/agent-src/rules/token-optimizer-maintenance.md +3 -1
- package/dist/agent-src/rules/tool-safety.md +4 -1
- package/dist/agent-src/rules/untrusted-input-defense.md +10 -0
- package/dist/agent-src/rules/verify-before-complete.md +2 -0
- package/dist/agent-src/skills/adr-create/SKILL.md +17 -1
- package/dist/agent-src/skills/agent-security-review/SKILL.md +1 -1
- package/dist/agent-src/skills/code-intelligence/SKILL.md +97 -0
- package/dist/agent-src/skills/condense-memory/SKILL.md +1 -1
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +0 -3
- package/dist/agent-src/skills/description-assist/SKILL.md +1 -1
- package/dist/agent-src/skills/design-review/SKILL.md +5 -6
- package/dist/agent-src/skills/design-tokens/SKILL.md +0 -1
- package/dist/agent-src/skills/gated-reach/SKILL.md +185 -0
- package/dist/agent-src/skills/gated-reach/evals/triggers.json +72 -0
- package/dist/agent-src/skills/history-design/SKILL.md +101 -0
- package/dist/agent-src/skills/history-design/evals/triggers.json +17 -0
- package/dist/agent-src/skills/humanizer/SKILL.md +3 -3
- package/dist/agent-src/skills/image-analyser/SKILL.md +14 -12
- package/dist/agent-src/skills/image-editing/SKILL.md +2 -1
- package/dist/agent-src/skills/image-generation/SKILL.md +2 -1
- package/dist/agent-src/skills/image-provider-routing/SKILL.md +2 -2
- package/dist/agent-src/skills/launch-readiness/SKILL.md +1 -1
- package/dist/agent-src/skills/license-compliance-audit/SKILL.md +161 -0
- package/dist/agent-src/skills/license-compliance-audit/evals/triggers.json +52 -0
- package/dist/agent-src/skills/license-compliance-borrow-check/SKILL.md +145 -0
- package/dist/agent-src/skills/license-compliance-borrow-check/evals/triggers.json +52 -0
- package/dist/agent-src/skills/license-compliance-credits/SKILL.md +97 -0
- package/dist/agent-src/skills/license-compliance-credits/evals/triggers.json +52 -0
- package/dist/agent-src/skills/md-language-check/SKILL.md +1 -1
- package/dist/agent-src/skills/override-management/SKILL.md +1 -1
- package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +7 -7
- package/dist/agent-src/skills/project-analysis-core/SKILL.md +1 -1
- package/dist/agent-src/skills/prompt-engineering-image/SKILL.md +3 -2
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +2 -2
- package/dist/agent-src/skills/readme-writing/SKILL.md +6 -1
- package/dist/agent-src/skills/recursive-verification/SKILL.md +6 -0
- package/dist/agent-src/skills/refine-ticket/SKILL.md +3 -3
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +4 -0
- package/dist/agent-src/skills/rtk-output-filtering/SKILL.md +31 -12
- package/dist/agent-src/skills/rule-refactor/SKILL.md +3 -3
- package/dist/agent-src/skills/schema-review/SKILL.md +92 -0
- package/dist/agent-src/skills/schema-review/evals/triggers.json +17 -0
- package/dist/agent-src/skills/screenshot-hygiene/SKILL.md +171 -0
- package/dist/agent-src/skills/secrets-management/SKILL.md +43 -1
- package/dist/agent-src/skills/security-audit/SKILL.md +1 -1
- package/dist/agent-src/skills/security-maturity-assessment/SKILL.md +1 -1
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +3 -3
- package/dist/agent-src/skills/skill-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/source-discovery/SKILL.md +5 -5
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +45 -85
- package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +5 -4
- package/dist/agent-src/skills/subagent-orchestration/prompts/adversarial-verification-council.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-and-judge-two-stage.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-and-judge.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-competitively.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-parallel.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-steps.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-worktrees.md +29 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/judge-with-debate.md +29 -0
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +2 -2
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +2 -3
- package/dist/agent-src/skills/token-optimizer/SKILL.md +4 -4
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +4 -0
- package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +2 -3
- package/dist/agent-src/templates/AGENTS.md +1 -1
- package/dist/agent-src/templates/agents/.gitattributes.fragment +25 -6
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/command.md +3 -3
- package/dist/agent-src/templates/github-workflows/secret-scan.yml +65 -0
- package/dist/agent-src/templates/persona.md +2 -2
- package/dist/agent-src/templates/rule.md +2 -2
- package/dist/agent-src/templates/scripts/telemetry/engagement.ts +77 -0
- package/dist/agent-src/templates/scripts/telemetry_record.ts +33 -1
- package/dist/cli/commands/doctorShell.js +20 -0
- package/dist/cli/commands/doctorShell.js.map +1 -1
- package/dist/cli/commands/rtkDetect.js +58 -0
- package/dist/cli/commands/rtkDetect.js.map +1 -0
- package/dist/cli/configRoot.js +112 -0
- package/dist/cli/configRoot.js.map +1 -0
- package/dist/cli/configRoot.test.js +97 -0
- package/dist/cli/configRoot.test.js.map +1 -0
- package/dist/cli/firstRunNotice.js +70 -0
- package/dist/cli/firstRunNotice.js.map +1 -0
- package/dist/cli/help.js +4 -1
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/main.js +54 -5
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/registry.js +8 -1
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +502 -101
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +6 -4
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +95 -8
- package/dist/discovery/trust-report.md +11 -11
- package/dist/discovery/workspaces.json +36 -7
- package/dist/hooks/dispatch.js +19475 -0
- package/dist/install/agentSwitchDetection.js +75 -0
- package/dist/install/agentSwitchDetection.js.map +1 -0
- package/dist/install/agentSwitchProfile.js +117 -0
- package/dist/install/agentSwitchProfile.js.map +1 -0
- package/dist/install/atomic.js +1 -1
- package/dist/install/detect.js +1 -1
- package/dist/install/install.mjs +791 -486
- package/dist/install/rtkDetection.js +213 -0
- package/dist/install/rtkDetection.js.map +1 -0
- package/dist/install/rule_scope.js +2 -1
- package/dist/install/rule_scope.js.map +1 -1
- package/dist/install/types.js +2 -2
- package/dist/install/wizard-plan.js +1 -1
- package/dist/install/wizardDismissals.js +58 -0
- package/dist/install/wizardDismissals.js.map +1 -0
- package/dist/mcp/awesome-mcp-servers.row.md +1 -1
- package/dist/mcp/mcp-cloudflare-catalogue.json +1 -1
- package/dist/mcp/registry-manifest.json +15 -4
- package/dist/mcp/server.json +20 -0
- package/dist/mcp/server.mjs +44292 -0
- package/dist/router.json +1 -1
- package/dist/scripts/condense.js +14 -7
- package/dist/scripts/condense.js.map +1 -1
- package/dist/server/app.js +12 -0
- package/dist/server/app.js.map +1 -1
- package/dist/server/io/sharedWriteCheck.js +101 -0
- package/dist/server/io/sharedWriteCheck.js.map +1 -0
- package/dist/server/routes/ping.js +32 -0
- package/dist/server/routes/ping.js.map +1 -1
- package/dist/server/routes/settings.js +21 -4
- package/dist/server/routes/settings.js.map +1 -1
- package/dist/server/routes/userMd.js +21 -4
- package/dist/server/routes/userMd.js.map +1 -1
- package/dist/server/routes/wizard.js +68 -25
- package/dist/server/routes/wizard.js.map +1 -1
- package/dist/server/schemas/settings.js +12 -2
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/server/serverInfo.js +6 -2
- package/dist/server/serverInfo.js.map +1 -1
- package/dist/server/token.js +11 -4
- package/dist/server/token.js.map +1 -1
- package/dist/server/writeRoot.js +15 -1
- package/dist/server/writeRoot.js.map +1 -1
- package/dist/shared/capabilities.js +33 -0
- package/dist/shared/capabilities.js.map +1 -0
- package/dist/shared/capabilities.test.js +39 -0
- package/dist/shared/capabilities.test.js.map +1 -0
- package/dist/ui/assets/index-BpSQt5vm.js +40 -0
- package/dist/ui/assets/index-BpSQt5vm.js.map +1 -0
- package/dist/ui/assets/index-jSfMW8_t.css +1 -0
- package/dist/ui/index.html +15 -6
- package/docs/MIGRATION.md +16 -0
- package/docs/guidelines/component-oriented-and-oop-development.md +4 -2
- package/package.json +22 -9
- package/src/agent-src/templates/AGENTS.md +1 -1
- package/src/agent-src/templates/scripts/telemetry/engagement.ts +77 -0
- package/src/agent-src/templates/scripts/telemetry_record.ts +33 -1
- package/src/config/agent-settings.template.yml +94 -13
- package/src/config/discovery/packs.yml +22 -0
- package/src/config/discovery/workspaces.yml +1 -1
- package/src/config/evaluator-budgets.json +47 -0
- package/src/config/hook-latency-budget.json +20 -0
- package/src/config/reach-channels.yml +217 -0
- package/src/config/reach-prescriptions-intake.yml +200 -0
- package/src/install/agentSwitchDetection.ts +90 -0
- package/src/install/agentSwitchProfile.ts +131 -0
- package/src/install/atomic.ts +1 -1
- package/src/install/detect.ts +1 -1
- package/src/install/rtkDetection.ts +274 -0
- package/src/install/rule_scope.ts +9 -2
- package/src/install/types.ts +2 -2
- package/src/install/wizard-plan.ts +1 -1
- package/src/install/wizardDismissals.ts +60 -0
- package/src/scripts/_cli/cmd_doctor.ts +62 -1
- package/src/scripts/_cli/cmd_memory_get.ts +197 -0
- package/src/scripts/_cli/cmd_refresh.ts +30 -0
- package/src/scripts/_dispatch.bash +96 -0
- package/src/scripts/_lib/auto_dispatch.corpus.test.ts +64 -1
- package/src/scripts/_lib/auto_dispatch.ts +76 -0
- package/src/scripts/_lib/detect_target_license.ts +714 -0
- package/src/scripts/_lib/exec_evidence.ts +251 -0
- package/src/scripts/_lib/fixtures/secret-detector/negatives.txt +15 -0
- package/src/scripts/_lib/fixtures/secret-detector/positives.txt +15 -0
- package/src/scripts/_lib/install_drift.ts +194 -0
- package/src/scripts/_lib/kernel_rules.ts +46 -0
- package/src/scripts/_lib/memory_fts_index.ts +390 -0
- package/src/scripts/_lib/orchestration_record.ts +91 -2
- package/src/scripts/_lib/persistence/adapter_raw_sql.ts +443 -0
- package/src/scripts/_lib/persistence/detect_audit_coverage.ts +423 -0
- package/src/scripts/_lib/persistence/detect_bounded_reads.ts +154 -0
- package/src/scripts/_lib/persistence/detect_index_parity.ts +576 -0
- package/src/scripts/_lib/persistence/detect_n1_eloquent.ts +226 -0
- package/src/scripts/_lib/persistence/detect_offload.ts +441 -0
- package/src/scripts/_lib/persistence/detect_prisma_growth.ts +74 -0
- package/src/scripts/_lib/persistence/offload_catalog.ts +73 -0
- package/src/scripts/_lib/persistence/types.ts +109 -0
- package/src/scripts/_lib/reddit_thread_parse.ts +598 -0
- package/src/scripts/_lib/risk_paths.ts +160 -0
- package/src/scripts/_lib/rtk_allowlist.ts +44 -0
- package/src/scripts/_lib/secret_detector.test.ts +108 -0
- package/src/scripts/_lib/secret_detector.ts +328 -0
- package/src/scripts/_lib/secret_detector_adversarial.test.ts +116 -0
- package/src/scripts/_lib/spawn_env.ts +7 -0
- package/src/scripts/_lib/sqlite_guard.ts +191 -0
- package/src/scripts/_lib/subagent_spawn.ts +53 -0
- package/src/scripts/_lib/tool_probe.ts +359 -0
- package/src/scripts/_lib/worker_budget.ts +107 -0
- package/src/scripts/adr/regenerate_index.ts +81 -6
- package/src/scripts/ai_council/blind_review.ts +0 -0
- package/src/scripts/ai_council/config.ts +12 -6
- package/src/scripts/ai_council/orchestrator.ts +73 -3
- package/src/scripts/ai_team/review_gate.ts +8 -10
- package/src/scripts/ai_team/team_dispatch.ts +48 -0
- package/src/scripts/audit_adr_coverage.ts +33 -0
- package/src/scripts/audit_initial_context.ts +1 -1
- package/src/scripts/bench_cross_source_eval.ts +400 -0
- package/src/scripts/bench_honesty_score.ts +1093 -0
- package/src/scripts/bench_hook_latency.ts +218 -0
- package/src/scripts/build_mcp_catalog.ts +275 -0
- package/src/scripts/build_mcp_registry_manifest.ts +46 -0
- package/src/scripts/build_proof.ts +207 -0
- package/src/scripts/chat_history.ts +8 -5
- package/src/scripts/check_adr_frontmatter.ts +195 -0
- package/src/scripts/check_artefact_count_messaging.ts +4 -0
- package/src/scripts/check_backstop_debt.ts +210 -0
- package/src/scripts/check_bundle_path_leakage.ts +343 -0
- package/src/scripts/check_claims.ts +188 -8
- package/src/scripts/check_comparison.ts +12 -0
- package/src/scripts/check_enforcement_coverage.ts +592 -0
- package/src/scripts/check_evaluator_budgets.ts +99 -0
- package/src/scripts/check_kernel_rule_bundle.ts +16 -12
- package/src/scripts/check_knowledge_sharing.ts +12 -1
- package/src/scripts/check_no_external_sources.ts +2 -2
- package/src/scripts/check_reach_channels.ts +407 -0
- package/src/scripts/check_reach_staleness.ts +364 -0
- package/src/scripts/check_secret_leak.test.ts +47 -0
- package/src/scripts/check_secret_leak.ts +290 -0
- package/src/scripts/check_source_pointer_freshness.ts +28 -3
- package/src/scripts/code_graph/build.ts +0 -0
- package/src/scripts/code_graph/cli.ts +379 -0
- package/src/scripts/code_graph/detect.ts +186 -0
- package/src/scripts/code_graph/extract.ts +386 -0
- package/src/scripts/code_graph/intent.ts +45 -0
- package/src/scripts/code_graph/loader.ts +123 -0
- package/src/scripts/code_graph/query.ts +290 -0
- package/src/scripts/code_graph/sanitize.ts +30 -0
- package/src/scripts/code_graph/sqlite_store.ts +174 -0
- package/src/scripts/code_graph/types.ts +83 -0
- package/src/scripts/code_graph/validate.ts +63 -0
- package/src/scripts/condense.ts +14 -6
- package/src/scripts/context_hygiene_hook.ts +8 -5
- package/src/scripts/council_cli.ts +126 -12
- package/src/scripts/detect_target_license.ts +203 -0
- package/src/scripts/evaluator_umbrella.sh +145 -0
- package/src/scripts/external_sources_denylist.json +8 -4
- package/src/scripts/first_run_gate_hook.ts +9 -5
- package/src/scripts/generate_subagent_floor.ts +194 -0
- package/src/scripts/hermetic-install.sh +3 -3
- package/src/scripts/hook_manifest.yaml +65 -16
- package/src/scripts/hooks/block_kernel_rule_writes.ts +212 -0
- package/src/scripts/hooks/block_no_verify.ts +9 -9
- package/src/scripts/hooks/code_graph_nudge_hook.ts +191 -0
- package/src/scripts/hooks/concern_registry.ts +75 -0
- package/src/scripts/hooks/design_slop_hook.ts +8 -5
- package/src/scripts/hooks/dispatch_entry.ts +37 -0
- package/src/scripts/hooks/dispatch_hook.ts +176 -3
- package/src/scripts/hooks/hook_stdin.ts +42 -0
- package/src/scripts/hooks/rtk_wrap_hook.ts +26 -12
- package/src/scripts/hot_context_hook.ts +7 -6
- package/src/scripts/injection_scan_hook.ts +9 -1
- package/src/scripts/install +6 -6
- package/src/scripts/install-hooks.sh +4 -4
- package/src/scripts/install.sh +5 -4
- package/src/scripts/install.ts +264 -23
- package/src/scripts/iron_law_sha.ts +3 -12
- package/src/scripts/learning_sidecar.ts +0 -0
- package/src/scripts/lint_budget_ownership.ts +89 -0
- package/src/scripts/lint_command_routing.ts +35 -5
- package/src/scripts/lint_command_verbs.ts +42 -9
- package/src/scripts/lint_consumer_internal_refs.ts +211 -0
- package/src/scripts/lint_discovery_vocabulary.ts +2 -0
- package/src/scripts/lint_documented_commands.ts +670 -0
- package/src/scripts/lint_framework_leakage.ts +17 -3
- package/src/scripts/lint_framework_leakage_allowlist.json +32 -0
- package/src/scripts/lint_governed_writes.ts +335 -0
- package/src/scripts/lint_hidden_unicode.ts +6 -0
- package/src/scripts/lint_mcp_registry_manifest.ts +26 -1
- package/src/scripts/lint_memory_tripwire.ts +186 -0
- package/src/scripts/lint_override_kernel_guard.ts +267 -0
- package/src/scripts/lint_persistence.ts +171 -0
- package/src/scripts/lint_pre_migration_refs.ts +106 -0
- package/src/scripts/lint_provenance.ts +547 -0
- package/src/scripts/lint_provenance_vocabulary.ts +437 -0
- package/src/scripts/lint_spawn_payload.ts +283 -0
- package/src/scripts/lint_store_boundary.ts +152 -0
- package/src/scripts/lint_versioned_cache.ts +7 -1
- package/src/scripts/mcp_server/__main__.ts +7 -2
- package/src/scripts/mcp_server/catalog.ts +23 -1
- package/src/scripts/mcp_server/consumer_tool_catalog.json +563 -193
- package/src/scripts/mcp_server/prompts.ts +6 -0
- package/src/scripts/mcp_server/tool_catalog_source.ts +332 -0
- package/src/scripts/mcp_server/tools.ts +56 -5
- package/src/scripts/mcp_telemetry_query.ts +2 -33
- package/src/scripts/mcp_telemetry_store.ts +64 -34
- package/src/scripts/measure_rule_budget.ts +3 -12
- package/src/scripts/memory_learn_hook.ts +126 -0
- package/src/scripts/memory_lookup.ts +0 -0
- package/src/scripts/memory_replay_24.ts +312 -0
- package/src/scripts/memory_report.ts +16 -3
- package/src/scripts/memory_signal.ts +48 -0
- package/src/scripts/memory_status.ts +6 -0
- package/src/scripts/minimal_safe_diff_hook.ts +8 -5
- package/src/scripts/onboarding_gate_hook.ts +8 -5
- package/src/scripts/orchestration_record.ts +16 -0
- package/src/scripts/pr_url_reminder_hook.ts +8 -1
- package/src/scripts/prepack-check.mjs +17 -0
- package/src/scripts/prepack_lifecycle_check.d.mts +8 -0
- package/src/scripts/prepack_lifecycle_check.mjs +82 -0
- package/src/scripts/profile_staleness_hook.ts +8 -7
- package/src/scripts/reach_doctor.ts +1651 -0
- package/src/scripts/release.ts +24 -3
- package/src/scripts/report_install_drift.ts +109 -0
- package/src/scripts/risk_escalation_shadow.ts +160 -0
- package/src/scripts/roadmap_progress_hook.ts +8 -5
- package/src/scripts/schemas/agent-settings.schema.json +23 -0
- package/src/scripts/schemas/license-policy.schema.json +89 -0
- package/src/scripts/schemas/provenance-borrow.schema.json +46 -0
- package/src/scripts/schemas/reach-channels.schema.json +134 -0
- package/src/scripts/schemas/reach-doctor-payload.schema.json +220 -0
- package/src/scripts/schemas/rule.schema.json +20 -0
- package/src/scripts/self_review_gate.test.ts +173 -1
- package/src/scripts/self_review_gate.ts +155 -15
- package/src/scripts/session_canary_hook.ts +182 -0
- package/src/scripts/skill_linter.ts +55 -0
- package/src/scripts/smoke_quickstart.ts +2 -2
- package/src/scripts/surface_probe_hook.ts +8 -7
- package/src/scripts/sync_gitattributes.ts +310 -0
- package/src/scripts/team_review_gate_hook.ts +13 -16
- package/src/scripts/validate_reach_prescriptions.ts +751 -0
- package/src/scripts/verify_before_complete_hook.ts +8 -5
- package/src/scripts/wrapper_freshness_hook.ts +8 -7
- package/src/server/schemas/settings.ts +24 -2
- package/src/shared/capabilities.test.ts +43 -0
- package/src/shared/capabilities.ts +75 -0
- package/src/templates/minimal/agents-overrides-readme.md +20 -0
- package/dist/ui/assets/index-BPFMZWUs.css +0 -1
- package/dist/ui/assets/index-BiEZiZ31.js +0 -40
- package/dist/ui/assets/index-BiEZiZ31.js.map +0 -1
- package/docs/CLAIMS.md +0 -261
- package/docs/DISTRIBUTION_CHECKLIST.md +0 -170
- package/docs/RELEASE_STORY_TEMPLATE.md +0 -37
- package/docs/SKILL_CENSUS.md +0 -352
- package/docs/adrs/cost/0001-hard-stop-hook.md +0 -114
- package/docs/adrs/cost/README.md +0 -9
- package/docs/adrs/memory/0001-consumer-side-snapshot.md +0 -119
- package/docs/adrs/memory/README.md +0 -10
- package/docs/adrs/router/0001-three-tier-routing.md +0 -119
- package/docs/adrs/router/README.md +0 -9
- package/docs/adrs/schema/0001-json-schema-frontmatter.md +0 -102
- package/docs/adrs/schema/README.md +0 -9
- package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +0 -99
- package/docs/adrs/smoke/README.md +0 -9
- package/docs/adrs/telegraph/0001-default-off-until-bench.md +0 -93
- package/docs/adrs/telegraph/README.md +0 -9
- package/docs/announcements/2026-05-non-dev-launch.md +0 -79
- package/docs/announcements/2026-07-honest-cost-sweep-launch.md +0 -84
- package/docs/anti-reskin-gate.md +0 -60
- package/docs/architecture/augment-projection.md +0 -70
- package/docs/architecture/claude-bundle.md +0 -77
- package/docs/architecture/current-onboard-baseline.md +0 -126
- package/docs/architecture/current-safety-behavior.md +0 -137
- package/docs/architecture/multi-tool-projection.md +0 -125
- package/docs/architecture/setup-vs-settings-shared-surface.md +0 -114
- package/docs/architecture/source-projection.md +0 -85
- package/docs/architecture.md +0 -390
- package/docs/archive/CHANGELOG-6.0.0-overview.md +0 -953
- package/docs/archive/CHANGELOG-7.0.0.md +0 -419
- package/docs/archive/CHANGELOG-pre-2.11.0.md +0 -141
- package/docs/archive/CHANGELOG-pre-2.15.0.md +0 -244
- package/docs/archive/CHANGELOG-pre-2.16.0.md +0 -48
- package/docs/archive/CHANGELOG-pre-2.17.0.md +0 -63
- package/docs/archive/CHANGELOG-pre-2.2.0.md +0 -2138
- package/docs/archive/CHANGELOG-pre-2.20.0.md +0 -159
- package/docs/archive/CHANGELOG-pre-2.25.0.md +0 -191
- package/docs/archive/CHANGELOG-pre-2.7.0.md +0 -185
- package/docs/archive/CHANGELOG-pre-3.0.0.md +0 -130
- package/docs/archive/CHANGELOG-pre-3.1.0.md +0 -167
- package/docs/archive/CHANGELOG-pre-3.2.0.md +0 -268
- package/docs/archive/CHANGELOG-pre-4.0.0.md +0 -80
- package/docs/archive/CHANGELOG-pre-4.5.0.md +0 -289
- package/docs/archive/CHANGELOG-pre-5.4.0.md +0 -260
- package/docs/archive/CHANGELOG-pre-5.9.0.md +0 -270
- package/docs/archive/CHANGELOG-pre-6.0.0.md +0 -473
- package/docs/archive/CHANGELOG-pre-7.0.0.md +0 -126
- package/docs/archive/CHANGELOG-pre-8.0.0.md +0 -301
- package/docs/archive/CHANGELOG-pre-8.1.0.md +0 -316
- package/docs/archive/CHANGELOG-pre-8.12.0.md +0 -304
- package/docs/archive/CHANGELOG-pre-8.9.0.md +0 -306
- package/docs/archive/CHANGELOG-pre-9.2.0.md +0 -276
- package/docs/artefact-census.md +0 -71
- package/docs/benchmark.md +0 -648
- package/docs/benchmark.pinned.yml +0 -31
- package/docs/benchmarks.md +0 -85
- package/docs/capability-matrix.md +0 -33
- package/docs/case-studies/_template.md +0 -60
- package/docs/case-studies/frontend-design-positioning.md +0 -86
- package/docs/catalog.md +0 -721
- package/docs/command-flows.md +0 -272
- package/docs/command-naming-audit.md +0 -60
- package/docs/comparison.yaml +0 -45
- package/docs/contracts/CHANGELOG-conventions.md +0 -149
- package/docs/contracts/STABILITY.md +0 -188
- package/docs/contracts/adoption-signal-floor.md +0 -127
- package/docs/contracts/adr-architectural-consensus-mechanism.md +0 -68
- package/docs/contracts/adr-chat-history-split.md +0 -140
- package/docs/contracts/adr-command-suggestion.md +0 -144
- package/docs/contracts/adr-forecast-construction-shape.md +0 -90
- package/docs/contracts/adr-gtm-context-spine.md +0 -116
- package/docs/contracts/adr-implement-ticket-runtime.md +0 -121
- package/docs/contracts/adr-install-user-type-axis.md +0 -107
- package/docs/contracts/adr-layout.md +0 -107
- package/docs/contracts/adr-level-6-productization.md +0 -145
- package/docs/contracts/adr-mcp-runtime.md +0 -128
- package/docs/contracts/adr-product-ui-track.md +0 -381
- package/docs/contracts/adr-prompt-driven-execution.md +0 -186
- package/docs/contracts/adr-settings-sync-engine.md +0 -128
- package/docs/contracts/adr-user-types-axis.md +0 -127
- package/docs/contracts/adr-wing4-context-spine.md +0 -126
- package/docs/contracts/agent-user-schema.md +0 -170
- package/docs/contracts/agents-layout.md +0 -148
- package/docs/contracts/agents-md-tech-stack.md +0 -75
- package/docs/contracts/ai-council-config.md +0 -829
- package/docs/contracts/ai-team-config.md +0 -224
- package/docs/contracts/analysis-memory-loop.md +0 -149
- package/docs/contracts/at-rest-encryption.md +0 -191
- package/docs/contracts/audit-log-v1.md +0 -150
- package/docs/contracts/auto-orchestration-v1.md +0 -70
- package/docs/contracts/benchmark-ab-contract.md +0 -106
- package/docs/contracts/benchmark-corpus-spec.md +0 -125
- package/docs/contracts/benchmark-report-schema.md +0 -113
- package/docs/contracts/branch-protection-policy.md +0 -139
- package/docs/contracts/brand-token-consumption.md +0 -74
- package/docs/contracts/capability-boundary.md +0 -69
- package/docs/contracts/capability-packs.md +0 -217
- package/docs/contracts/ci-cost-budget.md +0 -111
- package/docs/contracts/ci-green-floor.md +0 -141
- package/docs/contracts/command-category-governance.md +0 -84
- package/docs/contracts/command-clusters.md +0 -399
- package/docs/contracts/command-surface-tiers.md +0 -176
- package/docs/contracts/command-taxonomy.md +0 -137
- package/docs/contracts/condensation-default-kill-criterion.md +0 -116
- package/docs/contracts/config-presets.md +0 -144
- package/docs/contracts/conformance.md +0 -84
- package/docs/contracts/consumer-bridge.md +0 -73
- package/docs/contracts/context-paths.md +0 -101
- package/docs/contracts/context-spine.md +0 -179
- package/docs/contracts/cost-dashboard.md +0 -143
- package/docs/contracts/cost-enforcement.md +0 -134
- package/docs/contracts/cost-profile-defaults.md +0 -110
- package/docs/contracts/cost-summary-schema.md +0 -107
- package/docs/contracts/creative-pack-boundary.md +0 -63
- package/docs/contracts/cross-repo-retrieval.md +0 -64
- package/docs/contracts/cross-wing-handoff.md +0 -134
- package/docs/contracts/daily-workspace.md +0 -147
- package/docs/contracts/decision-engine-gates.md +0 -120
- package/docs/contracts/decision-trace-v1.md +0 -177
- package/docs/contracts/design-artifact-lifecycle.md +0 -93
- package/docs/contracts/design-artifact-verification.md +0 -153
- package/docs/contracts/discovery-manifest.md +0 -209
- package/docs/contracts/discovery-manifest.schema.json +0 -254
- package/docs/contracts/evidence-based-pruning.md +0 -102
- package/docs/contracts/explain-modes.md +0 -187
- package/docs/contracts/explain-trace.schema.json +0 -144
- package/docs/contracts/file-ownership-matrix.json +0 -13941
- package/docs/contracts/file-ownership-matrix.md +0 -135
- package/docs/contracts/frontmatter-contract.md +0 -140
- package/docs/contracts/ghostwriter-schema.md +0 -337
- package/docs/contracts/governance-enforcement-projection.md +0 -159
- package/docs/contracts/gui-wizard.md +0 -350
- package/docs/contracts/harness-expectations.md +0 -128
- package/docs/contracts/hook-architecture-v1.md +0 -325
- package/docs/contracts/host-agent-protocol.md +0 -110
- package/docs/contracts/implement-ticket-flow.md +0 -625
- package/docs/contracts/init-telemetry.md +0 -132
- package/docs/contracts/injected-block-authenticity-model.md +0 -66
- package/docs/contracts/install-layout.md +0 -249
- package/docs/contracts/install-scopes.md +0 -82
- package/docs/contracts/installed-tools-lockfile.md +0 -144
- package/docs/contracts/installer-agent-mode.md +0 -137
- package/docs/contracts/iron-law-overrides.txt +0 -26
- package/docs/contracts/kernel-membership.md +0 -339
- package/docs/contracts/linear-ai-rules-inclusion.md +0 -143
- package/docs/contracts/linear-ai-three-layers.md +0 -130
- package/docs/contracts/linter-structural-model.md +0 -181
- package/docs/contracts/load-context-budget-model.md +0 -259
- package/docs/contracts/load-context-schema.md +0 -220
- package/docs/contracts/local-analytics.md +0 -160
- package/docs/contracts/local-knowledge-ingestion.md +0 -96
- package/docs/contracts/local-server-api.md +0 -134
- package/docs/contracts/low-impact-corpus-format.md +0 -95
- package/docs/contracts/mcp-beta-criteria.md +0 -130
- package/docs/contracts/mcp-cloud-scope.md +0 -355
- package/docs/contracts/mcp-discovery-phase-notice.md +0 -60
- package/docs/contracts/mcp-phase-1-scope.md +0 -272
- package/docs/contracts/mcp-registry-manifest.schema.json +0 -129
- package/docs/contracts/mcp-tool-inventory.md +0 -64
- package/docs/contracts/mcp-tool-stub-envelope.md +0 -78
- package/docs/contracts/measurement-baseline.md +0 -103
- package/docs/contracts/memory-visibility-v1.md +0 -160
- package/docs/contracts/mental-models.md +0 -336
- package/docs/contracts/migrate-command.md +0 -233
- package/docs/contracts/multi-tool-projection-fidelity.md +0 -134
- package/docs/contracts/namespace.md +0 -125
- package/docs/contracts/no-runtime-boundary.md +0 -61
- package/docs/contracts/one-off-script-lifecycle.md +0 -110
- package/docs/contracts/orchestration-dsl-v1.md +0 -153
- package/docs/contracts/package-self-orientation.md +0 -163
- package/docs/contracts/pilot/agent-authority.md +0 -24
- package/docs/contracts/pilot/direct-answers.md +0 -70
- package/docs/contracts/pilot/language-and-tone.md +0 -63
- package/docs/contracts/plain-language-surface.md +0 -117
- package/docs/contracts/prelaunch-diagnostics.md +0 -151
- package/docs/contracts/profile-system.md +0 -167
- package/docs/contracts/reasoning-discipline-protocol.md +0 -83
- package/docs/contracts/release-pr-gating.md +0 -151
- package/docs/contracts/release-sizing.md +0 -107
- package/docs/contracts/release-trunk-sync.md +0 -105
- package/docs/contracts/review-lens-schema.md +0 -64
- package/docs/contracts/roadmap-complexity-standard.md +0 -138
- package/docs/contracts/role-experience.md +0 -125
- package/docs/contracts/router-blending.md +0 -71
- package/docs/contracts/rule-classification.md +0 -171
- package/docs/contracts/rule-interactions.md +0 -132
- package/docs/contracts/rule-interactions.yml +0 -260
- package/docs/contracts/rule-priority-hierarchy.md +0 -88
- package/docs/contracts/rule-router.md +0 -287
- package/docs/contracts/safety-model.md +0 -129
- package/docs/contracts/session-profile-overlay.md +0 -157
- package/docs/contracts/settings-api.md +0 -264
- package/docs/contracts/settings-gui-agent-mode.schema.json +0 -128
- package/docs/contracts/settings-sync-yaml-subset.md +0 -139
- package/docs/contracts/skill-bundled-assets.md +0 -62
- package/docs/contracts/skill-discovery.md +0 -80
- package/docs/contracts/skill-distribution-channels.md +0 -66
- package/docs/contracts/skill-domains.md +0 -144
- package/docs/contracts/skill-dry-run.md +0 -47
- package/docs/contracts/skill-family-map.yml +0 -915
- package/docs/contracts/smoke-contracts.md +0 -144
- package/docs/contracts/subagent-boundary.md +0 -59
- package/docs/contracts/surface-agent-contracts.md +0 -153
- package/docs/contracts/surface-matrix.md +0 -108
- package/docs/contracts/surface-tiers.md +0 -81
- package/docs/contracts/telegraph-telemetry.md +0 -83
- package/docs/contracts/ticket-bundle-format.md +0 -233
- package/docs/contracts/tier-3-contrib-plugin.md +0 -137
- package/docs/contracts/trust-and-safety.md +0 -144
- package/docs/contracts/ui-stack-extension.md +0 -237
- package/docs/contracts/ui-track-flow.md +0 -329
- package/docs/contracts/universal-skills.md +0 -91
- package/docs/contracts/user-type-schema.md +0 -146
- package/docs/contracts/value-dashboard-spec.md +0 -378
- package/docs/contracts/value-report-schema.md +0 -168
- package/docs/contracts/workflow-packs.md +0 -121
- package/docs/contracts/workspace-boundary.md +0 -84
- package/docs/contracts/workspace-documents.md +0 -144
- package/docs/contracts/write-engine.md +0 -182
- package/docs/cookbook.md +0 -152
- package/docs/customization.md +0 -685
- package/docs/decisions/ADR-001-kernel-swap-deferred.md +0 -109
- package/docs/decisions/ADR-002-kernel-bucket-overrides.md +0 -135
- package/docs/decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md +0 -137
- package/docs/decisions/ADR-004-rule-governance-pruning.md +0 -240
- package/docs/decisions/ADR-005-subagent-worktrees.md +0 -120
- package/docs/decisions/ADR-006-skill-tools-python-pilot.md +0 -114
- package/docs/decisions/ADR-007-agent-discovery-scopes.md +0 -371
- package/docs/decisions/ADR-008-installed-tools-manifest.md +0 -160
- package/docs/decisions/ADR-009-event4u-namespace.md +0 -188
- package/docs/decisions/ADR-010-profile-pack-preset-boundary.md +0 -168
- package/docs/decisions/ADR-011-domain-pack-readiness.md +0 -213
- package/docs/decisions/ADR-012-typescript-cli-shell.md +0 -162
- package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +0 -342
- package/docs/decisions/ADR-014-gui-framework-choice.md +0 -136
- package/docs/decisions/ADR-015-discovery-manifest-contract.md +0 -146
- package/docs/decisions/ADR-016-installer-architecture.md +0 -189
- package/docs/decisions/ADR-017-monorepo-physical-layout.md +0 -261
- package/docs/decisions/ADR-018-trust-and-safety-layer.md +0 -159
- package/docs/decisions/ADR-019-router-json-dist-location.md +0 -124
- package/docs/decisions/ADR-020-global-only-consumer-scope.md +0 -213
- package/docs/decisions/ADR-021-deployment-shape.md +0 -153
- package/docs/decisions/ADR-022-daily-workspace-decomposition.md +0 -140
- package/docs/decisions/ADR-023-host-agent-protocol.md +0 -129
- package/docs/decisions/ADR-024-workspace-v0-feature-floor.md +0 -126
- package/docs/decisions/ADR-025-workspace-chrome.md +0 -119
- package/docs/decisions/ADR-026-explain-mode-translation.md +0 -117
- package/docs/decisions/ADR-027-changelog-machine-vs-manual.md +0 -129
- package/docs/decisions/ADR-028-root-layout.md +0 -147
- package/docs/decisions/ADR-029-multi-workspace-deferred.md +0 -122
- package/docs/decisions/ADR-030-claude-code-command-projection.md +0 -147
- package/docs/decisions/ADR-031-validation-severity-tiers-and-projection-roundtrip.md +0 -97
- package/docs/decisions/ADR-032-linked-projects-scope.md +0 -122
- package/docs/decisions/ADR-033-distribution-identity-npm-primary.md +0 -81
- package/docs/decisions/ADR-034-per-skill-model-recommendation-transport.md +0 -63
- package/docs/decisions/ADR-035-model-capability-tiers.md +0 -104
- package/docs/decisions/ADR-036-global-install-browser-wizard-handoff.md +0 -106
- package/docs/decisions/ADR-037-cost-profile-untangle.md +0 -117
- package/docs/decisions/ADR-038-canonical-settings-path.md +0 -96
- package/docs/decisions/ADR-039-claude-skills-untracked.md +0 -139
- package/docs/decisions/ADR-040-execution-model-projection-time-filtering.md +0 -244
- package/docs/decisions/ADR-041-controlled-command-verbs.md +0 -133
- package/docs/decisions/ADR-042-runtime-resolver-decision-gate.md +0 -113
- package/docs/decisions/ADR-043-monorepo-collapse-to-src-domains.md +0 -128
- package/docs/decisions/ADR-044-command-naming-scheme-hyphenated.md +0 -250
- package/docs/decisions/ADR-045-src-source-layout-and-profiles-as-views.md +0 -111
- package/docs/decisions/ADR-046-thin-command-principle.md +0 -93
- package/docs/decisions/ADR-047-framework-neutral-stack-adaptive-commands.md +0 -94
- package/docs/decisions/ADR-048-command-justification-rule.md +0 -106
- package/docs/decisions/ADR-049-configuration-trust-boundary.md +0 -132
- package/docs/decisions/ADR-050-workspace-vs-package-root-boundary.md +0 -121
- package/docs/decisions/ADR-051-uncondensed-source-container-relocation.md +0 -114
- package/docs/decisions/ADR-052-packages-removal-and-pack-home-migration.md +0 -86
- package/docs/decisions/ADR-053-agents-namespace-dual-role-resolution.md +0 -132
- package/docs/decisions/ADR-054-rule-adherence-decay-triggered-restate.md +0 -143
- package/docs/decisions/ADR-055-flow-layer-data-model.md +0 -235
- package/docs/decisions/ADR-056-unvalidated-video-adapters-disposition.md +0 -124
- package/docs/decisions/ADR-057-consolidation-evidence-gate-outcomes.md +0 -135
- package/docs/decisions/ADR-058-condensed-output-relocation-to-dist.md +0 -94
- package/docs/decisions/ADR-059-render-resume-filesystem-as-state.md +0 -161
- package/docs/decisions/ADR-060-comfyui-sandbox-model.md +0 -154
- package/docs/decisions/ADR-061-corpus-grounding-layer.md +0 -230
- package/docs/decisions/ADR-062-encrypt-at-rest-store-architecture.md +0 -121
- package/docs/decisions/ADR-063-append-jsonl-encryption-deferred.md +0 -83
- package/docs/decisions/ADR-064-append-jsonl-per-record-encryption.md +0 -113
- package/docs/decisions/ADR-065-tier3-inbox-handoff-v0.md +0 -86
- package/docs/decisions/ADR-066-skill-body-prerendering.md +0 -93
- package/docs/decisions/ADR-067-glama-registry-listing.md +0 -259
- package/docs/decisions/ADR-068-host-tier-detection.md +0 -90
- package/docs/decisions/ADR-069-prompt-renderer.md +0 -97
- package/docs/decisions/ADR-070-tier1-drive-loop.md +0 -94
- package/docs/decisions/ADR-071-launch-drive-integration.md +0 -95
- package/docs/decisions/ADR-072-codex-gemini-drive-configs.md +0 -90
- package/docs/decisions/ADR-073-drive-health-kill-switch.md +0 -81
- package/docs/decisions/ADR-074-drive-kill-switch-auto-recovery.md +0 -84
- package/docs/decisions/ADR-075-workspace-gui-drive.md +0 -83
- package/docs/decisions/ADR-076-workspace-multi-turn.md +0 -92
- package/docs/decisions/ADR-077-workspace-followup-gui.md +0 -70
- package/docs/decisions/ADR-078-drive-health-panel.md +0 -70
- package/docs/decisions/ADR-079-workspace-host-picker.md +0 -81
- package/docs/decisions/ADR-080-host-session-expired-410.md +0 -92
- package/docs/decisions/ADR-081-drive-health-reset-and-410-affordance.md +0 -71
- package/docs/decisions/ADR-082-410-one-click-relaunch.md +0 -58
- package/docs/decisions/ADR-083-session-thread-and-arbitrary-continuation.md +0 -85
- package/docs/decisions/ADR-084-drive-health-refresh-on-drive.md +0 -52
- package/docs/decisions/ADR-085-mcp-stdio-end-user-distribution-shape.md +0 -158
- package/docs/decisions/ADR-086-read-only-cross-agent-mcp-discovery-helper.md +0 -171
- package/docs/decisions/ADR-087-installer-e2e-test-strategy.md +0 -111
- package/docs/decisions/ADR-088-no-external-runtime-federation.md +0 -144
- package/docs/decisions/ADR-089-lean-local-plugin-install.md +0 -111
- package/docs/decisions/ADR-090-visibility-command-frontmatter-field.md +0 -95
- package/docs/decisions/ADR-091-split-meta-capability-packs.md +0 -113
- package/docs/decisions/ADR-092-defer-command-tier-alias-removal.md +0 -117
- package/docs/decisions/ADR-093-ai-council-config-user-global.md +0 -117
- package/docs/decisions/ADR-094-agent-memory-layer-removal.md +0 -94
- package/docs/decisions/ADR-095-workspace-boundary-contract.md +0 -108
- package/docs/decisions/ADR-096-analysis-workbench.md +0 -110
- package/docs/decisions/ADR-097-mission-recipe-privilege-boundary.md +0 -121
- package/docs/decisions/ADR-098-evidence-first-structure-discovery.md +0 -154
- package/docs/decisions/ADR-099-file-first-pattern-library.md +0 -87
- package/docs/decisions/ADR-100-global-knowledge-card-sharing.md +0 -140
- package/docs/decisions/ADR-101-ticket-bundle-emission.md +0 -109
- package/docs/decisions/ADR-102-ticket-handoff-paste-and-mcp.md +0 -72
- package/docs/decisions/ADR-103-global-knowledge-default-off-until-measured.md +0 -92
- package/docs/decisions/ADR-104-ai-council-config-global-only.md +0 -119
- package/docs/decisions/ADR-105-automatic-subagent-orchestration.md +0 -108
- package/docs/decisions/ADR-106-recursive-verification-benchmark-gate.md +0 -126
- package/docs/decisions/ADR-107-legal-domain-pack-adoption.md +0 -70
- package/docs/decisions/ADR-108-open-source-forever-no-commercial-tier.md +0 -46
- package/docs/decisions/ADR-109-subagent-v1-contract.md +0 -246
- package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +0 -110
- package/docs/decisions/ADR-111-canonical-glama-listing.md +0 -97
- package/docs/decisions/ADR-112-stdio-lite-stays-read-only.md +0 -92
- package/docs/decisions/ADR-113-ci-native-release-label-trigger.md +0 -201
- package/docs/decisions/ADR-114-commit-policy-iron-law-override.md +0 -85
- package/docs/decisions/ADR-115-command-cluster-consolidation-phase-4.md +0 -91
- package/docs/decisions/ADR-116-memory-tripwire-activation-path.md +0 -144
- package/docs/decisions/ADR-117-subagents-auto-default-on.md +0 -89
- package/docs/decisions/ADR-118-loop-engineering-boundaries.md +0 -162
- package/docs/decisions/ADR-119-global-knowledge-default-on.md +0 -104
- package/docs/decisions/ADR-120-council-chairman-mode.md +0 -70
- package/docs/decisions/ADR-121-knowledge-sensitivity-classes.md +0 -90
- package/docs/decisions/ADR-122-adversarial-verification-council.md +0 -166
- package/docs/decisions/ADR-123-runtime-security-scope-and-spawn-hardening.md +0 -142
- package/docs/decisions/ADR-200-python-to-typescript-migration.md +0 -203
- package/docs/decisions/ADR-rule-kernel-and-router.md +0 -133
- package/docs/decisions/INDEX.md +0 -136
- package/docs/deploy/connector-setup.md +0 -129
- package/docs/deploy/env-vars.md +0 -70
- package/docs/deploy/policy-cookbook.md +0 -130
- package/docs/deploy/quickstart.md +0 -112
- package/docs/deploy/small-team-recipe.md +0 -148
- package/docs/deploy/team-deployment-posture.md +0 -111
- package/docs/design/adversarial-council-eval.md +0 -106
- package/docs/design/council-vs-solo-baseline.md +0 -92
- package/docs/design/cross-model-parity-eval.md +0 -82
- package/docs/design/length-neutral-judge-rerun.md +0 -92
- package/docs/design/utilization-window-criteria.md +0 -51
- package/docs/development.md +0 -230
- package/docs/distribution/awesome-list-submission.md +0 -46
- package/docs/distribution/consumer-matrix.md +0 -96
- package/docs/distribution/launch-story-draft.md +0 -58
- package/docs/distribution/mcp-submission-checklist.md +0 -95
- package/docs/distribution/public-install-smoke.md +0 -68
- package/docs/distribution/registries.md +0 -117
- package/docs/distribution/registry-submissions.md +0 -85
- package/docs/distribution/telemetry-privacy.md +0 -128
- package/docs/distribution/telemetry-schema.md +0 -174
- package/docs/distribution/topics-equivalents-decay-policy.md +0 -51
- package/docs/end-to-end-walkthroughs.md +0 -165
- package/docs/enforcement-by-host.md +0 -44
- package/docs/examples/agent-user.example.md +0 -22
- package/docs/experiences/agency.md +0 -49
- package/docs/experiences/content_creator.md +0 -49
- package/docs/experiences/developer.md +0 -49
- package/docs/experiences/finance.md +0 -50
- package/docs/experiences/founder.md +0 -49
- package/docs/experiences/ops.md +0 -49
- package/docs/featured-commands.md +0 -27
- package/docs/featured-skills.md +0 -95
- package/docs/flows.md +0 -67
- package/docs/getting-started-by-role.md +0 -190
- package/docs/getting-started-laravel.md +0 -72
- package/docs/getting-started-local-stdio.md +0 -77
- package/docs/getting-started.md +0 -254
- package/docs/github-topics.md +0 -93
- package/docs/governance-advantage.md +0 -72
- package/docs/governance.md +0 -96
- package/docs/guides/cross-repo-linked-projects.md +0 -93
- package/docs/guides/cross-repo-retrieval.md +0 -61
- package/docs/guides/frontend-design-corpus-refresh.md +0 -83
- package/docs/guides/local-analytics.md +0 -125
- package/docs/guides/local-knowledge.md +0 -127
- package/docs/guides/skill-discovery.md +0 -71
- package/docs/guides/skill-preview.md +0 -71
- package/docs/hook-payload-capture.md +0 -221
- package/docs/install-friction-report.md +0 -66
- package/docs/installation.md +0 -959
- package/docs/maintainers/branch-protection.md +0 -105
- package/docs/maintainers/dev-mode.md +0 -106
- package/docs/maintainers/optional-media-deps.md +0 -50
- package/docs/maintainers/system-map.md +0 -85
- package/docs/mcp-registries.md +0 -94
- package/docs/mcp-server.md +0 -175
- package/docs/mcp.md +0 -147
- package/docs/media/proof-demo.cast +0 -14
- package/docs/media/proof-demo.gif +0 -0
- package/docs/migration/consumer-template-consumption-model.md +0 -145
- package/docs/migration/divergences/README.md +0 -55
- package/docs/migration/divergences/_template.md +0 -50
- package/docs/migration/divergences/bench-stats-float-precision.md +0 -72
- package/docs/migration/divergences/mcp-telemetry-node-sqlite.md +0 -61
- package/docs/migration/divergences/pack-mcp-content-gzip-body.md +0 -53
- package/docs/migration/divergences/src-scripts-build_cloud_bundle.md +0 -63
- package/docs/migration/divergences/src-scripts-check_memory.md +0 -91
- package/docs/migration/divergences/src-scripts-inventory_abstraction_budget.md +0 -65
- package/docs/migration/divergences/src-scripts-lint_marketplace.md +0 -57
- package/docs/migration/divergences/src-scripts-lint_mcp_registry_manifest.md +0 -70
- package/docs/migration/divergences/src-scripts-spotcheck_thin_root.md +0 -60
- package/docs/migration/divergences/src-scripts-validate_agent_settings.md +0 -58
- package/docs/migration/node-floor.md +0 -86
- package/docs/migration/v1-to-v2.md +0 -156
- package/docs/migration/yaml-roundtrip-spike.md +0 -163
- package/docs/migrations/commands-1.15.0.md +0 -117
- package/docs/parity/bench-external.json +0 -58
- package/docs/parity/bench.json +0 -41
- package/docs/parity/command-frontmatter.md +0 -60
- package/docs/parity/external-runtime.md +0 -46
- package/docs/personas.md +0 -178
- package/docs/positioning-evidence.md +0 -86
- package/docs/profiles.md +0 -108
- package/docs/proof.md +0 -176
- package/docs/quality.md +0 -98
- package/docs/readme-split-plan.md +0 -102
- package/docs/recruits/_template.md +0 -81
- package/docs/release-runbook.md +0 -141
- package/docs/role-experiences.md +0 -19
- package/docs/safety.md +0 -30
- package/docs/second-brain-scope.md +0 -116
- package/docs/self-review-gate.md +0 -65
- package/docs/setup/enterprise-and-offline.md +0 -201
- package/docs/setup/mcp-client-config.md +0 -358
- package/docs/setup/mcp-cloud-endpoints.md +0 -116
- package/docs/setup/mcp-cloud-registry-listing.md +0 -99
- package/docs/setup/mcp-cloud-setup.md +0 -183
- package/docs/setup/mcp-r2-bootstrap.md +0 -82
- package/docs/setup/mcp-server-docker.md +0 -101
- package/docs/setup/per-ide/aider.md +0 -48
- package/docs/setup/per-ide/antigravity.md +0 -68
- package/docs/setup/per-ide/augment.md +0 -89
- package/docs/setup/per-ide/claude-code.md +0 -97
- package/docs/setup/per-ide/claude-desktop.md +0 -207
- package/docs/setup/per-ide/cline.md +0 -43
- package/docs/setup/per-ide/codebuddy.md +0 -63
- package/docs/setup/per-ide/codex.md +0 -46
- package/docs/setup/per-ide/continue.md +0 -68
- package/docs/setup/per-ide/copilot.md +0 -80
- package/docs/setup/per-ide/cursor.md +0 -125
- package/docs/setup/per-ide/droid.md +0 -65
- package/docs/setup/per-ide/gemini-cli.md +0 -45
- package/docs/setup/per-ide/jetbrains.md +0 -76
- package/docs/setup/per-ide/kilocode.md +0 -66
- package/docs/setup/per-ide/kiro.md +0 -72
- package/docs/setup/per-ide/opencode.md +0 -62
- package/docs/setup/per-ide/qoder.md +0 -63
- package/docs/setup/per-ide/roocode.md +0 -68
- package/docs/setup/per-ide/trae.md +0 -63
- package/docs/setup/per-ide/warp.md +0 -63
- package/docs/setup/per-ide/windsurf.md +0 -109
- package/docs/setup/per-ide/zed.md +0 -73
- package/docs/showcase.md +0 -209
- package/docs/skill-duplication-findings.md +0 -91
- package/docs/skills-catalog.md +0 -265
- package/docs/skills-taxonomy.md +0 -90
- package/docs/spawn-site-policy.md +0 -72
- package/docs/succession.md +0 -80
- package/docs/threat-model.md +0 -29
- package/docs/troubleshooting.md +0 -155
- package/docs/ui-track-mental-model.md +0 -121
- package/docs/us-vs-the-category.md +0 -38
- package/docs/value.md +0 -86
- package/docs/walkthroughs/assets/workspace-role-grid.png +0 -0
- package/docs/walkthroughs/assets/workspace-session-started.png +0 -0
- package/docs/walkthroughs/assets/workspace-task-picker.png +0 -0
- package/docs/walkthroughs/daily-workspace-a11y.md +0 -87
- package/docs/walkthroughs/daily-workspace.md +0 -127
- package/docs/wedge/production-validator/README.md +0 -81
- package/docs/wedge/production-validator/first-run-check.sh +0 -42
- package/docs/wedge/production-validator/production-validator.md +0 -83
- package/docs/wizard.md +0 -173
|
@@ -53,6 +53,10 @@ Uses `/create-pr:description-only` to generate the PR content, then creates the
|
|
|
53
53
|
- Verify the current branch is NOT the default branch (`main` / `master`).
|
|
54
54
|
- Run `git status` — warn if there are uncommitted changes.
|
|
55
55
|
- Run `git log origin/{default}..HEAD --oneline` to verify there are commits to push.
|
|
56
|
+
- **Secret-leak pre-flight (MANDATORY before push):** run
|
|
57
|
+
`./scripts-run src/scripts/check_secret_leak`. On a high-confidence hit, STOP —
|
|
58
|
+
do not push; hand to `.augment/rules/secret-vcs-guard.md` (show, ask, offer the
|
|
59
|
+
alternative, rotate-first if already in history). Pushing publishes the secret.
|
|
56
60
|
- If the branch has not been pushed yet, ask the user (in their language) whether to push.
|
|
57
61
|
|
|
58
62
|
### 1b. Freshness gate — MANDATORY before opening any PR
|
|
@@ -55,7 +55,7 @@ for narrative structure, mental-models lens for object selection).
|
|
|
55
55
|
- **Do NOT chain sub-commands.** One `/research[:<sub>]` per turn.
|
|
56
56
|
- If the user invokes `/research` with no argument, **show the menu** —
|
|
57
57
|
do not guess whether they meant the bare workflow or a sub-command.
|
|
58
|
-
- **Edit
|
|
58
|
+
- **Edit `src/` only.** `dist/agent-src/` and `.augment/`
|
|
59
59
|
regenerate from source.
|
|
60
60
|
|
|
61
61
|
## Trigger
|
|
@@ -27,7 +27,7 @@ Council-driven challenge + refactor scope of the
|
|
|
27
27
|
artefact), then drives the user through applying convergence
|
|
28
28
|
findings as numbered patches against the roadmap file.
|
|
29
29
|
|
|
30
|
-
**Source of truth:**
|
|
30
|
+
**Source of truth:** `src/` — never read or edit
|
|
31
31
|
`dist/agent-src/` or `.augment/` directly.
|
|
32
32
|
|
|
33
33
|
## Instructions
|
|
@@ -36,7 +36,7 @@ suite's own `lint_agent_security` self-audit gate.
|
|
|
36
36
|
|
|
37
37
|
(omit `--root` to audit the current repo). The script reuses the Phase-1
|
|
38
38
|
detection library under the false-positive containment convention
|
|
39
|
-
([`security-lint-containment`](
|
|
39
|
+
([`security-lint-containment`](../docs/guidelines/agent-infra/security-lint-containment.md)),
|
|
40
40
|
so doc/example files do not tank the score. It scans instruction files
|
|
41
41
|
(`CLAUDE.md`, `AGENTS.md`, `.cursor/rules`, `.github/copilot-instructions.md`,
|
|
42
42
|
`.clinerules`, `.windsurfrules`), MCP configs (`.mcp.json`, `.cursor/mcp.json`,
|
|
@@ -50,6 +50,10 @@ refuse with the enable pointer and **STOP**:
|
|
|
50
50
|
>
|
|
51
51
|
> Key reference: `docs/contracts/ai-team-config.md`.
|
|
52
52
|
|
|
53
|
+
Deterministic mirror of gates 1+2: `npx tsx src/scripts/ai_team/team_dispatch.ts
|
|
54
|
+
--delegate-gate` exits non-zero (pointer on stderr) unless BOTH flags true — run
|
|
55
|
+
it instead of hand-parsing YAML when a shell is available.
|
|
56
|
+
|
|
53
57
|
### 3. Gate — plugin presence (fail closed)
|
|
54
58
|
|
|
55
59
|
On a Claude Code host, verify the official plugin is installed. Absent →
|
|
@@ -68,7 +68,7 @@ contract under [`scripts/media/lib/adapter-contract.md`](../../scripts/media/lib
|
|
|
68
68
|
- **Run `validate-deps.sh` first.** Every subcommand calls
|
|
69
69
|
`scripts/ai-video/lib/validate-deps.sh` before any adapter; fails
|
|
70
70
|
fast on missing personas / skills.
|
|
71
|
-
- **Edit
|
|
71
|
+
- **Edit `src/` only.** Generated mirrors regenerate.
|
|
72
72
|
|
|
73
73
|
## See also
|
|
74
74
|
|
|
@@ -26,7 +26,7 @@ Use this variant in `AGENTS.md` at the package root.
|
|
|
26
26
|
|
|
27
27
|
## Consumer-template variant
|
|
28
28
|
|
|
29
|
-
Use this variant in
|
|
29
|
+
Use this variant in `src/agent-src/templates/AGENTS.md`. The
|
|
30
30
|
consumer's `AGENTS.md` lands at the consumer-project root after install.
|
|
31
31
|
|
|
32
32
|
```
|
|
@@ -45,7 +45,7 @@ The package-root and the consumer template answer the same five
|
|
|
45
45
|
questions but in different repos:
|
|
46
46
|
|
|
47
47
|
- The package-root variant points at this repo's authoring layer
|
|
48
|
-
(
|
|
48
|
+
(`src/`) and the package's CI entry point.
|
|
49
49
|
- The consumer variant tells the agent it is in a **consumer** project
|
|
50
50
|
where `.augment/` is an installed artifact and editing it is wrong.
|
|
51
51
|
|
|
@@ -85,6 +85,49 @@ Every inferred decision records `tier_source: "inferred"` in orchestration
|
|
|
85
85
|
telemetry (static pins record `"static"`; session-tier runs `"inherit"`) so
|
|
86
86
|
the evidence gate scores inferred routing separately from static pinning.
|
|
87
87
|
|
|
88
|
+
## Lookup-class rung (L0 — road-to-lean-agent-init, BELOW the tiers)
|
|
89
|
+
|
|
90
|
+
Before any spawn decision, a lookup-shaped task routes to a **deterministic
|
|
91
|
+
primitive** — no subagent, no tier. Live evidence (2026-07-28): four
|
|
92
|
+
`general-purpose` workers burned ~1.21M tokens on four lookup tasks a
|
|
93
|
+
primitive answers for <1k each.
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
LOOKUP-SHAPED TASK → DETERMINISTIC PRIMITIVE. NO SUBAGENT SPAWN.
|
|
97
|
+
INDEX-MISS OR GENUINE AMBIGUITY → REGULAR ESCALATION TO A SUBAGENT —
|
|
98
|
+
NEVER A SILENTLY DEGRADED ANSWER. NO LLM CLASSIFIER FALLBACK (CUT C3).
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
| Task pattern | Lookup class | Primitive |
|
|
102
|
+
|---|---|---|
|
|
103
|
+
| "where is X defined" / "confirm X's definition location" | `definition` | capped `rg` (definition-shaped patterns, `--max-count`); `code_graph query` only as opportunistic accelerant when an index is present + fresh + `hooks.code_graph.enabled: true` |
|
|
104
|
+
| "who calls / imports X" / "confirm call sites" | `references` | capped `rg` (reference-shaped patterns); same optional `code_graph affected` accelerant clause |
|
|
105
|
+
| "does string Y exist" / "probe candidate strings" | `string-existence` | FTS one-shot (`memory_lookup` for the knowledge corpus) or capped `rg -n --max-count` for the codebase |
|
|
106
|
+
| "run report Z" / "run check_*" | `report-run` | direct script run, wrapped per the **measured** rtk allowlist (`internal/bench/rtk-savings/RESULTS.md` — wrap only the ~55%-savings class) |
|
|
107
|
+
|
|
108
|
+
**Why rg-first for definition/references** (council debate 2026-07-28,
|
|
109
|
+
claude-sonnet-4-5 + gpt-4o, 2 rounds): the pre-registered benchmark behind the
|
|
110
|
+
`code-graph-retrieval-null` claim (`docs/CLAIMS.md`) measured native-graph
|
|
111
|
+
recall 0.365 vs grep 0.797 on graph-shaped questions, root cause an **indexing
|
|
112
|
+
gap** (TS arrow-function exports produce no symbol nodes) that hits structured
|
|
113
|
+
lookups exactly as it hits NL retrieval — and the recorded consequence bound
|
|
114
|
+
keeps `code_graph.enabled` false permanently. The accelerant clause is the
|
|
115
|
+
escape hatch that bound names ("unless external evidence appears"); today
|
|
116
|
+
inert.
|
|
117
|
+
|
|
118
|
+
**Escalation, not degradation:** a primitive returning nothing (index miss,
|
|
119
|
+
ambiguous pattern, absent report script) — **or an unusable result** (empty,
|
|
120
|
+
ambiguous between candidates, or visibly off-target because the lookup
|
|
121
|
+
pattern matched a task that was not actually a lookup, e.g. a dynamically
|
|
122
|
+
constructed symbol name) — escalates to the regular classification path —
|
|
123
|
+
answer-quality bar never drops. "Primitive ran but result unusable"
|
|
124
|
+
escalates exactly like "class unknown". `unknown` resolves to the regular
|
|
125
|
+
path (`inherit` semantics), never down-guessed.
|
|
126
|
+
|
|
127
|
+
Correctness floor: golden comparison in `internal/bench/lean-init/`
|
|
128
|
+
(primitive answer ≡ agent answer on ≥10 lookup tasks, incl. the four observed
|
|
129
|
+
shapes); any mismatch is a routing bug, not a rounding error.
|
|
130
|
+
|
|
88
131
|
## v2+ (deferred, gated on Phase 6 evidence)
|
|
89
132
|
|
|
90
133
|
LLM-based classification — only if the deterministic rules prove too coarse
|
|
@@ -95,8 +138,11 @@ budgeted (consume part of the N=3 autonomous budget) and opt-in. Not in v1.
|
|
|
95
138
|
|
|
96
139
|
The deterministic rules are encoded in
|
|
97
140
|
[`src/scripts/_lib/auto_dispatch.ts`](../../../../src/scripts/_lib/auto_dispatch.ts)
|
|
98
|
-
(`classifyTask`), covered by
|
|
99
|
-
[`tests/scripts/_lib_auto_dispatch.test.ts`](../../../../tests/scripts/_lib_auto_dispatch.test.ts)
|
|
141
|
+
(`classifyTask`, `classifyLookup` for the lookup-class rung), covered by
|
|
142
|
+
[`tests/scripts/_lib_auto_dispatch.test.ts`](../../../../tests/scripts/_lib_auto_dispatch.test.ts)
|
|
143
|
+
and the lookup corpus in
|
|
144
|
+
[`src/scripts/_lib/auto_dispatch.corpus.test.ts`](../../../../src/scripts/_lib/auto_dispatch.corpus.test.ts)
|
|
145
|
+
(`LOOKUP_CORPUS` — the four live-observed shapes + negative controls).
|
|
100
146
|
|
|
101
147
|
## Related
|
|
102
148
|
|
|
@@ -56,6 +56,16 @@ v1 forward-compat rule on unknown fields).
|
|
|
56
56
|
| `session_tier` | string \| null | **Cost-% extension.** The orchestrator's OWN tier — the baseline the downshift cost-% measures `tier_chosen` against (a `high`→`lite` downshift is a rate win the token count can't see). `null` = not recorded. |
|
|
57
57
|
| `first_pass_success` | bool \| null | **QUALITY extension (council verdict: quality × cost paired).** `true` = the subagent return was adopted without parent rework; `false` = the parent had to rework the return before adopting. Precise rework definition: § Operationalization below. `null` = pre-extension line / not measured. Boolean only, no bodies. |
|
|
58
58
|
| `escalated` | bool \| null | **QUALITY extension (council verdict: quality × cost paired).** `true` = the slice was retried on a higher tier after a verification failure; `false` = no escalation. Semantics: § Operationalization below. `null` = pre-extension line / not measured. Boolean only, no bodies. |
|
|
59
|
+
| `init_tokens` | int \| null | **Lean-init extension (road-to-lean-agent-init Phase 3).** Spawn-payload tokens at worker init — the payload-truth measurement feeding the Phase-5 baseline gate (p95 < ~1,500 tokens/worker drops the L2/L3 bets). `null` = not measured. Counts only. |
|
|
60
|
+
| `payload_hash` | string \| null | **Lean-init extension.** 8–64-char hex digest of the spawn payload — prefix-stability / cache measurement. A hash can never smuggle content (privacy by construction). `null` = not measured. |
|
|
61
|
+
| `lookup_class` | enum \| null | **Lean-init extension.** Lookup class the L0 rung matched: `definition` · `references` · `string-existence` · `report-run`. `null` = not a lookup-shaped dispatch. |
|
|
62
|
+
| `route_taken` | enum \| null | **Lean-init extension.** `primitive` (deterministic primitive answered — no spawn) · `subagent` (escalated). With `lookup_class`, measures the tool-not-agent rung's hit rate. A `primitive` line is the ONE recordable zero-spawn event (`spawn_count: 0`) — the routing decision itself is the datum the cost claim reads. |
|
|
63
|
+
| `budget_hit` | bool \| null | **Lean-init extension.** Worker hit its `max_tokens_per_worker` stop-loss (L0b) and returned the structured partial result. Feeds budget-seed refinement. `null` = not measured. |
|
|
64
|
+
| `correctness_match` | bool \| null | **Lean-init extension.** Golden/correctness comparison verdict for a primitive route (primitive answer ≡ agent answer). Populated only when a comparison arm actually ran (bench/golden mode); on real zero-spawn primitive routes there is no agent answer to compare against, so `null` is the NORMAL field value — never read `null` as "unchecked = suspicious". |
|
|
65
|
+
| `cache_hit` | bool \| null | **Lean-init extension (Phase 4 prefix stability).** Provider-reported prompt-cache hit on the spawn payload. Measurement only — no savings claim without provider-response evidence. `null` = not measured. |
|
|
66
|
+
| `origin` | string \| null | **Lean-init extension (council Q5 segregation).** Id-shaped sample tag (`lean-init-2026`) keeping lean-init efficiency lines cleanly separable from the `road-to-orchestration-scope-decision` sample. `null` = untagged line. Never free-form. |
|
|
67
|
+
| `rules_carried` | int \| null | **Lean-init extension (L6 demand signal).** Rules in the worker's scoped projection — the carried set. With `rules_used`, yields the per-worker rule-usage quota the parked `later/road-to-deferred-rule-retriever` resume condition asks for ("are worker rules actually carried unused?"). `null` = not measured. Counts only. |
|
|
68
|
+
| `rules_used` | int \| null | **Lean-init extension (L6 demand signal).** Rules the worker actually applied/cited. Validation: never exceeds `rules_carried`. `null` = not measured. Counts only. |
|
|
59
69
|
|
|
60
70
|
These routing + cost fields are additive and optional — a line without them is
|
|
61
71
|
still a valid orchestration line; readers ignore unknown fields per the v1
|
|
@@ -1,11 +1,112 @@
|
|
|
1
|
-
# Subagent Modes —
|
|
2
|
-
|
|
3
|
-
Extended detail for the
|
|
4
|
-
modes
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
# Subagent Modes — per-mode detail (decision rows, contracts, heavy modes)
|
|
2
|
+
|
|
3
|
+
Extended detail for the [`subagent-orchestration`](../../skills/subagent-orchestration/SKILL.md)
|
|
4
|
+
modes. Split out of the skill body to keep it under the size budget; the mode
|
|
5
|
+
list, form gate, selection rules, and procedure stay inline in the skill. Pull
|
|
6
|
+
this when you dispatch a mode and need its decision row, execution contract, or
|
|
7
|
+
the heavy-mode detail (modes 7–9).
|
|
8
|
+
|
|
9
|
+
## Modes 1–6 — decision rows and execution contracts
|
|
10
|
+
|
|
11
|
+
### Mode 1 — do-and-judge
|
|
12
|
+
|
|
13
|
+
| When to use | When not | Model pairing |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| Single-change task with non-trivial risk | Tiny fix, or spike/exploration | implementer = session; judge = one tier up |
|
|
16
|
+
|
|
17
|
+
### Mode 2 — do-and-judge-two-stage
|
|
18
|
+
|
|
19
|
+
Implementer produces a diff; **two judges run sequentially** — first a
|
|
20
|
+
spec-compliance reviewer (does the diff satisfy the stated spec /
|
|
21
|
+
acceptance criteria?), then a code-quality reviewer (is the diff well-
|
|
22
|
+
written for the codebase it lands in?). The orchestrator only proceeds
|
|
23
|
+
to stage two if stage one returns `DONE` or `DONE_WITH_CONCERNS`. A
|
|
24
|
+
stage-one `BLOCKED` shortcuts the loop — there is no point quality-
|
|
25
|
+
reviewing a diff that does not satisfy the spec.
|
|
26
|
+
|
|
27
|
+
| When to use | When not | Model pairing |
|
|
28
|
+
|---|---|---|
|
|
29
|
+
| Spec is contested or AC are detailed; diff size makes one judge prone to missing one axis (correctness vs craft) | Spec is one sentence, or the diff is one line (collapse to mode 1) | implementer = session; spec-judge = one tier up; quality-judge = same tier as spec-judge, fresh context |
|
|
30
|
+
|
|
31
|
+
**Why two stages, not one judge with both rubrics:** combining the
|
|
32
|
+
rubrics in one prompt reliably regresses one of them — the judge "spends
|
|
33
|
+
attention" on whichever rubric appears last. Splitting the prompts
|
|
34
|
+
forces each judge to commit fully to its rubric.
|
|
35
|
+
|
|
36
|
+
**Stage-routing rule:**
|
|
37
|
+
- Stage-1 returns `DONE` → run stage-2.
|
|
38
|
+
- Stage-1 returns `DONE_WITH_CONCERNS` → run stage-2; concerns carry
|
|
39
|
+
forward to the final envelope.
|
|
40
|
+
- Stage-1 returns `NEEDS_CONTEXT` → pause; stage-2 does not run.
|
|
41
|
+
- Stage-1 returns `BLOCKED` → final verdict is `BLOCKED`; stage-2
|
|
42
|
+
does not run (saves cost).
|
|
43
|
+
|
|
44
|
+
### Mode 3 — do-in-steps
|
|
45
|
+
|
|
46
|
+
| When to use | When not | Model pairing |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| Multi-step plan with ordered dependencies | Single-step change, or when steps are independent (use `do-in-parallel`) | implementer = session; judge = one tier up |
|
|
49
|
+
|
|
50
|
+
### Mode 4 — do-in-parallel
|
|
51
|
+
|
|
52
|
+
| When to use | When not | Model pairing |
|
|
53
|
+
|---|---|---|
|
|
54
|
+
| Independent slices (different files, non-overlapping) | Any slice touches shared state | implementer = session; judge = one tier up, run once |
|
|
55
|
+
|
|
56
|
+
### Mode 5 — do-competitively
|
|
57
|
+
|
|
58
|
+
| When to use | When not | Model pairing |
|
|
59
|
+
|---|---|---|
|
|
60
|
+
| Broad solution space (algorithm choice, API shape) | Well-defined problem with one good answer | implementers = same tier (≥2 instances); judge = one tier up |
|
|
61
|
+
|
|
62
|
+
### Mode 6 — judge-with-debate
|
|
63
|
+
|
|
64
|
+
| When to use | When not | Model pairing |
|
|
65
|
+
|---|---|---|
|
|
66
|
+
| Security, data integrity, public API change | Routine internal refactor | judges = same tier (2x); meta-judge = one tier up |
|
|
67
|
+
|
|
68
|
+
## Severity-conditioned team composition — conditions pattern
|
|
69
|
+
|
|
70
|
+
Guidance, not a new object class (persona-catalog disposition; AI council
|
|
71
|
+
2026-07-27, claude-sonnet-4-5 + gpt-4o: capture as guidance on this
|
|
72
|
+
existing surface — no roster schema, no linter, no fourth scoping
|
|
73
|
+
ontology). Incident-style severity tiers refine composition and
|
|
74
|
+
activation **within** the form the static gate already picked — severity
|
|
75
|
+
never overrides the form gate, the Iron Law, or any safety floor.
|
|
76
|
+
|
|
77
|
+
| Severity | Composition + activation | Existing mode(s) |
|
|
78
|
+
|---|---|---|
|
|
79
|
+
| Critical — prod impact, security, data integrity | Full parallel team; debate-grade review on the aggregate | `do-in-parallel` + `judge-with-debate` (Mode 9 where opted in) |
|
|
80
|
+
| High — contested spec, cross-layer risk | Implementer + two sequential judges | `do-and-judge-two-stage` |
|
|
81
|
+
| Medium — routine multi-step | Implementer + judge between steps | `do-in-steps` / `do-and-judge` |
|
|
82
|
+
| Low — small, reversible | Solo with async review | in-session (`none`); optional single async judge |
|
|
83
|
+
|
|
84
|
+
At equal severity the cheapest-mode preference (skill § 3. Pick the mode)
|
|
85
|
+
still applies; escalate one tier only on a named risk signal, never on
|
|
86
|
+
vibes.
|
|
87
|
+
|
|
88
|
+
## Status taxonomy — rationale and routing semantics
|
|
89
|
+
|
|
90
|
+
Every implementer or judge return conforms to
|
|
91
|
+
[`schemas/subagent-status.json`](../../../skills/subagent-orchestration/schemas/subagent-status.json).
|
|
92
|
+
Four statuses, no free-form alternatives:
|
|
93
|
+
|
|
94
|
+
| Status | Meaning | Required keys (beyond `status`, `summary`) |
|
|
95
|
+
|---|---|---|
|
|
96
|
+
| `DONE` | Work shipped, all gates green. | `evidence[]` |
|
|
97
|
+
| `DONE_WITH_CONCERNS` | Work shipped but caller must act on concerns. | `evidence[]`, `concerns[]` |
|
|
98
|
+
| `NEEDS_CONTEXT` | Paused; caller can unblock by answering. | `blocking_question` |
|
|
99
|
+
| `BLOCKED` | No path forward exists. | `blocking_reason` |
|
|
100
|
+
|
|
101
|
+
**Why a fixed taxonomy:** orchestrators (`/do-and-judge`, `/do-in-steps`)
|
|
102
|
+
route on status. Free-form "kind of done" returns force the orchestrator
|
|
103
|
+
to interpret prose, which silently regresses the two-revision ceiling and
|
|
104
|
+
the judge-rejected-do-not-apply rule. The schema makes routing mechanical.
|
|
105
|
+
|
|
106
|
+
**Distinguishing `NEEDS_CONTEXT` from `BLOCKED`:** `NEEDS_CONTEXT` means
|
|
107
|
+
*"you, the caller, can fix this by telling me X"*. `BLOCKED` means
|
|
108
|
+
*"no input from you unblocks this — escalate or rescope"*. If a subagent
|
|
109
|
+
is unsure, it picks `BLOCKED` and the caller can downgrade.
|
|
9
110
|
|
|
10
111
|
## Mode 7 — do-in-worktrees
|
|
11
112
|
|
|
@@ -21,6 +21,26 @@ orchestrator synthesises and re-verifies.
|
|
|
21
21
|
never inline content — same minimal-slice / privacy floor as the spawn contract.
|
|
22
22
|
- `mutating` marks a finding whose action changes files/state (feeds the verify link).
|
|
23
23
|
|
|
24
|
+
## Budget-hit partial result
|
|
25
|
+
|
|
26
|
+
Worker's `max_tokens_per_worker` stop-loss fires
|
|
27
|
+
([spawn contract § Per-worker token stop-loss](subagent-spawn-contract.md#per-worker-token-stop-loss-l0b--hard-budget-structured-escalation))
|
|
28
|
+
→ return is `BLOCKED` envelope whose body is this shape instead:
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{
|
|
32
|
+
"budget_hit": true,
|
|
33
|
+
"found": ["file:line | id | path"],
|
|
34
|
+
"remaining": "<what stays unexplored, one sentence>",
|
|
35
|
+
"suggested_next_rung": "primitive | higher-tier-subagent | in-session"
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
`budget_hit: true` is the escalation flag; `found` follows same
|
|
40
|
+
refs-not-bodies floor as `evidence_refs`. Validator:
|
|
41
|
+
`worker_budget.validateWorkerPartialResult` — orchestrator never adopts
|
|
42
|
+
invalid partial return.
|
|
43
|
+
|
|
24
44
|
## Orchestrator synthesis duties
|
|
25
45
|
|
|
26
46
|
```
|
|
@@ -13,7 +13,8 @@ task without re-inventing any taxonomy.
|
|
|
13
13
|
"role_mode": "developer|reviewer|tester|po|incident|planner|null",
|
|
14
14
|
"profile": "<active profile id or null>",
|
|
15
15
|
"personas": ["<persona id>", "..."],
|
|
16
|
-
"knowledge_refs": ["<id-or-path>", "..."]
|
|
16
|
+
"knowledge_refs": ["<id-or-path>", "..."],
|
|
17
|
+
"max_tokens_per_worker": 15000
|
|
17
18
|
}
|
|
18
19
|
```
|
|
19
20
|
|
|
@@ -41,6 +42,28 @@ private-data leg stays narrow: the composer rejects inline bodies (multi-line /
|
|
|
41
42
|
oversized entries), accepts only ref-like tokens, and caps the count. Anything
|
|
42
43
|
dropped is recorded in `warnings` and surfaced — never silently widened.
|
|
43
44
|
|
|
45
|
+
## Per-worker token stop-loss (L0b) — hard budget, structured escalation
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
EVERY DISPATCHED WORKER CARRIES A max_tokens_per_worker BUDGET FOR ITS TIER.
|
|
49
|
+
ON HIT: RETURN A STRUCTURED PARTIAL RESULT + ESCALATION FLAG — STOP EXPLORING.
|
|
50
|
+
A WORKER OVERRUNNING ITS BUDGET 20× IS A DISPATCH ERROR ON THE WRONG RUNG,
|
|
51
|
+
NOT DILIGENCE.
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Budgets keyed by the worker's resolved tier
|
|
55
|
+
(`worker_budget.budgetForTier`; start values `lite: 15k` — the lookup-class
|
|
56
|
+
seed — `medium: 60k`, `high: 150k`, refined from `budget_hit` telemetry, never
|
|
57
|
+
final). On hit the worker returns a `BLOCKED` envelope whose body is the
|
|
58
|
+
partial-result shape from the
|
|
59
|
+
[response contract](subagent-response-contract.md#budget-hit-partial-result):
|
|
60
|
+
what was found (refs), what remains, suggested next rung. The stop-loss
|
|
61
|
+
**composes** with the N=3 validation budget
|
|
62
|
+
([`autonomous-execution`](../../rules/autonomous-execution.md)) and the
|
|
63
|
+
ADR-109 response contract — replaces nothing. Live evidence (2026-07-28):
|
|
64
|
+
four lookup-class workers burned 280–327k tokens each on tasks a
|
|
65
|
+
deterministic primitive answers for <1k.
|
|
66
|
+
|
|
44
67
|
## Bundle resolver — bind to the existing surfaces
|
|
45
68
|
|
|
46
69
|
The brief is **resolved**, not hand-built. `resolveBundle(slice)` maps a task
|
|
@@ -64,9 +87,36 @@ only, never bodies.
|
|
|
64
87
|
|
|
65
88
|
[`src/scripts/_lib/subagent_spawn.ts`](../../../../src/scripts/_lib/subagent_spawn.ts)
|
|
66
89
|
(`composeSpawnBrief`) + [`src/scripts/_lib/subagent_bundle.ts`](../../../../src/scripts/_lib/subagent_bundle.ts)
|
|
67
|
-
(`resolveBundle`, `filterKnowledgeByPolicy`, `bundleAuditLine`)
|
|
90
|
+
(`resolveBundle`, `filterKnowledgeByPolicy`, `bundleAuditLine`) +
|
|
91
|
+
[`src/scripts/_lib/worker_budget.ts`](../../../../src/scripts/_lib/worker_budget.ts)
|
|
92
|
+
(`budgetForTier`, `evaluateWorkerBudget`, `validateWorkerPartialResult`),
|
|
93
|
+
covered by
|
|
68
94
|
[`tests/scripts/_lib_subagent_spawn.test.ts`](../../../../tests/scripts/_lib_subagent_spawn.test.ts)
|
|
69
|
-
+ [`tests/scripts/_lib_subagent_bundle.test.ts`](../../../../tests/scripts/_lib_subagent_bundle.test.ts)
|
|
95
|
+
+ [`tests/scripts/_lib_subagent_bundle.test.ts`](../../../../tests/scripts/_lib_subagent_bundle.test.ts)
|
|
96
|
+
+ [`tests/scripts/_lib_worker_budget.test.ts`](../../../../tests/scripts/_lib_worker_budget.test.ts)
|
|
97
|
+
(the budget-hit partial-result fixture).
|
|
98
|
+
|
|
99
|
+
## Worker rtk allowlist — wrap only the measured class
|
|
100
|
+
|
|
101
|
+
Worker tool loops wrap a command with rtk **only** when that command class
|
|
102
|
+
measured ≥ ~50% output saving in `internal/bench/rtk-savings/RESULTS.md`
|
|
103
|
+
(`git status`, full-format `git log -N`, `ls -la`); the ~0%-class
|
|
104
|
+
(`--oneline`, `--stat` views, `npm ls`) stays unwrapped — wrap overhead
|
|
105
|
+
without return. Deterministic list: `src/scripts/_lib/rtk_allowlist.ts`
|
|
106
|
+
(`shouldWrapWithRtk`); congruence with RESULTS.md is test-enforced
|
|
107
|
+
(`tests/scripts/_lib_rtk_allowlist.test.ts`) — numbers live in the bench
|
|
108
|
+
file, referenced, never duplicated.
|
|
109
|
+
|
|
110
|
+
## Prefix stability — deterministic payload ordering
|
|
111
|
+
|
|
112
|
+
Spawn payloads serialize **static prefix first** (role contract, profile,
|
|
113
|
+
personas, budget — byte-identical across dispatches of the same
|
|
114
|
+
configuration), **variable task part last**; no timestamps, no random IDs
|
|
115
|
+
(`serializeSpawnPayload` / `spawnPayloadHash`). Provider prompt-caching keys
|
|
116
|
+
on the stable prefix; `payload_hash` + `cache_hit` audit fields
|
|
117
|
+
([`orchestration-telemetry`](orchestration-telemetry.md)) measure whether it
|
|
118
|
+
actually hits. Measurement only — no savings claim without provider-response
|
|
119
|
+
evidence.
|
|
70
120
|
|
|
71
121
|
## Worker-prompt rules — verbatim at spawn
|
|
72
122
|
|
|
@@ -19,12 +19,58 @@ When an agent loads any skill, rule, command, guideline, or template:
|
|
|
19
19
|
```
|
|
20
20
|
1. Load original from .augment/{type}/{name}
|
|
21
21
|
2. Check agents/overrides/{type}/{name} exists?
|
|
22
|
-
├── YES →
|
|
23
|
-
│ ├──
|
|
24
|
-
│
|
|
22
|
+
├── YES → Is the target a KERNEL or safety-floor rule?
|
|
23
|
+
│ ├── YES → replace → REFUSE. Report it. Keep the original.
|
|
24
|
+
│ │ extend → allowed ONLY with a registered exception (below)
|
|
25
|
+
│ └── NO → Read Mode header
|
|
26
|
+
│ ├── extend → Apply original FIRST, then layer override on top
|
|
27
|
+
│ └── replace → Skip original entirely, use override only
|
|
25
28
|
└── NO → Use original unchanged
|
|
26
29
|
```
|
|
27
30
|
|
|
31
|
+
## The non-overridable class
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
A KERNEL OR SAFETY-FLOOR RULE MAY BE TIGHTENED, NEVER REPLACED OR RELAXED.
|
|
35
|
+
A `replace`-MODE OVERRIDE ON ONE IS REFUSED AND REPORTED — NEVER SILENTLY APPLIED.
|
|
36
|
+
AN `extend` ON ONE REQUIRES A REGISTERED, JUSTIFIED EXCEPTION.
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
The nine kernel rules — `agent-authority`, `ask-when-uncertain`, `commit-policy`,
|
|
40
|
+
`direct-answers`, `language-and-tone`, `no-cheap-questions`,
|
|
41
|
+
`non-destructive-by-default`, `scope-control`, `verify-before-complete` — plus
|
|
42
|
+
anything carrying `tier: safety-floor`, are not replaceable. Dropping an empty
|
|
43
|
+
file at `agents/overrides/rules/non-destructive-by-default.md` must not remove
|
|
44
|
+
the Hard Floor.
|
|
45
|
+
|
|
46
|
+
**Why not a blanket ban.** Legitimate tightening exists, and this package does
|
|
47
|
+
it: its own `verify-before-complete` override adds a mandatory-Playwright clause
|
|
48
|
+
for UI changes. Banning the name would forbid a change that makes the floor
|
|
49
|
+
*stronger*. So direction matters, not identity — and since no linter can prove
|
|
50
|
+
"relaxes" versus "legitimately narrows" from prose, `extend` is the machine-
|
|
51
|
+
checkable proxy for tightening and the registry carries the human judgement.
|
|
52
|
+
|
|
53
|
+
**The exception registry.** An `extend` override on a kernel or safety-floor rule
|
|
54
|
+
requires an entry in `agents/overrides/kernel-exceptions.yml`:
|
|
55
|
+
|
|
56
|
+
```yaml
|
|
57
|
+
exceptions:
|
|
58
|
+
- rule: verify-before-complete
|
|
59
|
+
mode: extend
|
|
60
|
+
justification: "Ships a browser UI; code-only tests cannot prove what renders."
|
|
61
|
+
approved_by: maintainer
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Honest limit — read this before trusting the class.** This is a norm with a
|
|
65
|
+
partial gate, and saying so is the point. The override layer is resolved by the
|
|
66
|
+
*agent reading these instructions*, not by a loader, so an `extend` block that
|
|
67
|
+
says "ignore everything above" is not mechanically detectable — and nothing here
|
|
68
|
+
stops a consumer relaxing a rule through another channel (a persona file,
|
|
69
|
+
host-level config, a direct instruction). What the gate does cover is this
|
|
70
|
+
package's own authoring surface: a `replace`-mode kernel override, or an
|
|
71
|
+
unregistered kernel exception, fails deterministically. Everything else is
|
|
72
|
+
reported, not claimed as enforced.
|
|
73
|
+
|
|
28
74
|
## Directory Mapping
|
|
29
75
|
|
|
30
76
|
```
|
|
@@ -93,7 +139,9 @@ The original is loaded first. The override adds, modifies, or removes specific p
|
|
|
93
139
|
|
|
94
140
|
## Mode: replace
|
|
95
141
|
|
|
96
|
-
The original is completely ignored. The override is the sole source of truth
|
|
142
|
+
The original is completely ignored. The override is the sole source of truth —
|
|
143
|
+
**except for kernel and safety-floor rules, where `replace` is refused outright**
|
|
144
|
+
(see "The non-overridable class" above).
|
|
97
145
|
|
|
98
146
|
**Use when:**
|
|
99
147
|
- The shared skill/rule fundamentally doesn't fit the project
|
|
@@ -101,6 +149,24 @@ The original is completely ignored. The override is the sole source of truth.
|
|
|
101
149
|
|
|
102
150
|
**Best practice:** Must be self-contained and complete. No references to the original.
|
|
103
151
|
|
|
152
|
+
**Note the update cost.** A whole-file replacement freezes that file at the
|
|
153
|
+
version you forked it from: later fixes to the original — including security
|
|
154
|
+
fixes — stop reaching you, silently, because your copy wins on name match
|
|
155
|
+
forever. Prefer `extend`, which keeps the rest of the original in the update
|
|
156
|
+
flow. This is the same silent-drift failure the deploy-tiering discussion names.
|
|
157
|
+
|
|
158
|
+
## Citation obligation
|
|
159
|
+
|
|
160
|
+
Every override carries, directly under its Mode header, one line naming what it
|
|
161
|
+
overrides and why:
|
|
162
|
+
|
|
163
|
+
```markdown
|
|
164
|
+
> Overrides: verify-before-complete §Turn-completion — ships a browser UI; code-only tests cannot prove what renders.
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Without it the layer is usable but not auditable: a reviewer six months later
|
|
168
|
+
cannot tell an intentional narrowing from an accident. No reason, no override.
|
|
169
|
+
|
|
104
170
|
## Agent Behavior
|
|
105
171
|
|
|
106
172
|
Agents **must** check for overrides before applying any shared resource:
|
|
@@ -111,6 +177,10 @@ Agents **must** check for overrides before applying any shared resource:
|
|
|
111
177
|
4. Before reading a guideline → check `agents/overrides/guidelines/{lang}-{name}.md`
|
|
112
178
|
5. Before using a template → check `agents/overrides/templates/{name}.md`
|
|
113
179
|
|
|
180
|
+
**Before honouring an override on a rule, check the non-overridable class
|
|
181
|
+
first.** A `replace` on a kernel or safety-floor rule is refused and reported to
|
|
182
|
+
the user — it is never silently dropped and never silently applied.
|
|
183
|
+
|
|
114
184
|
## When to Create vs. When to Fix
|
|
115
185
|
|
|
116
186
|
| Situation | Action |
|
|
@@ -155,7 +225,7 @@ When a project using this package wants to **optimize** a shared rule or skill:
|
|
|
155
225
|
|
|
156
226
|
### Anti-patterns
|
|
157
227
|
|
|
158
|
-
- Keeping the override after upstream merge →
|
|
228
|
+
- Keeping the override after upstream merge → causes drift
|
|
159
229
|
- Submitting only the condensed version → breaks source-of-truth workflow
|
|
160
230
|
- Submitting project-specific behavior as universal improvement
|
|
161
231
|
- Forgetting to create the PR → improvement stays siloed
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "auto"
|
|
3
|
+
tier: "2a"
|
|
4
|
+
alwaysApply: false
|
|
5
|
+
description: "About to port/adapt/reuse external code (algorithm, structure, >~10 lines) — read, close the source, re-derive; conscious borrows need a ledger entry + license check first"
|
|
6
|
+
triggers:
|
|
7
|
+
- intent: "porting or adapting code from an external source"
|
|
8
|
+
- intent: "implementing an algorithm or structure seen in another project"
|
|
9
|
+
- intent: "reusing a snippet from online / another repo / a training-data recall"
|
|
10
|
+
- keyword: "port this"
|
|
11
|
+
- keyword: "adapt this"
|
|
12
|
+
- keyword: "based on this repo"
|
|
13
|
+
- keyword: "similar implementation"
|
|
14
|
+
- keyword: "found this on GitHub"
|
|
15
|
+
- keyword: "borrow"
|
|
16
|
+
- keyword: "vendored"
|
|
17
|
+
- keyword: "reference implementation"
|
|
18
|
+
routes_to:
|
|
19
|
+
- "skill:license-compliance-borrow-check"
|
|
20
|
+
- "skill:license-compliance-credits"
|
|
21
|
+
- "skill:license-compliance-audit"
|
|
22
|
+
workspaces: [engineering]
|
|
23
|
+
packs: [engineering-base]
|
|
24
|
+
roles: [developer, reviewer, tester, po, incident, planner]
|
|
25
|
+
enforced_by:
|
|
26
|
+
- "none"
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# Code Provenance
|
|
30
|
+
|
|
31
|
+
AI coding agents can emit code near-verbatim from training data — output-side
|
|
32
|
+
legal exposure is live (*Doe v. GitHub* proceeds on that factual premise). No
|
|
33
|
+
rule previously told a worker what to do on a **conscious** borrow at the
|
|
34
|
+
code layer — this rule closes that gap.
|
|
35
|
+
|
|
36
|
+
## The Iron Law
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
NEVER ADOPT EXTERNAL CODE VERBATIM.
|
|
40
|
+
BORROWING = READ → CLOSE THE SOURCE → RE-DERIVE AGAINST HOUSE STANDARDS → ADAPT.
|
|
41
|
+
ANY CONSCIOUS BORROW (ALGORITHM, NON-TRIVIAL STRUCTURE, >~10 LINES OF LOGIC
|
|
42
|
+
SHAPE) REQUIRES A PROVENANCE LEDGER ENTRY AND A LICENSE-COMPATIBILITY CHECK
|
|
43
|
+
BEFORE THE CODE LANDS.
|
|
44
|
+
UNKNOWN LICENSE ⇒ DO NOT BORROW. ESCALATE — NEVER GUESS PERMISSIVE.
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## When it fires
|
|
48
|
+
|
|
49
|
+
Porting, adapting, or reusing an algorithm, a non-trivial structure, or
|
|
50
|
+
>~10 lines of logic shape from a source you read — a repo, an answer, a blog
|
|
51
|
+
post, or a training-data recall with a nameable source. Before it lands:
|
|
52
|
+
|
|
53
|
+
1. **Close the source** — copy-paste with edits is not re-derivation.
|
|
54
|
+
2. **Re-derive** against this repo's own conventions — a renamed copy is
|
|
55
|
+
not a rewrite.
|
|
56
|
+
3. **Check license compatibility** via
|
|
57
|
+
[`skill:license-compliance-borrow-check`](../skills/license-compliance-borrow-check/SKILL.md)
|
|
58
|
+
(wraps `detect_target_license.ts`'s derived policy) BEFORE the code
|
|
59
|
+
lands, never as a post-hoc justification.
|
|
60
|
+
4. **Record the borrow** in `provenance/borrows.jsonl` with a real
|
|
61
|
+
`transformation_note` — rename-only phrasing is rejected by
|
|
62
|
+
`lint_provenance.ts`.
|
|
63
|
+
|
|
64
|
+
An **unknown** source license is never permissive-by-default. Stop and
|
|
65
|
+
escalate (numbered options, per
|
|
66
|
+
[`ask-when-uncertain`](ask-when-uncertain.md)) instead of guessing.
|
|
67
|
+
|
|
68
|
+
## Self-interrogation clause (AUXILIARY — never a control)
|
|
69
|
+
|
|
70
|
+
Before finalizing any non-trivial function, ask internally: *"Did I derive
|
|
71
|
+
this, or do I remember it?"* "Remember" + nameable source ⇒ treat as a
|
|
72
|
+
borrow, run the steps above. "Remember" + no nameable source ⇒ flag
|
|
73
|
+
`origin: uncertain` in the PR description (~0 tokens).
|
|
74
|
+
|
|
75
|
+
Explicitly **non-load-bearing** (council 2026-07-28): an LLM cannot
|
|
76
|
+
introspect recall vs. derivation, so the flag is an audit surface only — no
|
|
77
|
+
gate, escalation, or clearance ever depends on it; the deterministic layer
|
|
78
|
+
(where one exists at all, see below) scans regardless. It projects to every
|
|
79
|
+
role in `roles:` above, `planner` included — the clause costs ~0 tokens, and
|
|
80
|
+
excluding one role leaves a hole exactly where that role drafts
|
|
81
|
+
implementation sketches.
|
|
82
|
+
|
|
83
|
+
## No CI-facing detector — the ledger is the control
|
|
84
|
+
|
|
85
|
+
Gate G0 measured both candidate similarity scanners against a frozen golden
|
|
86
|
+
corpus; both missed their pre-registered thresholds — rename-only recall
|
|
87
|
+
**0/8** (SCANOSS) / **4/8** (jscpd), union false positives 2/12 over the
|
|
88
|
+
ceiling. Council resolved (2026-07-28, Option A): **no
|
|
89
|
+
`lint_code_provenance.ts` in any form — not even advisory.** The scan
|
|
90
|
+
capability exists only as the on-demand
|
|
91
|
+
[`skill:license-compliance-audit`](../skills/license-compliance-audit/SKILL.md)
|
|
92
|
+
a human invokes deliberately. CI enforces only `lint_provenance.ts` — it
|
|
93
|
+
checks the ledger's own records, not similarity, and cannot catch an
|
|
94
|
+
unrecorded borrow. The discipline above **is** the control; skipping it is
|
|
95
|
+
not caught downstream by anything automatic. No script can enforce "close
|
|
96
|
+
the source and re-derive" — a pre-write reasoning step only the model
|
|
97
|
+
observes — so this rule ships `enforced_by: none`, same honesty stance as
|
|
98
|
+
`security-sensitive-stop` and `untrusted-input-defense`.
|
|
99
|
+
|
|
100
|
+
## When NOT to fire
|
|
101
|
+
|
|
102
|
+
- A well-known, unpatentable algorithm shape (a hash map, a for-loop) with
|
|
103
|
+
no specific source in mind.
|
|
104
|
+
- Reusing your **own** prior code within this repo.
|
|
105
|
+
- Prose/docs/config-only edits.
|
|
106
|
+
|
|
107
|
+
## See also
|
|
108
|
+
|
|
109
|
+
- [`license-compliance-borrow-check`](../skills/license-compliance-borrow-check/SKILL.md), [`license-compliance-credits`](../skills/license-compliance-credits/SKILL.md), [`license-compliance-audit`](../skills/license-compliance-audit/SKILL.md) — the borrowing / notices / on-demand-scan skill family this rule routes to.
|
|
110
|
+
- `provenance/README.md`, `src/scripts/lint_provenance.ts`, `src/scripts/detect_target_license.ts` — the ledger, its linter, and the S1.2 policy derivation.
|
|
111
|
+
- [`secret-vcs-guard`](secret-vcs-guard.md) — sibling detect → ask → act discipline for a different leak class.
|
|
112
|
+
- [`ask-when-uncertain`](ask-when-uncertain.md) — the escalation shape for `conditional`/`unknown` verdicts.
|
|
@@ -12,6 +12,8 @@ routes_to:
|
|
|
12
12
|
- "guideline:agent-infra/context-hygiene-mechanics"
|
|
13
13
|
workspaces: [agent-config-maintainer, construction, engineering, finance, founder, gtm, legal-review-prep, ops, product, small-business]
|
|
14
14
|
packs: [meta]
|
|
15
|
+
enforced_by:
|
|
16
|
+
- "hook:context-hygiene"
|
|
15
17
|
---
|
|
16
18
|
|
|
17
19
|
# Context Hygiene
|