@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
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: medium
|
|
3
|
+
name: schema-review
|
|
4
|
+
description: "Use when reviewing a migration diff or schema change for scale hazards — indexes, unsafe migrations, unbounded growth, N+1. Triggers on 'review this migration', 'will this scale'."
|
|
5
|
+
domain: engineering
|
|
6
|
+
workspaces:
|
|
7
|
+
- engineering
|
|
8
|
+
packs:
|
|
9
|
+
- scale-discipline
|
|
10
|
+
trust:
|
|
11
|
+
level: professional
|
|
12
|
+
install:
|
|
13
|
+
default: false
|
|
14
|
+
removable: true
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# schema-review
|
|
18
|
+
|
|
19
|
+
## When to use
|
|
20
|
+
|
|
21
|
+
- A migration diff, new migration file, or schema change is under review
|
|
22
|
+
and the question is scale-shaped: indexes, reversibility, growth,
|
|
23
|
+
query patterns against the new columns.
|
|
24
|
+
- The user asks "will this scale", "review this migration", "check the
|
|
25
|
+
schema", or a PR touches `migrations/`, `schema.prisma`, or raw `.sql`
|
|
26
|
+
migration files.
|
|
27
|
+
- NOT for runtime performance analysis of live traffic (no APM here —
|
|
28
|
+
route to `performance-analysis`) and NOT for authoring a new migration
|
|
29
|
+
from scratch (route to `laravel-migration` or the stack-native tool,
|
|
30
|
+
then come back with the diff).
|
|
31
|
+
|
|
32
|
+
## Procedure
|
|
33
|
+
|
|
34
|
+
1. **Detect the stack surface** in the diff: Laravel migrations
|
|
35
|
+
(`database/migrations/*.php`), Prisma (`schema.prisma` +
|
|
36
|
+
`prisma/migrations/**/migration.sql`), raw SQL (`*.sql`). One diff can
|
|
37
|
+
carry several.
|
|
38
|
+
2. **Run the deterministic linter** on the touched files plus the query
|
|
39
|
+
surface that references the changed tables:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npx tsx node_modules/@event4u/agent-config/src/scripts/lint_persistence.ts -- --dir <path> [--stack eloquent|prisma|raw-sql] --format json
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
The linter emits `gate` findings (pattern-detected: F1 N+1, F2
|
|
46
|
+
index-parity, F3 unbounded reads, F6 migration-safety, F7
|
|
47
|
+
growth-budget, F8 audit-coverage, F9 sync-in-handler, F11 non-durable
|
|
48
|
+
async) and `advice` findings (heuristics — never treat as blockers).
|
|
49
|
+
3. **Walk the gap table** — for every `gate` finding decide: fix, or
|
|
50
|
+
waiver with a reason (`// no-index: <reason>`, `// sync-required:
|
|
51
|
+
<reason>`, `-- no-retention: <reason>`, …). An empty waiver reason is
|
|
52
|
+
itself a finding.
|
|
53
|
+
4. **Check the R-A6/R-A7 invariants by hand** where the linter is blind:
|
|
54
|
+
reversibility of data transformations, retention policy for any new
|
|
55
|
+
append-only table (the `-- retention: <policy>` line), backfill plan
|
|
56
|
+
for new NOT NULL columns on large tables.
|
|
57
|
+
5. **Report waiver density neutrally** — count waivers per rule; state
|
|
58
|
+
both readings (informed exceptions vs rule misfit) and let the human
|
|
59
|
+
decide. Density alone is never a verdict.
|
|
60
|
+
|
|
61
|
+
## Output
|
|
62
|
+
|
|
63
|
+
The review MUST contain:
|
|
64
|
+
|
|
65
|
+
1. **Gap table** — one row per finding: `rule · file:line · finding ·
|
|
66
|
+
proposed action (fix | waiver | accepted)`, gate findings first,
|
|
67
|
+
advice findings clearly marked as advice.
|
|
68
|
+
2. **Waiver-density line** — `N waivers across M findings` with the
|
|
69
|
+
two-reading note (informed exceptions vs rule misfit).
|
|
70
|
+
3. A one-line verdict: ready / needs fixes / needs human schema decision
|
|
71
|
+
— never a bare "looks good" without the table.
|
|
72
|
+
|
|
73
|
+
## Gotcha
|
|
74
|
+
|
|
75
|
+
- The linter proves **pattern presence**, not instance-level correctness
|
|
76
|
+
— a flagged `Http::` call in a controller may be legitimately sync
|
|
77
|
+
(then it gets a `// sync-required:` waiver with a reason), and a clean
|
|
78
|
+
run does not prove the schema scales. Say what was checked, not more.
|
|
79
|
+
- Prisma's `@relation` fields are indexed implicitly on some connectors
|
|
80
|
+
and not on others — when the linter reports a missing FK index on a
|
|
81
|
+
Prisma model, verify the connector before calling it a defect.
|
|
82
|
+
|
|
83
|
+
## Do NOT
|
|
84
|
+
|
|
85
|
+
- Do NOT gate a review on `advice`-tier findings (F4 denormalization,
|
|
86
|
+
F10 event-decoupling heuristics) — they are review inputs, not
|
|
87
|
+
blockers.
|
|
88
|
+
- Do NOT strip or rewrite existing waivers — surface stale-looking ones
|
|
89
|
+
and ask.
|
|
90
|
+
- Do NOT invent index recommendations for columns the query surface
|
|
91
|
+
never filters or orders by — index parity cuts both ways; unused
|
|
92
|
+
indexes cost write throughput.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "schema-review",
|
|
3
|
+
"last_eval": "2026-07-27",
|
|
4
|
+
"description": "5 should-trigger + 5 should-not-trigger. Should-trigger covers DE+EN phrasings for reviewing a migration/schema diff for scale hazards. Should-not-trigger covers near-miss neighbours: authoring a migration (laravel-migration), live-traffic performance (performance-analysis), audit-tier selection (history-design), generic code review.",
|
|
5
|
+
"queries": [
|
|
6
|
+
{ "q": "review this migration for missing indexes before I merge", "trigger": true },
|
|
7
|
+
{ "q": "will this schema change scale to 100k rows?", "trigger": true },
|
|
8
|
+
{ "q": "prüfe meine Migration auf Skalierungsprobleme", "trigger": true },
|
|
9
|
+
{ "q": "check the new schema.prisma diff for unsafe changes", "trigger": true },
|
|
10
|
+
{ "q": "does this ALTER TABLE need CONCURRENTLY and a default?", "trigger": true },
|
|
11
|
+
{ "q": "create a migration that adds a status column to orders", "trigger": false },
|
|
12
|
+
{ "q": "the dashboard endpoint is slow in production, profile it", "trigger": false },
|
|
13
|
+
{ "q": "which audit log mechanism should we use for tenants?", "trigger": false },
|
|
14
|
+
{ "q": "review my pull request for code quality", "trigger": false },
|
|
15
|
+
{ "q": "wie lege ich einen Index in MySQL an?", "trigger": false }
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: high
|
|
3
|
+
name: screenshot-hygiene
|
|
4
|
+
description: "Use when creating and embedding a documentation screenshot — detect and redact sensitive data, human-gate data-bearing shots before ship. Triggers 'screenshot for docs', 'screenshot admin panel'."
|
|
5
|
+
domain: process
|
|
6
|
+
workspaces:
|
|
7
|
+
- agent-config-maintainer
|
|
8
|
+
packs:
|
|
9
|
+
- meta
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# screenshot-hygiene
|
|
13
|
+
|
|
14
|
+
The executable workflow behind [`doc-screenshot-hygiene`](../../rules/doc-screenshot-hygiene.md).
|
|
15
|
+
A screenshot embedded into shipped docs is an **irreversible published egress** —
|
|
16
|
+
once committed and hosted, any PII, secret, or revealing local path on it is out.
|
|
17
|
+
This skill makes agents create doc screenshots that are as neutral as possible,
|
|
18
|
+
with a conservative, err-on-the-side-of-redaction posture.
|
|
19
|
+
|
|
20
|
+
## When to use
|
|
21
|
+
|
|
22
|
+
- Generating or updating documentation (a docs site, feature docs, a README)
|
|
23
|
+
where a screenshot genuinely helps and you are about to capture + embed one.
|
|
24
|
+
- A screenshot is about to land under `docs/media/` (or a docs image folder).
|
|
25
|
+
|
|
26
|
+
Do NOT use for:
|
|
27
|
+
- Image **generation** (route to `image-generation` / `image-editing` /
|
|
28
|
+
`media-governance-routing` for likeness/rights).
|
|
29
|
+
- A user-supplied screenshot used only as a **design spec** to compare against
|
|
30
|
+
(route to `design-fidelity` / `cross-source-consistency`).
|
|
31
|
+
- Terminal / CLI / IDE output — that is **forbidden** as a screenshot (see the
|
|
32
|
+
workflow). Use a text code block with text redaction instead.
|
|
33
|
+
|
|
34
|
+
## Procedure
|
|
35
|
+
|
|
36
|
+
### 1. Decide — screenshot, or a safer alternative?
|
|
37
|
+
|
|
38
|
+
Classify the risk tier first (symmetric friction):
|
|
39
|
+
|
|
40
|
+
| Tier | Examples | Path |
|
|
41
|
+
|---|---|---|
|
|
42
|
+
| Illustrative / no data | architecture diagram, logo, icon, wireframe, placeholder-only UI | Embed with a one-line justification. |
|
|
43
|
+
| Data-bearing | dashboard, admin panel, form/list with content, any real-looking data | Full workflow + **human gate** before embed. |
|
|
44
|
+
| Terminal / CLI / IDE | shell output, editor, path bars | **Forbidden.** Use a text code block; redact the text. |
|
|
45
|
+
|
|
46
|
+
Prefer a diagram or a placeholder-data screenshot over a real-data one whenever
|
|
47
|
+
it conveys the same thing. Terminal output → copy the text into a fenced block
|
|
48
|
+
and redact the text (cheaper and safer than a pixel screenshot). Respect
|
|
49
|
+
`screenshots.forbid_terminal_capture` (default `true`).
|
|
50
|
+
|
|
51
|
+
### 2. Capture — via the host, never a bundled engine
|
|
52
|
+
|
|
53
|
+
Use the host's capability (`claude-in-chrome` for web UI, Playwright's
|
|
54
|
+
`page.screenshot` inside a test harness). Record which tool captured it. The
|
|
55
|
+
package ships no capture engine (no-runtime-floor). Capture into a working file
|
|
56
|
+
under the scratchpad or `docs/media/` — do not embed yet.
|
|
57
|
+
|
|
58
|
+
### 3. Detect — flag candidate sensitive regions (a helper, not a clearance)
|
|
59
|
+
|
|
60
|
+
OCR the image (host OCR, or the `image-analyser` skill's text read) and scan the
|
|
61
|
+
extracted text against the taxonomy below and `screenshots.identity_allowlist`.
|
|
62
|
+
Produce a **flagged-regions report**: for each hit, the text, the bounding box,
|
|
63
|
+
and the reason. Detection **reduces** the human's work — it never certifies the
|
|
64
|
+
screenshot as safe (it cannot see semantic leaks: aggregate counts that reveal
|
|
65
|
+
real users, real-vs-fake data tells, re-identification via name structure).
|
|
66
|
+
|
|
67
|
+
**Anonymization taxonomy** — always redact / refuse:
|
|
68
|
+
- Real person's name, postal address, birthdate, phone number.
|
|
69
|
+
- Passwords, API tokens, secrets, session cookies, bearer tokens, private keys.
|
|
70
|
+
- Real email addresses (anything not `@example.{com,org,net}` / a fake-data domain).
|
|
71
|
+
- Absolute local paths revealing a real identity (`/Users/<realname>/…`,
|
|
72
|
+
`/home/<realname>/…`).
|
|
73
|
+
- Client / customer / project identifiers; internal hostnames (`*.internal`).
|
|
74
|
+
- Anything GDPR-sensitive; aggregate counts / data tells that reveal real users.
|
|
75
|
+
|
|
76
|
+
Allowed (no redaction): well-known fake data (Max Mustermann, Musterstraße,
|
|
77
|
+
`@example.com`); the maintainer's OWN public handle shown as a username, and a
|
|
78
|
+
path rooted at that handle (`/Users/<handle>/…`). The maintainer's **real name
|
|
79
|
+
is never allowed**, even co-located with the handle. The safe set lives in
|
|
80
|
+
`screenshots.identity_allowlist` (default empty → every identity is human-decided).
|
|
81
|
+
|
|
82
|
+
### 4. Redact — deterministic opaque cover, never lossy inpaint
|
|
83
|
+
|
|
84
|
+
Draw an **opaque box (or heavy blur/pixelation)** over each flagged region.
|
|
85
|
+
Deterministic, visible, and non-reversible — never AI inpaint (lossy;
|
|
86
|
+
reconstructs, may hallucinate; docs need visual accuracy). Redaction is
|
|
87
|
+
tool-agnostic — use whatever image tool is present in the environment:
|
|
88
|
+
|
|
89
|
+
- **ImageMagick** (if `magick`/`convert` present): draw a filled rectangle over
|
|
90
|
+
each region, e.g.
|
|
91
|
+
`magick in.png -fill black -draw "rectangle X1,Y1 X2,Y2" out.png` (repeat
|
|
92
|
+
`-draw` per region), or `-region … -blur 0x18` for a blur.
|
|
93
|
+
- **sharp** (if a project already depends on it, e.g. the `/site` workspace):
|
|
94
|
+
`composite` an opaque rectangle over each region.
|
|
95
|
+
|
|
96
|
+
If **no image tool is available** → `missing-tool-handling`: STOP, surface the
|
|
97
|
+
flagged regions, and hand off to the maintainer to redact manually. **Never ship
|
|
98
|
+
an unredacted screenshot because a tool was missing.** Never silently downgrade
|
|
99
|
+
the guarantee.
|
|
100
|
+
|
|
101
|
+
### 5. Pre-embed audit — the human gate (data-bearing tier)
|
|
102
|
+
|
|
103
|
+
For a data-bearing screenshot, embedding is a published egress → **this-turn
|
|
104
|
+
human confirmation** per [`non-destructive-by-default`](../../rules/non-destructive-by-default.md).
|
|
105
|
+
Present the redacted candidate + the checklist; wait for the answer.
|
|
106
|
+
|
|
107
|
+
**Pre-embed audit checklist:**
|
|
108
|
+
- [ ] No real names, addresses, birthdates, phone numbers.
|
|
109
|
+
- [ ] No passwords, API tokens, secrets, cookies, bearer tokens, private keys.
|
|
110
|
+
- [ ] No real email addresses (fake-data / `@example.com` only).
|
|
111
|
+
- [ ] No identity-revealing absolute paths (only a public-handle-rooted path).
|
|
112
|
+
- [ ] No client / customer / project identifiers; no internal hostnames.
|
|
113
|
+
- [ ] No terminal / CLI / IDE output.
|
|
114
|
+
- [ ] No aggregate-count / data tell revealing real users (semantic leak).
|
|
115
|
+
- [ ] Any realistic-looking data is justified as safe (known-fake / allowlist).
|
|
116
|
+
|
|
117
|
+
Unresolved / uncertain on any line → **redact or refuse**, never ship-and-hope.
|
|
118
|
+
An illustrative / no-data screenshot skips the confirmation but still passes the
|
|
119
|
+
checklist and carries a one-line "no sensitive data" justification.
|
|
120
|
+
|
|
121
|
+
### 6. Embed — into the docs surface
|
|
122
|
+
|
|
123
|
+
Place the reviewed, redacted file under `docs/media/` (or the docs image folder)
|
|
124
|
+
and reference it from a canonical `docs/*.md`. For the Starlight site,
|
|
125
|
+
`site/sync-docs.mjs` auto-copies `docs/media/*` into `site/public/media/` and
|
|
126
|
+
rewrites `](media/…)` links — so the embed flows to the site on build. Add
|
|
127
|
+
descriptive alt text. Generalize the same discipline to a README or any other
|
|
128
|
+
docs surface.
|
|
129
|
+
|
|
130
|
+
## Output
|
|
131
|
+
|
|
132
|
+
- **A redacted screenshot file** under the docs image folder with every
|
|
133
|
+
taxonomy item covered by an opaque box/blur (or an explicit
|
|
134
|
+
no-sensitive-data justification for the illustrative tier).
|
|
135
|
+
- **A one-line provenance + review note** stating: capture tool, risk tier,
|
|
136
|
+
what was redacted (or "none — illustrative"), and — for data-bearing shots —
|
|
137
|
+
that human confirmation was obtained this turn.
|
|
138
|
+
|
|
139
|
+
## Gotcha
|
|
140
|
+
|
|
141
|
+
- **Detection "passing" is not safety.** OCR + patterns miss semantic leaks
|
|
142
|
+
(aggregate counts, real-vs-fake tells, name-structure re-identification) and
|
|
143
|
+
misread garbled text. Never treat a clean automated scan as clearance — the
|
|
144
|
+
human gate stands for data-bearing shots.
|
|
145
|
+
- **A public handle does not whitelist a co-located real name.** `matze4u` is
|
|
146
|
+
fine; "Matthias Müller" next to it is still redacted.
|
|
147
|
+
- **Missing tool ≠ ship anyway.** No image tool → hand off, never embed
|
|
148
|
+
unredacted.
|
|
149
|
+
- **Terminal screenshots feel harmless and are the worst.** A single shell line
|
|
150
|
+
can leak an absolute path with a real name plus a live token. Use text.
|
|
151
|
+
|
|
152
|
+
## Do NOT
|
|
153
|
+
|
|
154
|
+
- Do NOT ship a screenshot with unredacted sensitive data — that is an
|
|
155
|
+
irreversible published egress.
|
|
156
|
+
- Do NOT treat a clean automated scan as clearance; the gate for a data-bearing
|
|
157
|
+
shot is human confirmation.
|
|
158
|
+
- Do NOT embed unredacted "because no image tool was available" — hand off instead.
|
|
159
|
+
- Do NOT screenshot terminal / CLI / IDE output — use a text code block with text
|
|
160
|
+
redaction.
|
|
161
|
+
- Do NOT use lossy AI inpaint to redact — use a deterministic opaque box/blur.
|
|
162
|
+
- Do NOT assume a public handle whitelists a co-located real name — redact the name.
|
|
163
|
+
|
|
164
|
+
## See also
|
|
165
|
+
|
|
166
|
+
- [`doc-screenshot-hygiene`](../../rules/doc-screenshot-hygiene.md) — the rule that routes here (Iron Law + taxonomy + risk tiers).
|
|
167
|
+
- [`non-destructive-by-default`](../../rules/non-destructive-by-default.md) — the published-egress gate the data-bearing embed routes into.
|
|
168
|
+
- [`domain-safety-pii`](../../rules/domain-safety-pii.md) — the text-surface sibling (drafts / logs / exports).
|
|
169
|
+
- [`image-analyser`](../image-analyser/SKILL.md) — OCR-reads text in an image (the detection helper).
|
|
170
|
+
- [`image-editing`](../image-editing/SKILL.md) — region editing (only for deterministic redaction, never lossy inpaint here).
|
|
171
|
+
- [`readme-writing`](../readme-writing/SKILL.md) — flags unrequested data-bearing screenshots.
|
|
@@ -99,6 +99,48 @@ Error responses → never echo the secret back, even on failure.
|
|
|
99
99
|
Telemetry / APM → strip from request/response captures; allowlist headers.
|
|
100
100
|
```
|
|
101
101
|
|
|
102
|
+
### Step 6 — Runtime guard: block before the secret lands
|
|
103
|
+
|
|
104
|
+
The scanning gates (Step 4) are the CI/pre-commit nets. The **earliest** gate is
|
|
105
|
+
the agent itself: before it writes a credential into a tracked file or stages a
|
|
106
|
+
commit, the [`secret-vcs-guard`](../../rules/secret-vcs-guard.md) rule runs the
|
|
107
|
+
`secret_detector` library and, on a hit,
|
|
108
|
+
STOPS → shows the match (`file:line` · kind · masked · why) → asks via numbered
|
|
109
|
+
options → offers the tiered alternative below. It never silently commits and
|
|
110
|
+
never silently strips. VCS-agnostic: the same detector runs against the diff for
|
|
111
|
+
git, SVN, and Mercurial (SVN/hg native hooks are server-side, a stronger but
|
|
112
|
+
later net). The deterministic CI backstop is `check_secret_leak` — the agent
|
|
113
|
+
gate is one layer, not the whole defense.
|
|
114
|
+
|
|
115
|
+
**False positives — audited allowlist, never a global mute.** Suppress a
|
|
116
|
+
confirmed non-secret with an inline `# secret-allow` marker on the line, or a
|
|
117
|
+
narrow entry (`path` or `path:line`) in a repo-root `.secret-allow` file. Each
|
|
118
|
+
`.secret-allow` entry SHOULD carry a one-line justification comment (`# …`) so it
|
|
119
|
+
is reviewable in the diff; the entry is line-scoped, so it cannot mute a *new*
|
|
120
|
+
secret elsewhere in the same file.
|
|
121
|
+
|
|
122
|
+
**Tiered alternative to suggest when a secret is caught** (refines Step 1 for the
|
|
123
|
+
in-the-moment fix; cite OWASP Secrets Management Cheat Sheet + CWE-798 + 12-factor):
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
Solo / local, dev-only → gitignored .env + committed .env.example (keys, no values).
|
|
127
|
+
Team / production app → cloud secret manager (AWS/GCP/Azure) or Vault / Doppler.
|
|
128
|
+
Kubernetes / GitOps → SOPS (encrypt values in the committed file) or Sealed Secrets.
|
|
129
|
+
CI / deploy → OIDC federation to the cloud — no long-lived stored credential.
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Remediation — a secret already reached VCS
|
|
133
|
+
|
|
134
|
+
Order matters; a history rewrite does **not** un-leak an already-pushed secret:
|
|
135
|
+
|
|
136
|
+
1. **Rotate / revoke the credential now.** Immediate, and the only step that
|
|
137
|
+
actually stops the damage — assume it is compromised the moment it was pushed.
|
|
138
|
+
2. **`git rm` / a deletion commit is insufficient** — the secret stays in history
|
|
139
|
+
(`git log`, blame, prior commits, clones, forks, CI logs).
|
|
140
|
+
3. **Purge history** with `git filter-repo` (preferred) or BFG Repo-Cleaner.
|
|
141
|
+
4. **Force-push + coordinate** re-clones; forks and existing clones still hold the
|
|
142
|
+
old objects — which is why step 1 is the real fix.
|
|
143
|
+
|
|
102
144
|
## Procedure: Apply to a new secret
|
|
103
145
|
|
|
104
146
|
1. **Inspect** the existing secret inventory and IaC for store conventions; run Step 1 and lock the store decision in code/IaC.
|
|
@@ -142,7 +184,7 @@ Telemetry / APM → strip from request/response captures; allowlist headers.
|
|
|
142
184
|
|
|
143
185
|
## Provenance
|
|
144
186
|
|
|
145
|
-
- Adopted from: an external reference (
|
|
187
|
+
- Adopted from: an external reference (internal provenance, redacted) — **Sunset Policy applied**: a large provider cookbook reduced to a ~140-line decision framework; per-provider deep-dives externalized to upstream docs below.
|
|
146
188
|
- Externalized provider docs:
|
|
147
189
|
- HashiCorp Vault: https://developer.hashicorp.com/vault/docs · https://developer.hashicorp.com/vault/docs/secrets/databases
|
|
148
190
|
- AWS Secrets Manager: https://docs.aws.amazon.com/secretsmanager/ · rotation: https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html
|
|
@@ -148,7 +148,7 @@ After findings, add **Rejected candidates** section: one line per look-dangerous
|
|
|
148
148
|
## Gotcha
|
|
149
149
|
|
|
150
150
|
- Don't report theoretical vulnerabilities without a concrete attack vector — false positives erode trust.
|
|
151
|
-
- The model tends to flag framework-handled security as issues (e.g., Laravel's CSRF is already handled).
|
|
151
|
+
- The model tends to flag framework-handled security as issues (e.g., Laravel's CSRF or Rails' `protect_from_forgery` is already handled).
|
|
152
152
|
- Always check if a finding is already mitigated by middleware or configuration before reporting it.
|
|
153
153
|
|
|
154
154
|
## Do NOT
|
|
@@ -55,7 +55,7 @@ Do NOT use when:
|
|
|
55
55
|
|
|
56
56
|
1. **Scope** — name the module/paths under assessment; list entry points (routes, jobs, commands, webhooks). Scorecard without stated scope is not reproducible.
|
|
57
57
|
2. **Assess each category** — inspect the code the category names. Every rating cites evidence:
|
|
58
|
-
- Positive evidence: `file:line` of the control (`app/Http/Requests/…:12`).
|
|
58
|
+
- Positive evidence: `file:line` of the control (`app/Http/Requests/…:12`, `src/guards/auth.guard.ts:12`).
|
|
59
59
|
- Absence evidence: the searches run that came back empty (name the grep patterns) — "not found" beats "probably missing".
|
|
60
60
|
- Multi-tenant N/A: single-tenant systems rate category 8 `N/A`; drops out of the roll-up.
|
|
61
61
|
3. **Roll up deterministically** — overall rating is computed, not vibed:
|
|
@@ -115,8 +115,8 @@ Decide what to create:
|
|
|
115
115
|
> the exact wording is recoverable, and verify against it rather than trusting
|
|
116
116
|
> the summary.
|
|
117
117
|
|
|
118
|
-
- **New rule** → create in
|
|
119
|
-
- **New skill** → use `skill-writing` skill, create in
|
|
118
|
+
- **New rule** → create in `src/rules/`, follow rule conventions
|
|
119
|
+
- **New skill** → use `skill-writing` skill, create in `src/skills/`
|
|
120
120
|
- **Update existing** → use `skill-management` skill
|
|
121
121
|
|
|
122
122
|
After creation:
|
|
@@ -175,7 +175,7 @@ Ask the user:
|
|
|
175
175
|
- Do NOT skip the promotion gate — it prevents skill/rule bloat
|
|
176
176
|
- Do NOT create both a rule AND a skill for the same learning
|
|
177
177
|
- Do NOT auto-push without user permission
|
|
178
|
-
- Do NOT create project-specific content in
|
|
178
|
+
- Do NOT create project-specific content in `src/`
|
|
179
179
|
- Do NOT run this pipeline for trivial learnings
|
|
180
180
|
|
|
181
181
|
## References
|
|
@@ -189,7 +189,7 @@ approval-gated propose / pick loop with at most two rounds.
|
|
|
189
189
|
### 1c. Propose a trigger-eval stub (new skills only)
|
|
190
190
|
|
|
191
191
|
When creating a new skill, propose a stub
|
|
192
|
-
|
|
192
|
+
`src/skills/{name}/evals/triggers.json` before writing
|
|
193
193
|
the body. Draw the queries from Phase A of the drafting protocol (the
|
|
194
194
|
user's "should trigger" and "must not trigger" answers).
|
|
195
195
|
|
|
@@ -531,7 +531,7 @@ content).
|
|
|
531
531
|
|
|
532
532
|
## Do NOT
|
|
533
533
|
|
|
534
|
-
* Write documentation-style, pointer-only, or too-broad skills ("Laravel skill")
|
|
534
|
+
* Write documentation-style, pointer-only, or too-broad skills ("Laravel skill", "Django skill")
|
|
535
535
|
* Skip Procedure or use vague validation
|
|
536
536
|
* Exceed size limits (see `docs/guidelines/agent-infra/size-and-scope.md`)
|
|
537
537
|
* Duplicate rules
|
|
@@ -38,9 +38,9 @@ discover the real source → Evidence Report (Verified / Assumed / Gaps) →
|
|
|
38
38
|
Scaffold the report cheaply so it never gets skipped:
|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
npx tsx node_modules/@event4u/agent-config/src/scripts/evidence_report.ts git-state # fail-fast: abort if a rebase/merge/cherry-pick is in progress
|
|
42
|
+
npx tsx node_modules/@event4u/agent-config/src/scripts/evidence_report.ts init --task "<task>" # writes the gitignored session report
|
|
43
|
+
npx tsx node_modules/@event4u/agent-config/src/scripts/evidence_report.ts add --bucket verified --claim "users.email is unique" --source "db/schema/users.sql:23"
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
**Provenance on every item** (`observed_at` / `source` / `version`). Within a
|
|
@@ -175,10 +175,10 @@ the per-session Evidence Report above. Append to the knowledge intake —
|
|
|
175
175
|
never write a tracked page mid-task:
|
|
176
176
|
|
|
177
177
|
```bash
|
|
178
|
-
|
|
178
|
+
npx tsx node_modules/@event4u/agent-config/src/scripts/emit_knowledge_event.ts --type api_shape_learned \
|
|
179
179
|
--endpoint "<path>" --method "<verb>" --request-schema '<json>' --response-schema '<json>'
|
|
180
180
|
|
|
181
|
-
|
|
181
|
+
npx tsx node_modules/@event4u/agent-config/src/scripts/emit_knowledge_event.ts --type convention_detected \
|
|
182
182
|
--pattern "<pattern>" --evidence "file:line" --sample-size <N> --scope project
|
|
183
183
|
```
|
|
184
184
|
|
|
@@ -111,6 +111,15 @@ Rules:
|
|
|
111
111
|
or `none`) so the gate's value is measurable inside the ADR-117
|
|
112
112
|
prove-or-drop window.
|
|
113
113
|
|
|
114
|
+
## Severity-conditioned team composition — conditions pattern
|
|
115
|
+
|
|
116
|
+
Incident-style severity tiers (Critical / High / Medium / Low) refine
|
|
117
|
+
composition and activation **within** the form the static gate already
|
|
118
|
+
picked — severity never overrides the form gate, the Iron Law, or any
|
|
119
|
+
safety floor. Guidance, not a new object class (persona-catalog
|
|
120
|
+
disposition). Severity→composition table + escalation rule →
|
|
121
|
+
[`subagent-modes-detail` § Severity-conditioned team composition](../../agent-src/contexts/execution/subagent-modes-detail.md).
|
|
122
|
+
|
|
114
123
|
## The nine modes
|
|
115
124
|
|
|
116
125
|
Each mode has a decision row: when to use, when not, and the expected
|
|
@@ -124,42 +133,23 @@ glossary) lives in
|
|
|
124
133
|
[`subagent-topologies`](../../agent-src/contexts/execution/subagent-topologies.md) —
|
|
125
134
|
pull it for capacity planning; it is metadata, not runtime-enforced.
|
|
126
135
|
|
|
136
|
+
Per-mode decision rows (when to use / when not / model pairing) and the
|
|
137
|
+
mode-2 stage-routing contract live in
|
|
138
|
+
[`subagent-modes-detail` § Modes 1–6](../../agent-src/contexts/execution/subagent-modes-detail.md) —
|
|
139
|
+
pull them at dispatch time.
|
|
140
|
+
|
|
127
141
|
### 1. do-and-judge
|
|
128
142
|
|
|
129
143
|
Implementer produces a diff; judge reviews; loop applies, revises, or
|
|
130
144
|
hands off. Hard ceiling: **two revision cycles**, then stop and hand
|
|
131
145
|
back to the user.
|
|
132
146
|
|
|
133
|
-
| When to use | When not | Model pairing |
|
|
134
|
-
|---|---|---|
|
|
135
|
-
| Single-change task with non-trivial risk | Tiny fix, or spike/exploration | implementer = session; judge = one tier up |
|
|
136
|
-
|
|
137
147
|
### 2. do-and-judge-two-stage
|
|
138
148
|
|
|
139
|
-
Implementer produces a diff; **two judges run sequentially** —
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
to stage two if stage one returns `DONE` or `DONE_WITH_CONCERNS`. A
|
|
144
|
-
stage-one `BLOCKED` shortcuts the loop — there is no point quality-
|
|
145
|
-
reviewing a diff that does not satisfy the spec.
|
|
146
|
-
|
|
147
|
-
| When to use | When not | Model pairing |
|
|
148
|
-
|---|---|---|
|
|
149
|
-
| 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 |
|
|
150
|
-
|
|
151
|
-
**Why two stages, not one judge with both rubrics:** combining the
|
|
152
|
-
rubrics in one prompt reliably regresses one of them — the judge "spends
|
|
153
|
-
attention" on whichever rubric appears last. Splitting the prompts
|
|
154
|
-
forces each judge to commit fully to its rubric.
|
|
155
|
-
|
|
156
|
-
**Stage-routing rule:**
|
|
157
|
-
- Stage-1 returns `DONE` → run stage-2.
|
|
158
|
-
- Stage-1 returns `DONE_WITH_CONCERNS` → run stage-2; concerns carry
|
|
159
|
-
forward to the final envelope.
|
|
160
|
-
- Stage-1 returns `NEEDS_CONTEXT` → pause; stage-2 does not run.
|
|
161
|
-
- Stage-1 returns `BLOCKED` → final verdict is `BLOCKED`; stage-2
|
|
162
|
-
does not run (saves cost).
|
|
149
|
+
Implementer produces a diff; **two judges run sequentially** — spec
|
|
150
|
+
compliance first, code quality second. Stage-one `BLOCKED` shortcuts the
|
|
151
|
+
loop (no point quality-reviewing a diff that misses the spec). Stage
|
|
152
|
+
routing + why-two-stages rationale → modes-detail § Mode 2.
|
|
163
153
|
|
|
164
154
|
### 3. do-in-steps
|
|
165
155
|
|
|
@@ -167,40 +157,24 @@ Plan is split into N steps; judge runs **between** steps. A step that
|
|
|
167
157
|
fails judgment is revised before the next step starts. Used for
|
|
168
158
|
multi-file changes where a mid-plan mistake would cascade.
|
|
169
159
|
|
|
170
|
-
| When to use | When not | Model pairing |
|
|
171
|
-
|---|---|---|
|
|
172
|
-
| Multi-step plan with ordered dependencies | Single-step change, or when steps are independent (use `do-in-parallel`) | implementer = session; judge = one tier up |
|
|
173
|
-
|
|
174
160
|
### 4. do-in-parallel
|
|
175
161
|
|
|
176
162
|
Independent slices run concurrently. No judge per slice — judge runs
|
|
177
163
|
once on the aggregated result. Parallelism capped by
|
|
178
164
|
`subagents.max_parallel` in `.agent-settings.yml`.
|
|
179
165
|
|
|
180
|
-
| When to use | When not | Model pairing |
|
|
181
|
-
|---|---|---|
|
|
182
|
-
| Independent slices (different files, non-overlapping) | Any slice touches shared state | implementer = session; judge = one tier up, run once |
|
|
183
|
-
|
|
184
166
|
### 5. do-competitively
|
|
185
167
|
|
|
186
168
|
Multiple implementers produce candidate diffs for the **same** slice.
|
|
187
169
|
Judge picks the winner and rejects the losers. Expensive — use only
|
|
188
170
|
when the solution space is genuinely broad.
|
|
189
171
|
|
|
190
|
-
| When to use | When not | Model pairing |
|
|
191
|
-
|---|---|---|
|
|
192
|
-
| Broad solution space (algorithm choice, API shape) | Well-defined problem with one good answer | implementers = same tier (≥2 instances); judge = one tier up |
|
|
193
|
-
|
|
194
172
|
### 6. judge-with-debate
|
|
195
173
|
|
|
196
174
|
Two judges each produce a verdict; a meta-judge reconciles
|
|
197
175
|
disagreements. Used for high-stakes changes (security, data
|
|
198
176
|
migration, public API) where a single judge is too easy to fool.
|
|
199
177
|
|
|
200
|
-
| When to use | When not | Model pairing |
|
|
201
|
-
|---|---|---|
|
|
202
|
-
| Security, data integrity, public API change | Routine internal refactor | judges = same tier (2x); meta-judge = one tier up |
|
|
203
|
-
|
|
204
178
|
Mode 6 = **go/no-go** (strict-er verdict wins); for defect-FINDING coverage (the
|
|
205
179
|
*union* of what diverse models catch) use Mode 9.
|
|
206
180
|
|
|
@@ -238,34 +212,25 @@ opt-in high-risk changes only; registered claim + high-risk tier need
|
|
|
238
212
|
cross-*vendor* skeptics. Invariants, skeptic prompt, reconciliation, prove-or-drop
|
|
239
213
|
gate → [`subagent-modes-detail`](../../agent-src/contexts/execution/subagent-modes-detail.md) § Mode 9
|
|
240
214
|
+ [`prompts/adversarial-verification-council.md`](prompts/adversarial-verification-council.md)
|
|
215
|
+
|
|
216
|
+
> **Disposition (2026-07-28, honest null).** Adversarial-council
|
|
217
|
+
> finding-coverage benchmark resolved as published null (`docs/benchmark.md`)
|
|
218
|
+
> — mode NOT sold as defect-detection capability. Stays default-off bound to
|
|
219
|
+
> that null; removal at next major unless external evidence (consumer-filed
|
|
220
|
+
> case where the panel surfaced a real defect the single verifier missed)
|
|
221
|
+
> appears first. Remaining honest value: perspective diversity + decision
|
|
222
|
+
> documentation, nothing more.
|
|
241
223
|
(ADR-122).
|
|
242
224
|
|
|
243
225
|
## Status taxonomy — every subagent return uses one envelope
|
|
244
226
|
|
|
245
227
|
Every implementer or judge return must conform to
|
|
246
|
-
[`schemas/subagent-status.json`](schemas/subagent-status.json).
|
|
247
|
-
statuses
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
| `DONE_WITH_CONCERNS` | Work shipped but caller must act on concerns. | `evidence[]`, `concerns[]` |
|
|
253
|
-
| `NEEDS_CONTEXT` | Paused; caller can unblock by answering. | `blocking_question` |
|
|
254
|
-
| `BLOCKED` | No path forward exists. | `blocking_reason` |
|
|
255
|
-
|
|
256
|
-
**Why a fixed taxonomy:** orchestrators (`/do-and-judge`, `/do-in-steps`)
|
|
257
|
-
route on status. Free-form "kind of done" returns force the orchestrator
|
|
258
|
-
to interpret prose, which silently regresses the two-revision ceiling and
|
|
259
|
-
the judge-rejected-do-not-apply rule. The schema makes routing mechanical.
|
|
260
|
-
|
|
261
|
-
**Tests:** `tests/test_subagent_status_schema.py` exercises all four
|
|
262
|
-
statuses plus rejection cases (missing required keys, unknown status,
|
|
263
|
-
extra fields, conditional-key violations).
|
|
264
|
-
|
|
265
|
-
**Distinguishing `NEEDS_CONTEXT` from `BLOCKED`:** `NEEDS_CONTEXT` means
|
|
266
|
-
*"you, the caller, can fix this by telling me X"*. `BLOCKED` means
|
|
267
|
-
*"no input from you unblocks this — escalate or rescope"*. If a subagent
|
|
268
|
-
is unsure, it picks `BLOCKED` and the caller can downgrade.
|
|
228
|
+
[`schemas/subagent-status.json`](schemas/subagent-status.json). Exactly
|
|
229
|
+
four statuses — `DONE` · `DONE_WITH_CONCERNS` · `NEEDS_CONTEXT` ·
|
|
230
|
+
`BLOCKED` — no free-form alternatives; orchestrators route on status
|
|
231
|
+
mechanically. Meaning/required-keys table, why-fixed rationale, and the
|
|
232
|
+
`NEEDS_CONTEXT`-vs-`BLOCKED` distinction →
|
|
233
|
+
[`subagent-modes-detail` § Status taxonomy](../../agent-src/contexts/execution/subagent-modes-detail.md).
|
|
269
234
|
|
|
270
235
|
## Dispatch prompts — externalized
|
|
271
236
|
|
|
@@ -273,9 +238,12 @@ Each mode's literal dispatch template lives under
|
|
|
273
238
|
[`prompts/{mode}.md`](prompts/README.md). The orchestrator loads the
|
|
274
239
|
matching prompt at dispatch time and substitutes `{{placeholders}}`.
|
|
275
240
|
Edits to a prompt do not bloat this skill against the 400-line sunset
|
|
276
|
-
trigger
|
|
277
|
-
|
|
278
|
-
|
|
241
|
+
trigger. Eight prompt files cover modes 1–7 and 9 (the standalone judge
|
|
242
|
+
reuses [`prompts/do-and-judge.md`](prompts/do-and-judge.md); mode 8's
|
|
243
|
+
live-app rubric lives in
|
|
244
|
+
[`subagent-modes-detail` § Mode 8](../../agent-src/contexts/execution/subagent-modes-detail.md));
|
|
245
|
+
each prompt cites all four taxonomy statuses — see
|
|
246
|
+
[`prompts/README.md`](prompts/README.md).
|
|
279
247
|
|
|
280
248
|
## Procedure
|
|
281
249
|
|
|
@@ -339,21 +307,13 @@ the judge verdict.
|
|
|
339
307
|
|
|
340
308
|
### 6. Emit telemetry
|
|
341
309
|
|
|
342
|
-
After every auto-dispatched run, write one
|
|
343
|
-
`
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
Minimal emit (fill what is observable; `token_delta_provenance: "estimated"` if
|
|
350
|
-
host usage metadata is unavailable):
|
|
351
|
-
|
|
352
|
-
```json
|
|
353
|
-
{"schema_version":1,"id":"<ulid>","ts":"<iso>","work_id":"<work_id>","phase":"implement","outcome":"success","confidence_band":"high","risk_class":"low","input_kind":"orchestration","type":"phase","orchestration":{"task_size_estimate":<int>,"spawn_count":<int>,"tiers":[...],"token_delta":<int>,"token_delta_provenance":"estimated","wall_clock_ms":<int>,"outcome":"DONE","verify_mode":"deterministic"}}
|
|
354
|
-
```
|
|
355
|
-
|
|
356
|
-
Skip emit when `subagents.enabled: false` or `spawn_count == 0` (in-session run).
|
|
310
|
+
After every auto-dispatched run, write one audit-log-v1 line
|
|
311
|
+
(`input_kind: "orchestration"`) via the `orchestration_record` recorder —
|
|
312
|
+
never hand-author the JSON. Line shape, field semantics, recorder
|
|
313
|
+
invocation, and `token_delta` sourcing priority →
|
|
314
|
+
[`orchestration-telemetry` § Emit procedure](../../agent-src/contexts/execution/orchestration-telemetry.md).
|
|
315
|
+
Skip emit when `subagents.enabled: false` or `spawn_count == 0`
|
|
316
|
+
(in-session run).
|
|
357
317
|
|
|
358
318
|
## Gotcha
|
|
359
319
|
|
|
@@ -21,7 +21,7 @@ skill above the 400-line sunset trigger.
|
|
|
21
21
|
Every prompt cites the status taxonomy in
|
|
22
22
|
[`../schemas/subagent-status.json`](../schemas/subagent-status.json) and
|
|
23
23
|
ends with the **return-envelope** instruction so the subagent's reply
|
|
24
|
-
validates against
|
|
24
|
+
validates against that schema.
|
|
25
25
|
|
|
26
26
|
## Prompt-cache discipline
|
|
27
27
|
|
|
@@ -47,6 +47,7 @@ dispatch. Verify a cohort is actually reading, not re-writing, by checking
|
|
|
47
47
|
|
|
48
48
|
## Loading
|
|
49
49
|
|
|
50
|
-
`
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
Every dispatchable mode named in `SKILL.md` § *The nine modes* maps to a
|
|
51
|
+
prompt file in the table above (mode 8 is gated/experimental — its
|
|
52
|
+
live-app rubric lives in the `subagent-modes-detail` context, not here);
|
|
53
|
+
each prompt mentions all four status enum values.
|