@event4u/agent-config 16.1.0 → 16.3.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/.augment-plugin/marketplace.json +3 -3
- package/.augment-plugin/plugin.json +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +98 -257
- package/README.md +14 -12
- package/dist/agent-src/commands/analyze/inbox.md +1 -1
- package/dist/agent-src/commands/analyze/roadmap-repos.md +1 -1
- package/dist/agent-src/commands/bug/fix.md +17 -2
- package/dist/agent-src/commands/feature/plan.md +1 -1
- package/dist/agent-src/commands/feature/roadmap.md +1 -1
- package/dist/agent-src/commands/fix/ci.md +1 -1
- package/dist/agent-src/commands/implement-ticket.md +1 -1
- package/dist/agent-src/commands/jira-ticket.md +1 -1
- package/dist/agent-src/commands/roadmap/create.md +1 -1
- package/dist/agent-src/commands/roadmap/materialize.md +1 -1
- package/dist/agent-src/commands/roadmap/process-full.md +5 -5
- package/dist/agent-src/commands/roadmap/resolve-blockers.md +361 -0
- package/dist/agent-src/commands/roadmap/triage-parked.md +325 -0
- package/dist/agent-src/commands/roadmap.md +18 -4
- package/dist/agent-src/commands/tests/create.md +17 -3
- package/dist/agent-src/commands/tests/execute.md +22 -5
- package/dist/agent-src/commands/work.md +4 -0
- package/dist/agent-src/contexts/authority/decision-revisit-gate-enforcement.md +43 -0
- package/dist/agent-src/contexts/communication/rules-auto/design-fidelity-enforcement.md +24 -0
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +6 -6
- package/dist/agent-src/contexts/execution/autonomy-mechanics.md +4 -8
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +32 -2
- package/dist/agent-src/contexts/execution/session-canary-enforcement-history.md +67 -0
- package/dist/agent-src/contexts/execution/toolchain-resolver.md +101 -7
- package/dist/agent-src/rules/active-remediation.md +1 -1
- package/dist/agent-src/rules/autonomous-execution.md +1 -0
- package/dist/agent-src/rules/broken-access-control.md +1 -0
- package/dist/agent-src/rules/command-suggestion-policy.md +1 -0
- package/dist/agent-src/rules/context-hygiene.md +1 -1
- package/dist/agent-src/rules/decision-revisit-gate.md +16 -33
- package/dist/agent-src/rules/design-fidelity.md +13 -16
- package/dist/agent-src/rules/doc-screenshot-hygiene.md +1 -0
- package/dist/agent-src/rules/domain-safety-disclaimer.md +1 -0
- package/dist/agent-src/rules/domain-safety-pii.md +1 -0
- package/dist/agent-src/rules/domain-safety-retention.md +1 -0
- package/dist/agent-src/rules/engineering-safety-floor.md +1 -0
- package/dist/agent-src/rules/evaluator-independence.md +3 -2
- package/dist/agent-src/rules/fast-path-marker-visibility.md +1 -0
- package/dist/agent-src/rules/finance-safety-floor.md +1 -0
- package/dist/agent-src/rules/git-history-discipline.md +1 -0
- package/dist/agent-src/rules/image-likeness-and-rights.md +1 -0
- package/dist/agent-src/rules/legal-safety-floor.md +3 -2
- package/dist/agent-src/rules/lethal-trifecta-guard.md +1 -0
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +1 -0
- package/dist/agent-src/rules/media-governance-routing.md +14 -17
- package/dist/agent-src/rules/persona-governance.md +2 -2
- package/dist/agent-src/rules/provider-lifecycle-discipline.md +1 -1
- package/dist/agent-src/rules/question-not-instruction.md +1 -0
- package/dist/agent-src/rules/roadmap-progress-sync.md +1 -1
- package/dist/agent-src/rules/runtime-safety.md +1 -0
- package/dist/agent-src/rules/secret-vcs-guard.md +1 -0
- package/dist/agent-src/rules/security-sensitive-stop.md +3 -2
- package/dist/agent-src/rules/session-canary.md +8 -62
- package/dist/agent-src/rules/settings-ask-protocol.md +1 -0
- package/dist/agent-src/rules/source-confidentiality.md +1 -0
- package/dist/agent-src/rules/strategy-safety-floor.md +1 -0
- package/dist/agent-src/rules/tool-safety.md +1 -0
- package/dist/agent-src/rules/ui-audit-gate.md +1 -2
- package/dist/agent-src/rules/untrusted-input-defense.md +1 -0
- package/dist/agent-src/rules/user-interrupt-priority.md +1 -0
- package/dist/agent-src/scripts/archive_completed_roadmaps.ts +115 -20
- package/dist/agent-src/scripts/deferral_carry.ts +339 -0
- package/dist/agent-src/scripts/update_roadmap_progress.ts +4 -1
- package/dist/agent-src/skills/accessibility-auditor/data/aria-patterns.csv +1 -1
- package/dist/agent-src/skills/accessibility-auditor/data/manifest.json +2 -2
- package/dist/agent-src/skills/api-design/data/manifest.json +2 -2
- package/dist/agent-src/skills/api-testing/SKILL.md +17 -0
- package/dist/agent-src/skills/code-intelligence/SKILL.md +14 -2
- package/dist/agent-src/skills/design-review/SKILL.md +30 -4
- package/dist/agent-src/skills/design-review/references/verification-automation.md +32 -0
- package/dist/agent-src/skills/design-system-capture/references/import-procedure.md +1 -1
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +18 -3
- package/dist/agent-src/skills/existing-ui-audit/references/component-taxonomy-detection.md +56 -0
- package/dist/agent-src/skills/fe-design/SKILL.md +1 -1
- package/dist/agent-src/skills/iconography/SKILL.md +1 -1
- package/dist/agent-src/skills/js-library-packaging/SKILL.md +2 -2
- package/dist/agent-src/skills/markitdown/SKILL.md +4 -0
- package/dist/agent-src/skills/monorepo-workspace/SKILL.md +1 -1
- package/dist/agent-src/skills/playwright-testing/SKILL.md +30 -6
- package/dist/agent-src/skills/quality-tools/SKILL.md +11 -1
- package/dist/agent-src/skills/quality-tools/references/go-tools.md +76 -0
- package/dist/agent-src/skills/quality-tools/references/python-tools.md +104 -0
- package/dist/agent-src/skills/review-routing/SKILL.md +2 -2
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +1 -1
- package/dist/agent-src/skills/storybook-workshop/SKILL.md +3 -3
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +1 -1
- package/dist/agent-src/skills/test-case-discovery/SKILL.md +7 -0
- package/dist/agent-src/skills/test-driven-development/SKILL.md +17 -0
- package/dist/agent-src/skills/test-performance/SKILL.md +19 -1
- package/dist/agent-src/skills/ui-component-architect/SKILL.md +25 -2
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/roadmaps.md +30 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/app_spec.ts +10 -4
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +302 -21
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/audit.ts +22 -3
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/scaffold.ts +6 -1
- package/dist/agent-src/templates/scripts/work_engine/stack/runner.ts +774 -109
- package/dist/agent-src/templates/scripts/work_engine/state.ts +57 -7
- package/dist/agent-src/templates/scripts/work_engine/taxonomy/detect.ts +500 -0
- package/dist/agent-src/templates/scripts/work_engine/taxonomy/place.ts +183 -0
- package/dist/cli/python/knowledge_ingest.js +1 -1
- package/dist/cli/python/workspace_drive.js +1 -1
- package/dist/cli/registry.js +1 -1
- package/dist/cli-delegate/archive_completed_roadmaps.js +92 -12
- package/dist/cli-delegate/check_update_banner.js +12 -1
- package/dist/cli-delegate/chunk-523HCFYO.js +90 -0
- package/dist/cli-delegate/{chunk-M2DPGFZ4.js → chunk-6V6TA25H.js} +22 -152
- package/dist/cli-delegate/chunk-7IQE3D5S.js +191 -0
- package/dist/cli-delegate/{chunk-6KFEC3G7.js → chunk-CQWX336L.js} +1 -1
- package/dist/cli-delegate/chunk-DEIV7XP7.js +108 -0
- package/dist/cli-delegate/chunk-EEHDXSYD.js +2040 -0
- package/dist/cli-delegate/{chunk-P6ZHP5W2.js → chunk-GKE7ZVFA.js} +4 -4
- package/dist/cli-delegate/chunk-JQOM7TTM.js +1201 -0
- package/dist/cli-delegate/{chunk-UNCRJBT3.js → chunk-JQVYKIZA.js} +41 -0
- package/dist/cli-delegate/{chunk-FC75PGJE.js → chunk-JY2I2DXV.js} +12 -1
- package/dist/cli-delegate/chunk-KB5FZ655.js +208 -0
- package/dist/cli-delegate/{chunk-YUM5KURG.js → chunk-KR6EM23A.js} +235 -1455
- package/dist/cli-delegate/{chunk-LTYVIY76.js → chunk-LIYTLH6O.js} +1 -1
- package/dist/cli-delegate/chunk-NQ7WT43P.js +2729 -0
- package/dist/cli-delegate/chunk-NXEILF2K.js +2160 -0
- package/dist/cli-delegate/{chunk-5R7HOLAF.js → chunk-NYX3L2PZ.js} +1 -1
- package/dist/cli-delegate/{chunk-4E2W63DA.js → chunk-OKJUIAPS.js} +62 -1
- package/dist/cli-delegate/{chunk-QAJS5YWY.js → chunk-PHD7OOLE.js} +2 -1
- package/dist/cli-delegate/{chunk-RGNIWTEA.js → chunk-QLDHIPWR.js} +1 -1
- package/dist/cli-delegate/{chunk-HDVVGPQW.js → chunk-RQNNW7IF.js} +1405 -567
- package/dist/cli-delegate/{chunk-S3VFXMTM.js → chunk-S4UMZNES.js} +1 -1
- package/dist/cli-delegate/{chunk-6KM6ORRY.js → chunk-S4YWNRKO.js} +24 -8
- package/dist/cli-delegate/{chunk-GJCBB2UG.js → chunk-TRI6DQZ6.js} +3054 -325
- package/dist/cli-delegate/chunk-ULQRUR23.js +208 -0
- package/dist/cli-delegate/{chunk-NUHLI2RX.js → chunk-YCU3TIXH.js} +2 -0
- package/dist/cli-delegate/chunk-ZBZV2G5R.js +210 -0
- package/dist/cli-delegate/{chunk-WGXTVKCQ.js → chunk-ZUZKZYCN.js} +5 -3
- package/dist/cli-delegate/cmd_analyze_session.js +1 -1
- package/dist/cli-delegate/cmd_brand_status.js +1 -1
- package/dist/cli-delegate/cmd_conformance.js +1862 -809
- package/dist/cli-delegate/cmd_doctor.js +13 -6
- package/dist/cli-delegate/cmd_doctor_neighbours.js +23 -0
- package/dist/cli-delegate/cmd_explain.js +5 -5
- package/dist/cli-delegate/cmd_export.js +11 -8
- package/dist/cli-delegate/cmd_fleet.js +3 -3
- package/dist/cli-delegate/cmd_handoff.js +10 -7
- package/dist/cli-delegate/cmd_mcp_available.js +1 -1
- package/dist/cli-delegate/cmd_memory_get.js +3 -1
- package/dist/cli-delegate/cmd_migrate.js +2 -2
- package/dist/cli-delegate/cmd_packs_active.js +3 -3
- package/dist/cli-delegate/cmd_preflight.js +6 -6
- package/dist/cli-delegate/cmd_prune.js +11 -8
- package/dist/cli-delegate/cmd_refresh.js +2 -1
- package/dist/cli-delegate/cmd_route_audit.js +8 -6
- package/dist/cli-delegate/cmd_route_explain.js +4 -4
- package/dist/cli-delegate/cmd_session_recycle.js +4 -3
- package/dist/cli-delegate/cmd_settings_get.js +1 -1
- package/dist/cli-delegate/cmd_settings_migrate.js +11 -8
- package/dist/cli-delegate/cmd_settings_set.js +4 -4
- package/dist/cli-delegate/cmd_sync.js +11 -8
- package/dist/cli-delegate/cmd_uninstall.js +11 -8
- package/dist/cli-delegate/cmd_update.js +1 -1
- package/dist/cli-delegate/cmd_upgrade.js +3 -2
- package/dist/cli-delegate/cmd_validate.js +11 -8
- package/dist/cli-delegate/cmd_versions.js +1 -1
- package/dist/cli-delegate/deferral_carry.js +16 -0
- package/dist/cli-delegate/gate_execute.js +2 -2
- package/dist/cli-delegate/roadmap_gates.js +5 -5
- package/dist/cli-delegate/update_roadmap_progress.js +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +132 -80
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +3 -3
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +7 -5
- package/dist/discovery/trust-report.md +2 -2
- package/dist/discovery/workspaces.json +6 -4
- package/dist/hooks/dispatch.js +7972 -5186
- package/dist/hooks/dispatch.sha256 +1 -0
- package/dist/install/claudePathsPlan.js +47 -6
- package/dist/install/claudeRuleRewrite.js +7 -0
- package/dist/install/emit_host_rules_cli.js +39 -36
- package/dist/install/globalRuleScope.js +87 -0
- package/dist/install/host_rule_ownership.js +160 -0
- package/dist/install/install.mjs +2226 -1055
- package/dist/install/installThinLayer.js +261 -0
- package/dist/install/installedRuleLinks.js +176 -0
- package/dist/install/wizard-plan.js +24 -0
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +40913 -34865
- package/dist/scripts/_lib/agent_settings.js +11 -0
- package/dist/scripts/_lib/claude_settings_hooks.js +10 -8
- package/dist/scripts/_lib/installed_layer.js +378 -0
- package/dist/scripts/_lib/lean_projection_mode.js +218 -15
- package/dist/scripts/_lib/rule_consequence_class.js +45 -0
- package/dist/scripts/_lib/rule_injection.js +67 -10
- package/dist/scripts/_lib/rule_law_section.js +122 -0
- package/dist/scripts/_lib/thin_rules.js +458 -0
- package/dist/scripts/_lib/windsurf_render.js +60 -0
- package/dist/scripts/condense.js +14 -26
- package/dist/scripts/project_thin_rules.js +14 -294
- package/dist/server/schemas/settings.js +29 -0
- package/dist/shared/skillRanking.js +74 -13
- package/dist/ui/assets/index-Cwq4d0hX.js +23 -0
- package/dist/ui/assets/index-Cyjy8bWO.css +1 -0
- package/dist/ui/index.html +2 -2
- package/docs/contracts/settings-classes.md +10 -6
- package/package.json +4 -4
- package/src/agent-src/scripts/archive_completed_roadmaps.ts +115 -20
- package/src/agent-src/scripts/deferral_carry.ts +339 -0
- package/src/agent-src/scripts/update_roadmap_progress.ts +4 -1
- package/src/agent-src/templates/scripts/work_engine/directives/ui/app_spec.ts +10 -4
- package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +302 -21
- package/src/agent-src/templates/scripts/work_engine/directives/ui/audit.ts +22 -3
- package/src/agent-src/templates/scripts/work_engine/directives/ui/scaffold.ts +6 -1
- package/src/agent-src/templates/scripts/work_engine/stack/runner.ts +774 -109
- package/src/agent-src/templates/scripts/work_engine/state.ts +57 -7
- package/src/agent-src/templates/scripts/work_engine/taxonomy/detect.ts +500 -0
- package/src/agent-src/templates/scripts/work_engine/taxonomy/place.ts +183 -0
- package/src/config/agent-settings.template.yml +91 -22
- package/src/config/ci-local-parity.yml +18 -0
- package/src/config/continuity-surface.json +9 -2
- package/src/config/evaluator-budgets.json +4 -4
- package/src/config/gate-coverage.yml +327 -3
- package/src/config/gate-violation-baselines.json +21 -9
- package/src/config/hook-bundle-budget.json +25 -0
- package/src/config/hook-latency-budget.json +21 -0
- package/src/config/hook-token-budget.json +8 -3
- package/src/config/host-instruction-limits.json +33 -0
- package/src/config/metric-registry.yml +114 -0
- package/src/config/placeholder-drift-budget.json +10 -0
- package/src/config/routing-coverage-seed.json +38 -3
- package/src/config/rule-activation-census.json +7 -3
- package/src/config/rule-consequence-class.json +161 -0
- package/src/config/rule-law-ceilings.json +99 -0
- package/src/install/claudePathsPlan.ts +46 -4
- package/src/install/claudeRuleRewrite.ts +10 -1
- package/src/install/emit_host_rules_cli.ts +43 -34
- package/src/install/globalRuleScope.ts +109 -0
- package/src/install/host_rule_ownership.ts +170 -0
- package/src/install/installThinLayer.ts +312 -0
- package/src/install/installedRuleLinks.ts +220 -0
- package/src/install/wizard-plan.ts +24 -0
- package/src/scripts/_cli/cmd_doctor.ts +28 -90
- package/src/scripts/_cli/cmd_doctor_neighbours.ts +293 -0
- package/src/scripts/_cli/doctor_execution.ts +100 -17
- package/src/scripts/_cli/doctor_network_posture.ts +226 -0
- package/src/scripts/_dispatch.bash +16 -2
- package/src/scripts/_lib/agent_settings.ts +11 -0
- package/src/scripts/_lib/body_portable.ts +102 -0
- package/src/scripts/_lib/cc_transcript.ts +132 -1
- package/src/scripts/_lib/claude_settings_hooks.ts +10 -8
- package/src/scripts/_lib/concern_sla_window.ts +200 -0
- package/src/scripts/_lib/estate_offsets.ts +241 -0
- package/src/scripts/_lib/exemption_shape.ts +143 -0
- package/src/scripts/_lib/fnv.ts +23 -0
- package/src/scripts/_lib/foreign_scan.ts +106 -0
- package/src/scripts/_lib/forge_protection.ts +114 -0
- package/src/scripts/_lib/forge_reader.ts +558 -0
- package/src/scripts/_lib/gitignore_block.ts +314 -0
- package/src/scripts/_lib/global_deploy_inventory.ts +32 -0
- package/src/scripts/_lib/graph_feeder_record.ts +214 -0
- package/src/scripts/_lib/hook_settings.ts +73 -0
- package/src/scripts/_lib/host_capability.ts +40 -19
- package/src/scripts/_lib/host_env_write.ts +111 -0
- package/src/scripts/_lib/host_hook_merge.ts +165 -0
- package/src/scripts/_lib/installed_layer.ts +538 -0
- package/src/scripts/_lib/json_merge.ts +82 -0
- package/src/scripts/_lib/json_pointers.ts +93 -11
- package/src/scripts/_lib/lean_projection_mode.ts +275 -15
- package/src/scripts/_lib/llm_proposer_transport.ts +14 -4
- package/src/scripts/_lib/machine_wake.ts +16 -3
- package/src/scripts/_lib/neighbour_census.ts +760 -0
- package/src/scripts/_lib/neighbour_scan.ts +122 -0
- package/src/scripts/_lib/neighbour_tool_use.ts +189 -0
- package/src/scripts/_lib/obligations.ts +119 -8
- package/src/scripts/_lib/probe_inputs.ts +271 -0
- package/src/scripts/_lib/prompt_shape.ts +46 -0
- package/src/scripts/_lib/read_surface_scan.ts +322 -0
- package/src/scripts/_lib/release_highlights.ts +2 -1
- package/src/scripts/_lib/release_migration_gate.ts +19 -3
- package/src/scripts/_lib/reserved_name_sweep.ts +73 -0
- package/src/scripts/_lib/retrieval_sanitize.ts +77 -16
- package/src/scripts/_lib/review_coverage.ts +134 -0
- package/src/scripts/_lib/rule_consequence_class.ts +71 -0
- package/src/scripts/_lib/rule_injection.ts +130 -10
- package/src/scripts/_lib/rule_law_section.ts +147 -0
- package/src/scripts/_lib/rule_layer_overlap.ts +58 -0
- package/src/scripts/_lib/shell_write_shapes.ts +108 -0
- package/src/scripts/_lib/skill_origin.ts +254 -0
- package/src/scripts/_lib/structural_hiding.ts +622 -0
- package/src/scripts/_lib/structured_ask.ts +64 -21
- package/src/scripts/_lib/thin_rules.ts +540 -0
- package/src/scripts/_lib/touched_file_quality.ts +434 -0
- package/src/scripts/_lib/turn_end_refusals.ts +600 -4
- package/src/scripts/_lib/turn_end_transcript.ts +216 -0
- package/src/scripts/_lib/verification_command.ts +324 -0
- package/src/scripts/_lib/verification_evidence.ts +647 -0
- package/src/scripts/_lib/verify_clause.ts +280 -0
- package/src/scripts/_lib/windsurf_render.ts +63 -0
- package/src/scripts/ai_council/cli_call_budget.ts +13 -5
- package/src/scripts/ai_council/clients.ts +26 -57
- package/src/scripts/ai_council/config.ts +1 -1
- package/src/scripts/ai_council/vendor_defaults.ts +45 -0
- package/src/scripts/ai_team/team_dispatch.ts +4 -0
- package/src/scripts/audit_skill_overlap.ts +261 -0
- package/src/scripts/before_complete_hook.ts +573 -25
- package/src/scripts/bench_hook_latency.ts +412 -5
- package/src/scripts/bench_touched_file_quality.ts +238 -0
- package/src/scripts/cache_realization_report.ts +61 -1
- package/src/scripts/check_argument_hint.ts +287 -0
- package/src/scripts/check_claims.ts +125 -1
- package/src/scripts/check_enforcement_coverage.ts +38 -9
- package/src/scripts/check_enforcement_matrix.ts +621 -22
- package/src/scripts/check_estate_count.ts +130 -153
- package/src/scripts/check_finding_dispositions.ts +138 -7
- package/src/scripts/check_generator_sync.ts +71 -0
- package/src/scripts/check_hook_bundle_composition.ts +370 -0
- package/src/scripts/check_host_docs_digest.ts +786 -0
- package/src/scripts/check_host_format_column.ts +559 -0
- package/src/scripts/check_input_references.ts +228 -0
- package/src/scripts/check_inputs_parity.ts +235 -0
- package/src/scripts/check_kernel_edit_ratified.ts +89 -9
- package/src/scripts/check_kill_switch_table.ts +294 -0
- package/src/scripts/check_memory.ts +7 -1
- package/src/scripts/check_placeholder_drift.ts +221 -0
- package/src/scripts/check_read_surface_coverage.ts +515 -0
- package/src/scripts/check_release_highlights.ts +10 -0
- package/src/scripts/check_release_holds.ts +2 -1
- package/src/scripts/check_release_pr_shape.ts +38 -15
- package/src/scripts/check_routing_coverage.ts +378 -11
- package/src/scripts/check_standing_rule_delivery.ts +33 -13
- package/src/scripts/check_static_parity.ts +17 -0
- package/src/scripts/check_verify_expectation_delta.ts +521 -0
- package/src/scripts/ci_settle.ts +145 -19
- package/src/scripts/closure_scan.ts +115 -1
- package/src/scripts/code_graph/detect.ts +127 -7
- package/src/scripts/code_graph/foreign.ts +194 -0
- package/src/scripts/code_graph/query.ts +217 -4
- package/src/scripts/code_graph/types.ts +26 -2
- package/src/scripts/code_graph/validate.ts +3 -1
- package/src/scripts/code_graph/verbs.ts +103 -0
- package/src/scripts/compile_hook_manifest.ts +90 -14
- package/src/scripts/condense.ts +14 -27
- package/src/scripts/estate_exemption_shape.ts +202 -0
- package/src/scripts/external_sources_denylist.json +29 -4
- package/src/scripts/generate_host_cost_table.ts +1 -1
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +192 -14
- package/src/scripts/hooks/block_config_weakening.ts +294 -4
- package/src/scripts/hooks/block_kernel_rule_writes.ts +9 -78
- package/src/scripts/hooks/block_plumbing_writes.ts +342 -0
- package/src/scripts/hooks/bundle_integrity.ts +291 -0
- package/src/scripts/hooks/chain_nudge_hook.ts +1 -2
- package/src/scripts/hooks/code_graph_context_hook.ts +253 -25
- package/src/scripts/hooks/comment_discipline_hook.ts +1 -3
- package/src/scripts/hooks/concern_failure_policy.ts +280 -0
- package/src/scripts/hooks/concern_registry.ts +2 -0
- package/src/scripts/hooks/concern_timings.ts +94 -0
- package/src/scripts/hooks/delegation_nudge_hook.ts +1 -2
- package/src/scripts/hooks/design_pass_hook.ts +100 -9
- package/src/scripts/hooks/design_slop_hook.ts +1 -2
- package/src/scripts/hooks/dispatch_hook.ts +77 -71
- package/src/scripts/hooks/edit_shape_hook.ts +1 -2
- package/src/scripts/hooks/end_review_nudge_hook.ts +1 -1
- package/src/scripts/hooks/evidence_independence.ts +1 -2
- package/src/scripts/hooks/exit_codes.ts +129 -0
- package/src/scripts/hooks/host_lowering.json +1 -0
- package/src/scripts/hooks/host_lowering.ts +146 -3
- package/src/scripts/hooks/host_lowering.yaml +262 -46
- package/src/scripts/hooks/host_semantics.ts +30 -2
- package/src/scripts/hooks/injection_budget.ts +9 -2
- package/src/scripts/hooks/interruption_ledger_hook.ts +1 -2
- package/src/scripts/hooks/journal_record_hook.ts +1 -2
- package/src/scripts/hooks/memory_recall_hook.ts +1 -2
- package/src/scripts/hooks/obligation_settle_hook.ts +151 -5
- package/src/scripts/hooks/one_question_per_ask_hook.ts +43 -6
- package/src/scripts/hooks/orchestration_record_hook.ts +1 -2
- package/src/scripts/hooks/payload_stub.ts +10 -1
- package/src/scripts/hooks/permission_gate.ts +1 -2
- package/src/scripts/hooks/push_settle_hook.ts +1 -3
- package/src/scripts/hooks/replay_hook.ts +2 -1
- package/src/scripts/hooks/reread_guard_hook.ts +1 -2
- package/src/scripts/hooks/review_baseline_hook.ts +1 -2
- package/src/scripts/hooks/rtk_wrap_hook.ts +1 -2
- package/src/scripts/hooks/rule_inject_hook.ts +765 -68
- package/src/scripts/hooks/run_continuation_hook.ts +13 -15
- package/src/scripts/hooks/skill_route_hook.ts +1 -2
- package/src/scripts/hooks/source_first_gate_hook.ts +1 -2
- package/src/scripts/hooks/spawn_guard_shadow_hook.ts +1 -2
- package/src/scripts/hooks/subagent_ledger_hook.ts +1 -2
- package/src/scripts/hooks/suggestion_capture_hook.ts +1 -1
- package/src/scripts/hooks/table_fingerprint.ts +70 -0
- package/src/scripts/hooks/telemetry_flush_hook.ts +1 -2
- package/src/scripts/hooks/telemetry_usage_hook.ts +65 -10
- package/src/scripts/hooks/tool_result_bytes_hook.ts +93 -9
- package/src/scripts/hooks/turn_end_gate_hook.ts +421 -324
- package/src/scripts/hooks/ui_route_nudge_hook.ts +1 -2
- package/src/scripts/hooks_status.ts +112 -0
- package/src/scripts/injection_scan_hook.ts +7 -0
- package/src/scripts/install.ts +75 -189
- package/src/scripts/installed_layer_report.ts +103 -0
- package/src/scripts/language_mirror_hook.ts +15 -6
- package/src/scripts/learning_sidecar.ts +119 -8
- package/src/scripts/lint_deny_text.ts +419 -0
- package/src/scripts/lint_exit_codes.ts +262 -0
- package/src/scripts/lint_hook_manifest.ts +108 -0
- package/src/scripts/lint_major_migration_sections.ts +156 -26
- package/src/scripts/lint_pack_boundaries.ts +63 -5
- package/src/scripts/lint_roadmap_blockers.ts +78 -12
- package/src/scripts/lint_rule_law_section.ts +517 -0
- package/src/scripts/lint_skill_descriptions.ts +1 -1
- package/src/scripts/lint_skill_scripts_readonly.ts +1 -1
- package/src/scripts/lint_workflow_security.ts +161 -5
- package/src/scripts/mcp_server/consumer_tool_catalog.json +53 -0
- package/src/scripts/mcp_server/graph_tools.ts +72 -3
- package/src/scripts/mcp_server/prompts.ts +142 -1
- package/src/scripts/measure_routing_signal.ts +54 -16
- package/src/scripts/measure_skill_ranker_baseline.ts +515 -53
- package/src/scripts/measure_turn_end_gate.ts +193 -0
- package/src/scripts/memory_learn_hook.ts +91 -6
- package/src/scripts/memory_lookup.ts +1 -1
- package/src/scripts/model_rule_injection.ts +52 -5
- package/src/scripts/prepack-check.mjs +53 -0
- package/src/scripts/project_thin_rules.ts +34 -327
- package/src/scripts/release_publication.ts +13 -1
- package/src/scripts/report_evidence_temperature.ts +657 -0
- package/src/scripts/report_installed_rule_links.ts +157 -0
- package/src/scripts/report_invocation_surface.ts +383 -0
- package/src/scripts/report_label_agreement.ts +233 -0
- package/src/scripts/report_obligation_carriers.ts +699 -0
- package/src/scripts/report_obligation_mechanism.ts +230 -0
- package/src/scripts/report_obligation_writer_split.ts +236 -0
- package/src/scripts/report_single_token_triggers.ts +277 -0
- package/src/scripts/report_skill_menu_census.ts +208 -0
- package/src/scripts/report_skill_ranker_confusion.ts +442 -0
- package/src/scripts/report_standing_payload_by_host.ts +188 -15
- package/src/scripts/report_verification_record_coverage.ts +306 -0
- package/src/scripts/roadmap_verify_share.ts +213 -0
- package/src/scripts/rule_activation_census.ts +5 -2
- package/src/scripts/rule_trigger_eval.ts +9 -9
- package/src/scripts/schemas/command.schema.json +44 -0
- package/src/scripts/schemas/review-findings.schema.json +7 -2
- package/src/scripts/schemas/rule.schema.json +5 -0
- package/src/scripts/schemas/skill.schema.json +44 -0
- package/src/scripts/self_review_gate.ts +421 -17
- package/src/scripts/semantic_parity_census.ts +314 -0
- package/src/scripts/session_eol_report.ts +54 -1
- package/src/scripts/skill_tools/score_skill_relevance.ts +290 -25
- package/src/scripts/sweep_dead_scan_roots.ts +1 -1
- package/src/scripts/sweep_skill_ranker_signals.ts +129 -0
- package/src/scripts/sync_gitignore.ts +29 -235
- package/src/scripts/trigger_eval_grandfather.json +0 -7
- package/src/scripts/trigger_eval_rotation.ts +122 -27
- package/src/scripts/ui_conformance_probe.ts +156 -4
- package/src/scripts/update_prices.ts +85 -3
- package/src/scripts/write_bundle_digest.mjs +74 -0
- package/src/server/schemas/settings.ts +41 -0
- package/src/shared/skillRanking.ts +117 -11
- package/src/templates/consumer-settings/ONBOARDING.md +1 -0
- package/dist/cli-delegate/chunk-FXYUYU4N.js +0 -4416
- package/dist/cli-delegate/chunk-QJWAUMJW.js +0 -1072
- package/dist/cli-delegate/chunk-YDPILCOL.js +0 -152
- package/dist/ui/assets/index-DH1xc62v.js +0 -29
- package/dist/ui/assets/index-jSfMW8_t.css +0 -1
|
@@ -35,6 +35,28 @@
|
|
|
35
35
|
# eight new concerns spread across eight events violate it zero times.
|
|
36
36
|
#
|
|
37
37
|
# `decision: rejected` is a first-class row. A recorded refusal is the point.
|
|
38
|
+
#
|
|
39
|
+
# `effect:` — what a concern DELIVERS to a turn, from a closed set. Read by the
|
|
40
|
+
# neighbour census (`agent-config doctor neighbours`), which has to say what
|
|
41
|
+
# sharing an event with another package's hook entry actually risks.
|
|
42
|
+
#
|
|
43
|
+
# The axis is OBSERVABLE DELIVERY, never primary purpose. An independent review
|
|
44
|
+
# found the distinction load-bearing: a shadow concern whose purpose is
|
|
45
|
+
# verification but which emits nothing and never blocks delivers a RECORD, so it
|
|
46
|
+
# is `telemetry`. Classify by what a turn can tell happened.
|
|
47
|
+
#
|
|
48
|
+
# permission can REFUSE the thing it fires on. Equivalent to
|
|
49
|
+
# `severity: blocking`, and `lint_hook_manifest` enforces the
|
|
50
|
+
# equivalence in both directions. "Can refuse" is the whole
|
|
51
|
+
# definition — it is not "decides authorization", so a gate that
|
|
52
|
+
# refuses on a quality threshold is `permission` too.
|
|
53
|
+
# context puts text in front of the model
|
|
54
|
+
# verification checks a claim or a shape and REPORTS what it found
|
|
55
|
+
# telemetry records state, a ledger, a counter
|
|
56
|
+
# memory reads or writes the memory layer
|
|
57
|
+
# notification tells the human something and changes nothing else
|
|
58
|
+
# formatting reshapes a command or a generated file
|
|
59
|
+
#
|
|
38
60
|
schema_version: 1
|
|
39
61
|
|
|
40
62
|
concerns:
|
|
@@ -43,6 +65,7 @@ concerns:
|
|
|
43
65
|
args: [hook-dispatch]
|
|
44
66
|
fail_closed: false
|
|
45
67
|
severity: advisory
|
|
68
|
+
effect: telemetry
|
|
46
69
|
needs_payload_bodies: [result]
|
|
47
70
|
# Restore persisted memory session index (road-to-memory-retrieval-economy
|
|
48
71
|
# P5). session_start only: the dispatcher forwards the returned `context`
|
|
@@ -56,6 +79,7 @@ concerns:
|
|
|
56
79
|
args: []
|
|
57
80
|
fail_closed: false
|
|
58
81
|
severity: advisory
|
|
82
|
+
effect: memory
|
|
59
83
|
# One-shot handoff injection (road-to-agent-handoff-resume Phase 3).
|
|
60
84
|
# session_start only: if `agent-config handoff` wrote
|
|
61
85
|
# agents/runtime/state/handoff-context.md, inject it as spotlighted DATA
|
|
@@ -67,6 +91,7 @@ concerns:
|
|
|
67
91
|
args: []
|
|
68
92
|
fail_closed: false
|
|
69
93
|
severity: advisory
|
|
94
|
+
effect: context
|
|
70
95
|
# Debounced since road-to-per-turn-hook-economy step 3.1 (D-3). It used to
|
|
71
96
|
# re-shell the dashboard regenerator through tsx on EVERY roadmap write — a
|
|
72
97
|
# cold tsx start per write, in exactly the roadmap-heavy workflow this repo
|
|
@@ -90,17 +115,20 @@ concerns:
|
|
|
90
115
|
args: []
|
|
91
116
|
fail_closed: false
|
|
92
117
|
severity: advisory
|
|
118
|
+
effect: formatting
|
|
93
119
|
needs_payload_bodies: [input]
|
|
94
120
|
onboarding-gate:
|
|
95
121
|
script: src/scripts/onboarding_gate_hook.ts
|
|
96
122
|
args: []
|
|
97
123
|
fail_closed: false
|
|
98
124
|
severity: advisory
|
|
125
|
+
effect: notification
|
|
99
126
|
context-hygiene:
|
|
100
127
|
script: src/scripts/context_hygiene_hook.ts
|
|
101
128
|
args: []
|
|
102
129
|
fail_closed: false
|
|
103
130
|
severity: advisory
|
|
131
|
+
effect: telemetry
|
|
104
132
|
# Phase 5 — Tier-1 hook for the verify-before-complete rule. Records
|
|
105
133
|
# observable evidence of verification commands (tests, quality tools,
|
|
106
134
|
# builds) into agents/state/verify-before-complete/<digest>.json — ONE FILE
|
|
@@ -120,6 +148,7 @@ concerns:
|
|
|
120
148
|
args: []
|
|
121
149
|
fail_closed: false
|
|
122
150
|
severity: advisory
|
|
151
|
+
effect: verification
|
|
123
152
|
needs_payload_bodies: [input, result]
|
|
124
153
|
# Phase 5 — Tier-1 hook for the minimal-safe-diff rule. Counts unique
|
|
125
154
|
# files touched per turn into agents/runtime/state/minimal-safe-diff.json and
|
|
@@ -139,22 +168,40 @@ concerns:
|
|
|
139
168
|
args: []
|
|
140
169
|
fail_closed: false
|
|
141
170
|
severity: advisory
|
|
171
|
+
effect: verification
|
|
142
172
|
needs_payload_bodies: [input]
|
|
143
173
|
minimal-safe-diff:
|
|
144
174
|
script: src/scripts/minimal_safe_diff_hook.ts
|
|
145
175
|
args: []
|
|
146
176
|
fail_closed: false
|
|
147
177
|
severity: advisory
|
|
178
|
+
effect: verification
|
|
148
179
|
needs_payload_bodies: [input]
|
|
149
180
|
# road-to-security-pillar.md P3.2 — PostToolUse prompt-injection scanner.
|
|
150
181
|
# Warn-in-context (exit 2), never blocks. Default-OFF: no-ops unless
|
|
151
182
|
# hooks.injection_scan.enabled is true in .agent-settings.yml. The runtime
|
|
152
183
|
# backstop layered on the always-on untrusted-input-defense rule.
|
|
184
|
+
#
|
|
185
|
+
# THE INPUT IT READS, AND WHY IT CANNOT MOVE TO A BLOCKING SLOT
|
|
186
|
+
# (road-to-a-content-scanner-on-a-slot-that-can-refuse 1.1). It scans the
|
|
187
|
+
# tool RESULT -- fetched pages, file reads, MCP/tool responses -- which is
|
|
188
|
+
# why it declares `result` below. `pre_tool_use` is the only slot on this
|
|
189
|
+
# host with a non-null `block_exit`, and a pre-call payload has no tool
|
|
190
|
+
# response in it: the `result` body class resolves to `tool_response` /
|
|
191
|
+
# `toolResponse` / `tool_result` / `toolUseResult` (hooks/payload_stub.ts),
|
|
192
|
+
# none of which exist before the call runs. So rebinding for the deny would
|
|
193
|
+
# leave the scanner reading the arguments it was never written to inspect --
|
|
194
|
+
# more enforcing-looking and strictly less detecting. It stays on
|
|
195
|
+
# `post_tool_use` and the published claims say `detected, not blocked`;
|
|
196
|
+
# `docs/enforcement-by-host.md` § "The slot rows are not a statement about
|
|
197
|
+
# any concern" carries the reasoning, and `check_enforcement_matrix` prints
|
|
198
|
+
# the per-host binding audit that keeps it from drifting back.
|
|
153
199
|
injection-scan:
|
|
154
200
|
script: src/scripts/injection_scan_hook.ts
|
|
155
201
|
args: []
|
|
156
202
|
fail_closed: false
|
|
157
203
|
severity: advisory
|
|
204
|
+
effect: verification
|
|
158
205
|
needs_payload_bodies: [input, result]
|
|
159
206
|
# road-to-security-hardening Phase 3 — PreToolUse guard turning the
|
|
160
207
|
# git-history-discipline Iron Law into a deterministic gate. Blocks
|
|
@@ -168,6 +215,7 @@ concerns:
|
|
|
168
215
|
args: []
|
|
169
216
|
fail_closed: true
|
|
170
217
|
severity: blocking
|
|
218
|
+
effect: permission
|
|
171
219
|
needs_payload_bodies: [input]
|
|
172
220
|
# road-to-ai-employee-borrowings Phase 1 — kernel immutability Layer 1.
|
|
173
221
|
# PreToolUse guard: DENIES Write/Edit/NotebookEdit (and cross-platform
|
|
@@ -185,6 +233,29 @@ concerns:
|
|
|
185
233
|
args: []
|
|
186
234
|
fail_closed: true
|
|
187
235
|
severity: blocking
|
|
236
|
+
effect: permission
|
|
237
|
+
needs_payload_bodies: [input]
|
|
238
|
+
# road-to-a-kernel-that-guards-its-plumbing 1.2 — the build-output half of
|
|
239
|
+
# "one mechanism per file class". PreToolUse guard: DENIES Write/Edit/
|
|
240
|
+
# NotebookEdit and the shell write shapes whose target is
|
|
241
|
+
# `dist/hooks/dispatch.js` (the esbuild bundle) or `hooks/hooks.json` (the
|
|
242
|
+
# host binding file). Both are GENERATED — by `npm run build:hooks` and by
|
|
243
|
+
# condense.ts via `task sync` — so a hand edit is never legitimate, and a
|
|
244
|
+
# hand-edited bundle reaches every dispatch while being invisible in a source
|
|
245
|
+
# review. The plumbing SOURCES beside them (hook_manifest.yaml,
|
|
246
|
+
# host_lowering.yaml, the *-dispatcher.sh trampolines, both budget files) are
|
|
247
|
+
# edited on purpose all the time and carry the ADR-268 § 4 ratification
|
|
248
|
+
# RECORD instead — check_kernel_edit_ratified, path set extended by step 1.1.
|
|
249
|
+
# The legitimate builds pass: they reach these files through a build tool,
|
|
250
|
+
# not through a redirect / in-place sed / tee / mv shape. fail_closed: true —
|
|
251
|
+
# the guarantee is about a DETECTED write; a malformed envelope with no
|
|
252
|
+
# target allows. No agent-accessible override; the fix is to rebuild.
|
|
253
|
+
block-plumbing-writes:
|
|
254
|
+
script: src/scripts/hooks/block_plumbing_writes.ts
|
|
255
|
+
args: []
|
|
256
|
+
fail_closed: true
|
|
257
|
+
severity: blocking
|
|
258
|
+
effect: permission
|
|
188
259
|
needs_payload_bodies: [input]
|
|
189
260
|
# road-to-asked-not-parked Phase 5.1 — one question per structured-ask call.
|
|
190
261
|
# PreToolUse guard: DENIES a call to a host's native question picker whose
|
|
@@ -214,6 +285,7 @@ concerns:
|
|
|
214
285
|
args: []
|
|
215
286
|
fail_closed: false
|
|
216
287
|
severity: blocking
|
|
288
|
+
effect: permission
|
|
217
289
|
tools: [AskUserQuestion, AskQuestion, UserQuestion, ask_user_question, ask_question, user_question]
|
|
218
290
|
needs_payload_bodies: [input]
|
|
219
291
|
# road-to-source-silence Phase 4.2 — the write-time half of source
|
|
@@ -236,6 +308,7 @@ concerns:
|
|
|
236
308
|
args: []
|
|
237
309
|
fail_closed: false
|
|
238
310
|
severity: blocking
|
|
311
|
+
effect: permission
|
|
239
312
|
needs_payload_bodies: [input]
|
|
240
313
|
# road-to-renewal-leverage Phase 2 — "fix the code, not the config".
|
|
241
314
|
# PreToolUse guard over the recorded allowlist-growth antipattern
|
|
@@ -252,6 +325,7 @@ concerns:
|
|
|
252
325
|
args: []
|
|
253
326
|
fail_closed: false
|
|
254
327
|
severity: blocking
|
|
328
|
+
effect: permission
|
|
255
329
|
needs_payload_bodies: [input]
|
|
256
330
|
# token-saving Phase 3 — PreToolUse RTK-wrap nudge. DETERMINISTIC: keys off a
|
|
257
331
|
# live `which rtk` probe (not the self-reported flag). When rtk is installed
|
|
@@ -266,6 +340,7 @@ concerns:
|
|
|
266
340
|
args: []
|
|
267
341
|
fail_closed: false
|
|
268
342
|
severity: advisory
|
|
343
|
+
effect: formatting
|
|
269
344
|
needs_payload_bodies: [input]
|
|
270
345
|
# road-to-anti-slop-detector Phase 3 — OPTIONAL PreToolUse anti-slop nudge.
|
|
271
346
|
# Runs the lint_design_slop registry against about-to-be-written UI content
|
|
@@ -279,6 +354,7 @@ concerns:
|
|
|
279
354
|
args: []
|
|
280
355
|
fail_closed: false
|
|
281
356
|
severity: advisory
|
|
357
|
+
effect: verification
|
|
282
358
|
needs_payload_bodies: [input]
|
|
283
359
|
# road-to-frontend-power E1.1 / E1.2 / E1.3 — the DELIVERY carrier the 0.0 %
|
|
284
360
|
# UI-write measurement never had. One script on two slots:
|
|
@@ -305,6 +381,7 @@ concerns:
|
|
|
305
381
|
args: []
|
|
306
382
|
fail_closed: false
|
|
307
383
|
severity: advisory
|
|
384
|
+
effect: notification
|
|
308
385
|
needs_payload_bodies: [input]
|
|
309
386
|
# `advisory`, and the code MATCHES the declaration rather than the prose.
|
|
310
387
|
#
|
|
@@ -330,6 +407,7 @@ concerns:
|
|
|
330
407
|
args: ['--slot', 'stop']
|
|
331
408
|
fail_closed: false
|
|
332
409
|
severity: advisory
|
|
410
|
+
effect: notification
|
|
333
411
|
# road-to-frontend-skill-application Phase 4 — OPTIONAL PreToolUse UI-route
|
|
334
412
|
# nudge. On a Write/Edit to a UI surface with no design consultation latched
|
|
335
413
|
# this session, WARNS (exit 2) naming the route; a read or search touching a
|
|
@@ -345,6 +423,7 @@ concerns:
|
|
|
345
423
|
args: []
|
|
346
424
|
fail_closed: false
|
|
347
425
|
severity: advisory
|
|
426
|
+
effect: notification
|
|
348
427
|
needs_payload_bodies: [input]
|
|
349
428
|
# road-to-a-graph-that-is-shipped 1.2 — PreToolUse code-graph CONTEXT line,
|
|
350
429
|
# replacing the ADR-124 Phase 4 nudge concern, whose hook was deleted in the
|
|
@@ -401,6 +480,7 @@ concerns:
|
|
|
401
480
|
args: []
|
|
402
481
|
fail_closed: false
|
|
403
482
|
severity: advisory
|
|
483
|
+
effect: telemetry
|
|
404
484
|
# road-to-autonomous-auto-mode — the carrier for `token-efficiency` § One
|
|
405
485
|
# command per Bash call. That rule is `type: auto`, so its triggers match the
|
|
406
486
|
# PROMPT, and no prompt announces that the next tool call will be chained;
|
|
@@ -447,23 +527,35 @@ concerns:
|
|
|
447
527
|
args: []
|
|
448
528
|
fail_closed: false
|
|
449
529
|
severity: advisory
|
|
530
|
+
effect: notification
|
|
450
531
|
needs_payload_bodies: [input]
|
|
451
532
|
code-graph-context:
|
|
452
533
|
script: src/scripts/hooks/code_graph_context_hook.ts
|
|
453
534
|
args: []
|
|
454
535
|
fail_closed: false
|
|
455
536
|
severity: advisory
|
|
537
|
+
effect: context
|
|
456
538
|
# Per-concern tool filter — the dispatcher skips this concern in-process on
|
|
457
539
|
# any other tool. See `_concern_matches_tool` in hooks/dispatch_hook.ts for
|
|
458
540
|
# the semantics (absent = every event, "*" = the same, non-tool events are
|
|
459
541
|
# never filtered) and for why the filter is NOT a host `matcher`.
|
|
460
542
|
#
|
|
461
543
|
# This set is not a guess: the hook's entire branch surface is
|
|
462
|
-
# `name === 'Grep' || name === 'Glob'
|
|
463
|
-
# (code_graph_context_hook.ts), and a test pins the
|
|
544
|
+
# `name === 'Grep' || name === 'Glob'`, `name === 'Read'` and
|
|
545
|
+
# `name === 'Bash'` (code_graph_context_hook.ts), and a test pins the
|
|
546
|
+
# manifest list against it.
|
|
547
|
+
#
|
|
548
|
+
# `Bash` is the ONE host-named tool declared here, and the caveat the
|
|
549
|
+
# blocking-guard paragraph below raises applies to it: on a host that calls
|
|
550
|
+
# the shell `launch-process` or `BashTool` this concern will not see it. That
|
|
551
|
+
# is a missed advisory line, not a disabled guard — the trade the paragraph
|
|
552
|
+
# below refuses for a security hook is the right one for a context line, and
|
|
553
|
+
# the alternative (dropping the filter) would dispatch this concern on every
|
|
554
|
+
# tool call in the session.
|
|
464
555
|
#
|
|
465
|
-
# Deliberately NOT declared on the
|
|
466
|
-
# (block-no-verify, block-kernel-rule-writes, block-
|
|
556
|
+
# Deliberately NOT declared on the four blocking PreToolUse guards
|
|
557
|
+
# (block-no-verify, block-kernel-rule-writes, block-plumbing-writes,
|
|
558
|
+
# block-config-weakening): their
|
|
467
559
|
# tool sets span host-specific naming variants (`Bash` / `BashTool` /
|
|
468
560
|
# `launch-process` / `launch_process`, `str-replace-editor` /
|
|
469
561
|
# `str_replace_editor` / `save-file` / …), so a list that misses one variant
|
|
@@ -471,7 +563,7 @@ concerns:
|
|
|
471
563
|
# re-read `tool_name` and return early; paying one dispatch to keep a guard
|
|
472
564
|
# correct is the right trade, and the cheap filter is reserved for advisory
|
|
473
565
|
# concerns whose set is provable from their own source.
|
|
474
|
-
tools: [Grep, Glob, Read]
|
|
566
|
+
tools: [Grep, Glob, Read, Bash]
|
|
475
567
|
needs_payload_bodies: [input]
|
|
476
568
|
# road-to-reachable-code-memory Phase 4 — session_end learning-sidecar
|
|
477
569
|
# aggregation. Joins the EXISTING session_end concern set (no new platform
|
|
@@ -487,6 +579,7 @@ concerns:
|
|
|
487
579
|
args: []
|
|
488
580
|
fail_closed: false
|
|
489
581
|
severity: advisory
|
|
582
|
+
effect: memory
|
|
490
583
|
# Phase 2 of road-to-hooks-actually-fire-in-consumers — session_start
|
|
491
584
|
# gate that surfaces the marketplace-install-but-unscaffolded shape.
|
|
492
585
|
# Writes .augment/.first-run-action-needed.md + one stderr line so
|
|
@@ -497,6 +590,7 @@ concerns:
|
|
|
497
590
|
args: []
|
|
498
591
|
fail_closed: false
|
|
499
592
|
severity: advisory
|
|
593
|
+
effect: notification
|
|
500
594
|
# session-profile-activation Phase 1 — emits a one-line staleness notice
|
|
501
595
|
# when a new session starts with a `runtime.active_packs` overlay carried
|
|
502
596
|
# over from a previous session. Never resets (option a, explicit
|
|
@@ -506,6 +600,7 @@ concerns:
|
|
|
506
600
|
args: []
|
|
507
601
|
fail_closed: false
|
|
508
602
|
severity: advisory
|
|
603
|
+
effect: notification
|
|
509
604
|
# Defense-in-depth twin of the update-command wrapper refresh
|
|
510
605
|
# (cmd_upgrade / cmd_refresh). On session_start, re-stamps a stale
|
|
511
606
|
# project-local ./agent-config wrapper from the canonical template so
|
|
@@ -516,6 +611,7 @@ concerns:
|
|
|
516
611
|
args: []
|
|
517
612
|
fail_closed: false
|
|
518
613
|
severity: advisory
|
|
614
|
+
effect: notification
|
|
519
615
|
# road-to-install-path-convergence Phase 4 — duplicate-surface probe.
|
|
520
616
|
# Reads src/config/surface-matrix.yml, existence-checks declared duplicate
|
|
521
617
|
# classes, nudges ONCE per day (state: agents/runtime/state/
|
|
@@ -526,6 +622,7 @@ concerns:
|
|
|
526
622
|
args: []
|
|
527
623
|
fail_closed: false
|
|
528
624
|
severity: advisory
|
|
625
|
+
effect: telemetry
|
|
529
626
|
# road-to-team-mode Phase 4 — managed Review-Gate circuit breaker.
|
|
530
627
|
# Runs AFTER the plugin's own Stop gate: reads the persisted gate job
|
|
531
628
|
# record, counts consecutive BLOCK verdicts per session, injects the
|
|
@@ -538,6 +635,7 @@ concerns:
|
|
|
538
635
|
args: []
|
|
539
636
|
fail_closed: false
|
|
540
637
|
severity: advisory
|
|
638
|
+
effect: verification
|
|
541
639
|
# Reply-shape backstop for the direct-answers rule (reply-close): a PR
|
|
542
640
|
# created THIS turn must end the reply as the literal last raw URL. This
|
|
543
641
|
# PostToolUse hook fires right after a PR *create* (gh pr create, or a
|
|
@@ -550,6 +648,7 @@ concerns:
|
|
|
550
648
|
args: []
|
|
551
649
|
fail_closed: false
|
|
552
650
|
severity: advisory
|
|
651
|
+
effect: notification
|
|
553
652
|
needs_payload_bodies: [input, result]
|
|
554
653
|
# Push-settle reminder — the second half of "a push closes its own loop".
|
|
555
654
|
# The pre-push hook answers "is this push safe to make"; nothing answered "is
|
|
@@ -565,6 +664,7 @@ concerns:
|
|
|
565
664
|
args: []
|
|
566
665
|
fail_closed: false
|
|
567
666
|
severity: advisory
|
|
667
|
+
effect: verification
|
|
568
668
|
needs_payload_bodies: [input, result]
|
|
569
669
|
# Language-mirror pin — carries the ONE fact the transcript cannot express:
|
|
570
670
|
# which language the human actually typed. 47 skill/slash-command bodies were
|
|
@@ -578,6 +678,7 @@ concerns:
|
|
|
578
678
|
args: []
|
|
579
679
|
fail_closed: false
|
|
580
680
|
severity: advisory
|
|
681
|
+
effect: context
|
|
581
682
|
# Git-authorization ledger — records which git ops the user's OWN WORDS
|
|
582
683
|
# authorize this turn. Writes state only; never blocks.
|
|
583
684
|
git-authorization:
|
|
@@ -585,6 +686,7 @@ concerns:
|
|
|
585
686
|
args: []
|
|
586
687
|
fail_closed: false
|
|
587
688
|
severity: advisory
|
|
689
|
+
effect: verification
|
|
588
690
|
# The blocking half was REMOVED by owner decision on 2026-09-04 (ADR-254).
|
|
589
691
|
# It refused authorizations the owner had in fact given: a guardrail sentence
|
|
590
692
|
# inside an authorization ("never merge empty PRs") read as a withdrawal and
|
|
@@ -616,6 +718,7 @@ concerns:
|
|
|
616
718
|
args: []
|
|
617
719
|
fail_closed: false
|
|
618
720
|
severity: blocking
|
|
721
|
+
effect: permission
|
|
619
722
|
needs_payload_bodies: [input]
|
|
620
723
|
# Canary injection — deterministic carrier for the
|
|
621
724
|
# session-canary rule (greet-by-name at task start + reply-close markers
|
|
@@ -638,6 +741,7 @@ concerns:
|
|
|
638
741
|
args: []
|
|
639
742
|
fail_closed: false
|
|
640
743
|
severity: advisory
|
|
744
|
+
effect: context
|
|
641
745
|
# Council-availability fact. Carries whether a council is configured and from
|
|
642
746
|
# where, because the always-loaded layer refers to the council conditionally
|
|
643
747
|
# and never says how to check. Measured 2026-08-08: an agent announced "kein
|
|
@@ -650,6 +754,7 @@ concerns:
|
|
|
650
754
|
args: []
|
|
651
755
|
fail_closed: false
|
|
652
756
|
severity: advisory
|
|
757
|
+
effect: verification
|
|
653
758
|
# Org-telemetry disclosure (road-to-org-telemetry Phase 3.2; ADR-233 § D5).
|
|
654
759
|
# `org-pack` is the only consent class in this suite granted by somebody
|
|
655
760
|
# OTHER than the person it binds — an org administrator, once, for every
|
|
@@ -663,6 +768,7 @@ concerns:
|
|
|
663
768
|
args: []
|
|
664
769
|
fail_closed: false
|
|
665
770
|
severity: advisory
|
|
771
|
+
effect: notification
|
|
666
772
|
# road-to-org-telemetry Phase 2 (step 2.1) — session-end Class-A flush.
|
|
667
773
|
# Checks whether the outbound spool has bytes and, if so, spawns a DETACHED
|
|
668
774
|
# sender and returns. It makes no network call in the session's own process,
|
|
@@ -691,6 +797,7 @@ concerns:
|
|
|
691
797
|
args: []
|
|
692
798
|
fail_closed: false
|
|
693
799
|
severity: advisory
|
|
800
|
+
effect: telemetry
|
|
694
801
|
# Self-repair intake (road-to-self-repair Phase 1). Two slots, one queue:
|
|
695
802
|
# user_prompt_submit opens a record when the user states the agent worked
|
|
696
803
|
# wrongly and injects the open-queue line; stop runs the deterministic
|
|
@@ -702,6 +809,7 @@ concerns:
|
|
|
702
809
|
args: []
|
|
703
810
|
fail_closed: false
|
|
704
811
|
severity: advisory
|
|
812
|
+
effect: telemetry
|
|
705
813
|
# Shared per-session register (road-to-parallel-session-coordination) — writes
|
|
706
814
|
# this session into <git-common-dir>/agent-sessions/<session_id>.json so every
|
|
707
815
|
# other worktree of the repo can see it, and on session_start injects the live
|
|
@@ -735,6 +843,7 @@ concerns:
|
|
|
735
843
|
args: []
|
|
736
844
|
fail_closed: false
|
|
737
845
|
severity: advisory
|
|
846
|
+
effect: telemetry
|
|
738
847
|
# road-to-orchestrator-discipline-carriers Phase 3 (F6) — deterministic
|
|
739
848
|
# PostToolUse orchestration-telemetry capture. Fires only on an Agent/Task
|
|
740
849
|
# tool-use completion (the two observed subagent-dispatch tool names) and
|
|
@@ -747,6 +856,7 @@ concerns:
|
|
|
747
856
|
args: []
|
|
748
857
|
fail_closed: false
|
|
749
858
|
severity: advisory
|
|
859
|
+
effect: telemetry
|
|
750
860
|
tools: [Agent, Task]
|
|
751
861
|
needs_payload_bodies: [input, result]
|
|
752
862
|
# road-to-org-telemetry Phase 1 (step 1.2) — Class-A usage capture. Fires
|
|
@@ -790,6 +900,7 @@ concerns:
|
|
|
790
900
|
args: []
|
|
791
901
|
fail_closed: false
|
|
792
902
|
severity: advisory
|
|
903
|
+
effect: telemetry
|
|
793
904
|
# Provable from the hook's own source: the only branch surface is
|
|
794
905
|
# `extractToolName(payload) !== SKILL_TOOL_NAME`.
|
|
795
906
|
tools: [Skill]
|
|
@@ -836,6 +947,7 @@ concerns:
|
|
|
836
947
|
args: []
|
|
837
948
|
fail_closed: false
|
|
838
949
|
severity: advisory
|
|
950
|
+
effect: notification
|
|
839
951
|
nudge_rank: 1
|
|
840
952
|
# road-to-inbox-harvest-2026-08-d-runtime-skill-routing Phase 2 — binds the
|
|
841
953
|
# deterministic task→skill ranker, which had shipped with ZERO production
|
|
@@ -859,6 +971,7 @@ concerns:
|
|
|
859
971
|
args: []
|
|
860
972
|
fail_closed: false
|
|
861
973
|
severity: advisory
|
|
974
|
+
effect: context
|
|
862
975
|
nudge_rank: 2
|
|
863
976
|
# road-to-trigger-delivered-rule-bodies Phase 1 — the DELIVERY twin of
|
|
864
977
|
# `skill-route` above: same two slots, opposite payload policy. `skill-route`
|
|
@@ -897,6 +1010,7 @@ concerns:
|
|
|
897
1010
|
args: []
|
|
898
1011
|
fail_closed: false
|
|
899
1012
|
severity: advisory
|
|
1013
|
+
effect: context
|
|
900
1014
|
needs_payload_bodies: [input]
|
|
901
1015
|
# road-to-orchestrator-discipline-carriers Phase 5 (F4-lite) — end-review
|
|
902
1016
|
# nudge. Fires ONLY when the session mutated tracked+untracked, non-doc
|
|
@@ -924,11 +1038,13 @@ concerns:
|
|
|
924
1038
|
args: []
|
|
925
1039
|
fail_closed: false
|
|
926
1040
|
severity: advisory
|
|
1041
|
+
effect: verification
|
|
927
1042
|
end-review-nudge:
|
|
928
1043
|
script: src/scripts/hooks/end_review_nudge_hook.ts
|
|
929
1044
|
args: []
|
|
930
1045
|
fail_closed: false
|
|
931
1046
|
severity: advisory
|
|
1047
|
+
effect: notification
|
|
932
1048
|
# road-to-stop-gate-honesty step 3.1 — skipped on a refusal RETRY.
|
|
933
1049
|
# ARGUMENT, per concern as that step requires: the F2 fire gate is a
|
|
934
1050
|
# once-per-session marker, and this concern's own header records that a
|
|
@@ -969,6 +1085,7 @@ concerns:
|
|
|
969
1085
|
args: []
|
|
970
1086
|
fail_closed: false
|
|
971
1087
|
severity: advisory
|
|
1088
|
+
effect: telemetry
|
|
972
1089
|
# road-to-conformance-round5 Phase 3 — the FIRST concern that can refuse a
|
|
973
1090
|
# turn-END. Round 5 measured the reason: both blocking carriers reached zero
|
|
974
1091
|
# violations, neither advisory carrier did, and 19 language violations
|
|
@@ -992,16 +1109,34 @@ concerns:
|
|
|
992
1109
|
# detector's own trigger conditions, which is the same shape `delegation-nudge`
|
|
993
1110
|
# uses — no signal, no output. `hooks.turn_end_gate.*` is in REMOVED_KEYS.
|
|
994
1111
|
#
|
|
995
|
-
# fail_closed: FALSE
|
|
996
|
-
#
|
|
997
|
-
#
|
|
998
|
-
#
|
|
999
|
-
#
|
|
1112
|
+
# fail_closed: FALSE — and read what that flag still DOES before changing it.
|
|
1113
|
+
# Since the dispatcher resolves rc >= 3 by SEVERITY it no longer decides the
|
|
1114
|
+
# crash branch at all; it decides the stdin-read-failure deny
|
|
1115
|
+
# (`stdin_failure_policy._is_fail_closed_blocking`), and nothing else. An
|
|
1116
|
+
# independent review named the old wording a reviewer trap: an operator
|
|
1117
|
+
# reading "fail_closed: false — a crash must let the turn END" would believe
|
|
1118
|
+
# they were configuring crash behaviour, and flipping it would change the
|
|
1119
|
+
# read-failure deny instead. The REASON it was set false is still true —
|
|
1120
|
+
# failing closed on a turn-end gate does not degrade the session, it wedges
|
|
1121
|
+
# it — but the flag is no longer what delivers it.
|
|
1122
|
+
#
|
|
1123
|
+
# What answers it now lives in the dispatcher, which is the only layer that
|
|
1124
|
+
# can: a blocking `stop` concern spends its refusal ONCE, and on the retry the
|
|
1125
|
+
# host marks (`stop_hook_active`) a crash falls back to fail-open and the turn
|
|
1126
|
+
# ends. The hook's own two re-entrancy layers cannot do this job — both run
|
|
1127
|
+
# INSIDE `main()`, so a crash never reaches them.
|
|
1128
|
+
#
|
|
1129
|
+
# The trade is deliberate: one refused Stop buys a guard that no longer
|
|
1130
|
+
# permits every turn end precisely when it is broken, and the second Stop
|
|
1131
|
+
# releases. Re-entrancy inside the hook stays what it was (`stop_hook_active`;
|
|
1132
|
+
# a marker keyed on the last USER message, never the reply) — see the hook's
|
|
1133
|
+
# file header.
|
|
1000
1134
|
turn-end-gate:
|
|
1001
1135
|
script: src/scripts/hooks/turn_end_gate_hook.ts
|
|
1002
1136
|
args: []
|
|
1003
1137
|
fail_closed: false
|
|
1004
1138
|
severity: blocking
|
|
1139
|
+
effect: permission
|
|
1005
1140
|
# Comment-discipline advisory — the write-time half of
|
|
1006
1141
|
# `lint_code_comments`. Scans the TEXT JUST WRITTEN (Write ->
|
|
1007
1142
|
# tool_input.content, Edit -> tool_input.new_string), never the file on
|
|
@@ -1022,6 +1157,7 @@ concerns:
|
|
|
1022
1157
|
args: []
|
|
1023
1158
|
fail_closed: false
|
|
1024
1159
|
severity: advisory
|
|
1160
|
+
effect: verification
|
|
1025
1161
|
tools: [Write, Edit]
|
|
1026
1162
|
needs_payload_bodies: [input]
|
|
1027
1163
|
# road-to-token-economy-cache Phase 5.1/5.2 — edit-shape advisory. Fires
|
|
@@ -1039,6 +1175,7 @@ concerns:
|
|
|
1039
1175
|
args: []
|
|
1040
1176
|
fail_closed: false
|
|
1041
1177
|
severity: advisory
|
|
1178
|
+
effect: verification
|
|
1042
1179
|
# Provable from the hook's own source: the only branch surface is
|
|
1043
1180
|
# `toolName !== 'Write'` — same cheap-filter discipline as
|
|
1044
1181
|
# `orchestration-record`'s [Agent, Task].
|
|
@@ -1060,6 +1197,7 @@ concerns:
|
|
|
1060
1197
|
args: []
|
|
1061
1198
|
fail_closed: false
|
|
1062
1199
|
severity: advisory
|
|
1200
|
+
effect: verification
|
|
1063
1201
|
# Provable from the hook's own source: READ_TOOLS ∪ WRITE_TOOLS.
|
|
1064
1202
|
tools: [Read, Edit, Write]
|
|
1065
1203
|
needs_payload_bodies: [input]
|
|
@@ -1094,6 +1232,7 @@ concerns:
|
|
|
1094
1232
|
args: []
|
|
1095
1233
|
fail_closed: false
|
|
1096
1234
|
severity: advisory
|
|
1235
|
+
effect: memory
|
|
1097
1236
|
# Provable from the hook's own source: the union of the `tools` sets on
|
|
1098
1237
|
# RECALL_RULES — COMMAND_TOOLS (rules 1 and 4) ∪ EDIT_TOOLS (rules 2, 3).
|
|
1099
1238
|
tools: [Bash, Edit, Write, MultiEdit, str-replace-editor, save-file, launch-process]
|
|
@@ -1117,6 +1256,7 @@ concerns:
|
|
|
1117
1256
|
args: []
|
|
1118
1257
|
fail_closed: false
|
|
1119
1258
|
severity: advisory
|
|
1259
|
+
effect: notification
|
|
1120
1260
|
# road-to-long-horizon-execution Phase 1 (H-1) — the stop slot's first
|
|
1121
1261
|
# WORK-REMAINING concern. No-op unless this session claimed a roadmap
|
|
1122
1262
|
# (`sessions:claim`) whose frontmatter says `execution.mode: autonomous`;
|
|
@@ -1129,6 +1269,12 @@ concerns:
|
|
|
1129
1269
|
# always. Events: agents/runtime/state/run-continuation.jsonl. Kill switch:
|
|
1130
1270
|
# AGENT_CONFIG_NO_RUN_CONTINUATION=1. fail_closed: false — the only block
|
|
1131
1271
|
# it ever emits is the one carrying its own continuation text.
|
|
1272
|
+
# fail_closed: false — and as for `turn-end-gate` above, the dispatcher now
|
|
1273
|
+
# resolves rc >= 3 by SEVERITY rather than by this flag, so a crash here
|
|
1274
|
+
# refuses the first Stop and releases on the retry. What the flag still
|
|
1275
|
+
# decides is the stdin-read-failure deny, not crash behaviour; changing it
|
|
1276
|
+
# changes that and nothing else. The only block this concern DECIDES to emit
|
|
1277
|
+
# is still the one carrying its own continuation text.
|
|
1132
1278
|
run-continuation:
|
|
1133
1279
|
script: src/scripts/hooks/run_continuation_hook.ts
|
|
1134
1280
|
args: []
|
|
@@ -1142,6 +1288,7 @@ concerns:
|
|
|
1142
1288
|
# mechanism was inert on the one verified host. `turn-end-gate` above sits
|
|
1143
1289
|
# on the same slot and declares `blocking` for exactly this reason.
|
|
1144
1290
|
severity: blocking
|
|
1291
|
+
effect: permission
|
|
1145
1292
|
# road-to-user-out-of-the-loop Phase 0 Step 1 — the interruption ledger.
|
|
1146
1293
|
# Every Stop, classifies whether the turn that just ended put a synchronous
|
|
1147
1294
|
# contact to the user and appends one `{run_id, turn, kind, class, roadmap}`
|
|
@@ -1167,6 +1314,7 @@ concerns:
|
|
|
1167
1314
|
args: []
|
|
1168
1315
|
fail_closed: false
|
|
1169
1316
|
severity: advisory
|
|
1317
|
+
effect: telemetry
|
|
1170
1318
|
# road-to-stop-gate-honesty step 3.1 — skipped on a refusal RETRY, and this
|
|
1171
1319
|
# is the flag with the real saving.
|
|
1172
1320
|
# ARGUMENT, per concern: `alreadyRecorded(ledgerPath, run_id, turn)` dedupes
|
|
@@ -1200,6 +1348,7 @@ concerns:
|
|
|
1200
1348
|
args: []
|
|
1201
1349
|
fail_closed: false
|
|
1202
1350
|
severity: advisory
|
|
1351
|
+
effect: telemetry
|
|
1203
1352
|
# road-to-inbox-harvest-2026-08-d-context-ledger Phase 1 Step 1.1 — the
|
|
1204
1353
|
# tool-result byte counter. `hook-token-budget.json` registers the gap it
|
|
1205
1354
|
# closes in its own words: bytes-into-context from tool RESULTS are
|
|
@@ -1224,6 +1373,7 @@ concerns:
|
|
|
1224
1373
|
args: []
|
|
1225
1374
|
fail_closed: false
|
|
1226
1375
|
severity: advisory
|
|
1376
|
+
effect: telemetry
|
|
1227
1377
|
# road-to-subagent-lifecycle-integrity Phase 3 Step 1 — spawn guard, SHADOW
|
|
1228
1378
|
# ONLY, per docs/contracts/concern-activation-policy.md. On every Agent/Task
|
|
1229
1379
|
# call it appends one `spawn_guard_shadow` line recording what a guard WOULD
|
|
@@ -1244,6 +1394,7 @@ concerns:
|
|
|
1244
1394
|
args: []
|
|
1245
1395
|
fail_closed: false
|
|
1246
1396
|
severity: advisory
|
|
1397
|
+
effect: telemetry
|
|
1247
1398
|
tools: [Agent, Task]
|
|
1248
1399
|
# road-to-source-first-frontend Phase 3 Steps 1-2 — source-first gate, SHADOW
|
|
1249
1400
|
# ONLY, per docs/contracts/concern-activation-policy.md. On every
|
|
@@ -1268,11 +1419,15 @@ concerns:
|
|
|
1268
1419
|
# to advisory is pre-registered in the hook header.
|
|
1269
1420
|
#
|
|
1270
1421
|
# Never blocks, never warns: exit 0 on every path. fail_closed: false.
|
|
1422
|
+
# `effect: telemetry`, not `verification`, and the script's own header is why:
|
|
1423
|
+
# "it emits nothing to the model and it never blocks". A shadow concern
|
|
1424
|
+
# records what a gate WOULD have said; recording is what it delivers.
|
|
1271
1425
|
source-first-gate:
|
|
1272
1426
|
script: src/scripts/hooks/source_first_gate_hook.ts
|
|
1273
1427
|
args: []
|
|
1274
1428
|
fail_closed: false
|
|
1275
1429
|
severity: advisory
|
|
1430
|
+
effect: telemetry
|
|
1276
1431
|
needs_payload_bodies: [input]
|
|
1277
1432
|
# road-to-runtime-event-journal Phase 1 step 1.4 — the journal's hook binding
|
|
1278
1433
|
# (AI council 2026-08-28, decision 3). `_lib/runtime_journal.ts` shipped bound
|
|
@@ -1316,6 +1471,7 @@ concerns:
|
|
|
1316
1471
|
args: []
|
|
1317
1472
|
fail_closed: false
|
|
1318
1473
|
severity: advisory
|
|
1474
|
+
effect: telemetry
|
|
1319
1475
|
|
|
1320
1476
|
# Role axis (road-to-token-economy-dispatch Phase 2). The dispatcher reads
|
|
1321
1477
|
# AGENT_CONFIG_SESSION_ROLE (resolved via _lib/session_role.ts — set ONLY by
|
|
@@ -1387,12 +1543,22 @@ platforms:
|
|
|
1387
1543
|
session_start: [chat-history, hot-context, handoff-context, session-canary, council-availability, telemetry-disclosure, first-run-gate, onboarding-gate, verify-before-complete, minimal-safe-diff, profile-staleness, wrapper-freshness, surface-probe, session-register]
|
|
1388
1544
|
session_end: [chat-history, memory-learn, session-register, roadmap-progress, telemetry-flush]
|
|
1389
1545
|
stop: [chat-history, verify-before-complete, self-repair, session-register, roadmap-progress, design-pass-stop]
|
|
1390
|
-
pre_tool_use: [block-no-verify, evidence-independence, block-kernel-rule-writes, block-config-weakening, block-speaking-inbox-dir, rtk-wrap, design-slop, ui-route-nudge, code-graph-context, chain-nudge, ship-diff-volume, reread-guard, memory-recall]
|
|
1546
|
+
pre_tool_use: [block-no-verify, evidence-independence, block-kernel-rule-writes, block-plumbing-writes, block-config-weakening, block-speaking-inbox-dir, rtk-wrap, design-slop, ui-route-nudge, code-graph-context, chain-nudge, ship-diff-volume, reread-guard, memory-recall]
|
|
1391
1547
|
post_tool_use: [chat-history, roadmap-progress, context-hygiene, verify-before-complete, minimal-safe-diff, injection-scan, pr-url-reminder, push-settle, orchestration-record, telemetry-usage, tool-result-bytes, edit-shape, comment-discipline, design-pass]
|
|
1392
1548
|
|
|
1393
1549
|
claude:
|
|
1394
1550
|
ask: native
|
|
1395
|
-
session_start: [chat-history, hot-context, handoff-context, session-canary, council-availability, telemetry-disclosure, first-run-gate, onboarding-gate, verify-before-complete, minimal-safe-diff, profile-staleness, wrapper-freshness, surface-probe, session-register, review-baseline, journal-record]
|
|
1551
|
+
session_start: [chat-history, hot-context, handoff-context, session-canary, council-availability, telemetry-disclosure, first-run-gate, onboarding-gate, verify-before-complete, minimal-safe-diff, profile-staleness, wrapper-freshness, surface-probe, session-register, review-baseline, journal-record, rule-inject]
|
|
1552
|
+
# `rule-inject` is bound here for ONE source: `compact`
|
|
1553
|
+
# (road-to-a-rule-carrier-that-works-outside-the-repo step 1.6). The concern
|
|
1554
|
+
# returns before reading anything on `startup`, `resume`, `clear` and
|
|
1555
|
+
# `fork`, so this binding costs a function call per session on every other
|
|
1556
|
+
# source. It exists because `pre_compact` can only re-ARM delivery — it
|
|
1557
|
+
# cannot deliver, since the host is about to discard the context it would
|
|
1558
|
+
# emit into. The law sections of the pre-compaction seen-set are sent here
|
|
1559
|
+
# instead, under the same 8,000-character budget, which is the half the
|
|
1560
|
+
# concern's own header used to end at: a rule whose trigger does not recur
|
|
1561
|
+
# was not restored at all.
|
|
1396
1562
|
session_end: [chat-history, memory-learn, session-register, roadmap-progress, telemetry-flush, journal-record]
|
|
1397
1563
|
stop: [chat-history, verify-before-complete, team-review-gate, end-review-nudge, obligation-settle, turn-end-gate, self-repair, session-register, session-eol, interruption-ledger, roadmap-progress, design-pass-stop, suggestion-capture, journal-record, run-continuation]
|
|
1398
1564
|
user_prompt_submit: [chat-history, verify-before-complete, minimal-safe-diff, language-mirror, delegation-nudge, skill-route, git-authorization, session-canary, self-repair, session-register, rule-inject, suggestion-capture, journal-record]
|
|
@@ -1419,7 +1585,7 @@ platforms:
|
|
|
1419
1585
|
# (+16,329 GPT tok, +69 % on the thin rule layer) are in
|
|
1420
1586
|
# `project_thin_rules.path_only_ids`; the receiver is
|
|
1421
1587
|
# `agents/roadmaps/stubs/road-to-a-path-route-under-delivery.md`.
|
|
1422
|
-
pre_tool_use: [block-no-verify, evidence-independence, block-kernel-rule-writes, block-config-weakening, block-speaking-inbox-dir, one-question-per-ask, rtk-wrap, design-slop, ui-route-nudge, code-graph-context, chain-nudge, ship-diff-volume, reread-guard, spawn-guard-shadow, source-first-gate, memory-recall]
|
|
1588
|
+
pre_tool_use: [block-no-verify, evidence-independence, block-kernel-rule-writes, block-plumbing-writes, block-config-weakening, block-speaking-inbox-dir, one-question-per-ask, rtk-wrap, design-slop, ui-route-nudge, code-graph-context, chain-nudge, ship-diff-volume, reread-guard, spawn-guard-shadow, source-first-gate, memory-recall]
|
|
1423
1589
|
post_tool_use: [chat-history, roadmap-progress, context-hygiene, verify-before-complete, minimal-safe-diff, injection-scan, pr-url-reminder, push-settle, orchestration-record, telemetry-usage, tool-result-bytes, edit-shape, comment-discipline, language-mirror, design-pass, journal-record]
|
|
1424
1590
|
# `language-mirror` — round-5 § 6.1. `pre_compact` sets a pin-lost marker;
|
|
1425
1591
|
# the `post_tool_use` entry above re-emits the pin exactly once while that
|
|
@@ -1466,7 +1632,7 @@ platforms:
|
|
|
1466
1632
|
# still costs the dispatch, and its entire output is thrown away.
|
|
1467
1633
|
stop: [chat-history, verify-before-complete, self-repair, session-register, roadmap-progress, design-pass-stop]
|
|
1468
1634
|
user_prompt_submit: [chat-history, verify-before-complete, minimal-safe-diff, language-mirror, git-authorization, session-canary, self-repair, session-register]
|
|
1469
|
-
pre_tool_use: [block-no-verify, evidence-independence, block-kernel-rule-writes, block-config-weakening, block-speaking-inbox-dir, rtk-wrap, design-slop, ui-route-nudge, code-graph-context, chain-nudge, ship-diff-volume, reread-guard, spawn-guard-shadow, source-first-gate, memory-recall]
|
|
1635
|
+
pre_tool_use: [block-no-verify, evidence-independence, block-kernel-rule-writes, block-plumbing-writes, block-config-weakening, block-speaking-inbox-dir, rtk-wrap, design-slop, ui-route-nudge, code-graph-context, chain-nudge, ship-diff-volume, reread-guard, spawn-guard-shadow, source-first-gate, memory-recall]
|
|
1470
1636
|
post_tool_use: [chat-history, roadmap-progress, context-hygiene, verify-before-complete, minimal-safe-diff, injection-scan, pr-url-reminder, push-settle, orchestration-record, telemetry-usage, tool-result-bytes, edit-shape, comment-discipline, design-pass]
|
|
1471
1637
|
# subagent-ledger IS bound here, unlike the two nudges above, and the
|
|
1472
1638
|
# difference is the delivery channel rather than the platform: the nudges
|
|
@@ -1571,6 +1737,18 @@ native_event_aliases:
|
|
|
1571
1737
|
Stop: stop
|
|
1572
1738
|
UserPromptSubmit: user_prompt_submit
|
|
1573
1739
|
PostToolUse: post_tool_use
|
|
1740
|
+
# A FAILING tool call does not fire `PostToolUse` at all — it fires
|
|
1741
|
+
# `PostToolUseFailure`, which until now was bound to nothing, so the
|
|
1742
|
+
# verification recorder never saw a red command and `verification_runs`
|
|
1743
|
+
# could only ever hold passes. Observed on 2.1.286, three one-shot sessions,
|
|
1744
|
+
# exactly one of the two events per call — not inferred from the event list.
|
|
1745
|
+
# Lowered onto the SAME canonical slot rather than given a canonical event
|
|
1746
|
+
# of its own: one slot, one concern list, no change to the event vocabulary.
|
|
1747
|
+
# Deliberately claude-only. Cowork is Claude Code underneath and the rows
|
|
1748
|
+
# below duplicate this vocabulary, but this pair was measured on claude and
|
|
1749
|
+
# on no other host, and an alias row asserting a host behaviour nobody
|
|
1750
|
+
# observed is the defect class this suite keeps finding in its own tables.
|
|
1751
|
+
PostToolUseFailure: post_tool_use
|
|
1574
1752
|
PreToolUse: pre_tool_use
|
|
1575
1753
|
PreCompact: pre_compact
|
|
1576
1754
|
# road-to-subagent-lifecycle-integrity Phase 1 Step 1. Both tokens were
|