@event4u/agent-config 14.12.0 → 14.14.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 +118 -155
- package/CONTRIBUTING.md +38 -0
- package/CREDITS.md +135 -0
- package/NOTICE +13 -0
- package/README.md +8 -6
- package/dist/agent-src/commands/analyze/inbox.md +145 -2
- package/dist/agent-src/commands/feature/dev.md +7 -2
- package/dist/agent-src/commands/ghostwriter/write.md +5 -1
- package/dist/agent-src/commands/implement-ticket.md +1 -1
- package/dist/agent-src/commands/mission/upgrade.md +1 -1
- package/dist/agent-src/commands/orchestrate.md +2 -2
- package/dist/agent-src/commands/post-as/me.md +5 -1
- package/dist/agent-src/commands/pr/merge.md +19 -6
- package/dist/agent-src/commands/roadmap/process-full.md +19 -5
- package/dist/agent-src/commands/tdd/red.md +12 -2
- package/dist/agent-src/commands/work.md +1 -1
- package/dist/agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +40 -0
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +5 -2
- package/dist/agent-src/contexts/execution/autonomy-mechanics.md +21 -0
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +1 -0
- package/dist/agent-src/contexts/execution/subagent-response-contract.md +40 -0
- package/dist/agent-src/contexts/execution/subagent-steering.md +13 -1
- package/dist/agent-src/contexts/execution/terminal-states.md +96 -0
- package/dist/agent-src/rules/artifact-drafting-protocol.md +1 -1
- package/dist/agent-src/rules/broken-access-control.md +4 -0
- package/dist/agent-src/rules/code-comment-discipline.md +6 -0
- package/dist/agent-src/rules/code-provenance.md +4 -0
- package/dist/agent-src/rules/design-fidelity.md +1 -1
- package/dist/agent-src/rules/domain-safety-pii.md +4 -0
- package/dist/agent-src/rules/domain-safety-retention.md +4 -0
- package/dist/agent-src/rules/engineering-safety-floor.md +2 -0
- package/dist/agent-src/rules/external-code-graph-interop.md +14 -12
- package/dist/agent-src/rules/improve-before-implement.md +6 -8
- package/dist/agent-src/rules/laravel-routing.md +1 -1
- package/dist/agent-src/rules/lethal-trifecta-guard.md +4 -0
- package/dist/agent-src/rules/secret-vcs-guard.md +2 -0
- package/dist/agent-src/rules/security-sensitive-stop.md +2 -0
- package/dist/agent-src/rules/source-confidentiality.md +12 -34
- package/dist/agent-src/rules/symfony-routing.md +1 -1
- package/dist/agent-src/rules/token-efficiency.md +14 -0
- package/dist/agent-src/rules/tool-safety.md +4 -0
- package/dist/agent-src/rules/untrusted-input-defense.md +4 -0
- package/dist/agent-src/scripts/archive_completed_roadmaps.ts +252 -8
- package/dist/agent-src/scripts/guarded_baseline.ts +343 -0
- package/dist/agent-src/scripts/roadmap_set_step.ts +253 -0
- package/dist/agent-src/scripts/stub_queue.ts +82 -0
- package/dist/agent-src/scripts/stubs_due.ts +516 -0
- package/dist/agent-src/scripts/ticket_bundles.ts +84 -0
- package/dist/agent-src/scripts/update_roadmap_progress.ts +16 -12
- package/dist/agent-src/skills/brand-asset-generation/SKILL.md +17 -4
- package/dist/agent-src/skills/brand-audit/SKILL.md +33 -0
- package/dist/agent-src/skills/code-intelligence/SKILL.md +57 -0
- package/dist/agent-src/skills/database/SKILL.md +8 -0
- package/dist/agent-src/skills/dependency-upgrade/SKILL.md +27 -0
- package/dist/agent-src/skills/design-review/SKILL.md +1 -1
- package/dist/agent-src/skills/doc-coauthoring/SKILL.md +1 -1
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +17 -1
- package/dist/agent-src/skills/feature-planning/SKILL.md +9 -2
- package/dist/agent-src/skills/frontend-render-security/SKILL.md +44 -0
- package/dist/agent-src/skills/git-workflow/SKILL.md +1 -1
- package/dist/agent-src/skills/js-library-packaging/scripts/check_package_surface.ts +38 -4
- package/dist/agent-src/skills/judge-artifact-completeness/rubrics/ticket-quality-score.json +2 -2
- package/dist/agent-src/skills/laravel/SKILL.md +35 -0
- package/dist/agent-src/skills/laravel-migration/SKILL.md +57 -3
- package/dist/agent-src/skills/monorepo-workspace/SKILL.md +26 -0
- package/dist/agent-src/skills/playbook-authoring/SKILL.md +28 -1
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +1 -1
- package/dist/agent-src/skills/skill-writing/references/procedure.md +5 -5
- package/dist/agent-src/skills/sql-writing/SKILL.md +7 -1
- package/dist/agent-src/skills/standards-from-config/SKILL.md +27 -4
- package/dist/agent-src/skills/supply-chain-intake/SKILL.md +11 -4
- package/dist/agent-src/skills/symfony-workflow/SKILL.md +35 -0
- package/dist/agent-src/skills/test-case-discovery/SKILL.md +85 -0
- package/dist/agent-src/skills/test-driven-development/SKILL.md +33 -9
- package/dist/agent-src/skills/testing-anti-patterns/SKILL.md +1 -1
- package/dist/agent-src/skills/testing-anti-patterns/process-anti-patterns.md +37 -0
- package/dist/agent-src/skills/ui-component-architect/SKILL.md +45 -2
- package/dist/agent-src/skills/upstream-contribute/SKILL.md +38 -1
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +9 -4
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/roadmaps.md +97 -3
- package/dist/agent-src/templates/scripts/check_memory.ts +258 -17
- package/dist/agent-src/templates/scripts/check_memory_proposal.ts +9 -3
- package/dist/agent-src/templates/scripts/memory_lookup.ts +86 -0
- package/dist/agent-src/templates/scripts/memory_signal.ts +44 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/backend/implement.ts +90 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/backend/index.ts +11 -0
- package/dist/agent-src/templates/scripts/work_engine/directives/backend/test.ts +23 -1
- package/dist/agent-src/templates/scripts/work_engine/directives/backend/verify.ts +10 -1
- package/dist/agent-src/templates/scripts/work_engine/directives/mixed/stitch.ts +5 -1
- package/dist/agent-src/templates/scripts/work_engine/stack/runner.ts +102 -14
- package/dist/cli/commands/uiAudit.js +124 -5
- package/dist/cli/registry.js +2 -0
- package/dist/cli-delegate/{chunk-HYWSRNUX.js → chunk-2DK2VJWG.js} +3 -3
- package/dist/cli-delegate/{chunk-JCW7ZLHK.js → chunk-4FS4WRXP.js} +5 -0
- package/dist/cli-delegate/{chunk-OMIVVCG2.js → chunk-A4QJ6ENT.js} +24 -0
- package/dist/cli-delegate/{chunk-JJA2QEWA.js → chunk-AKJGUQNO.js} +466 -285
- package/dist/cli-delegate/{chunk-E46KPN6K.js → chunk-BTWUYDGN.js} +424 -363
- package/dist/cli-delegate/{chunk-K4FFODTS.js → chunk-ILMUPLGW.js} +1227 -316
- package/dist/cli-delegate/{chunk-FF7WAFMR.js → chunk-KPBWFOPZ.js} +5 -1
- package/dist/cli-delegate/cmd_adr_effective.js +102 -0
- package/dist/cli-delegate/cmd_conformance.js +80 -11
- package/dist/cli-delegate/cmd_doctor.js +3 -3
- package/dist/cli-delegate/cmd_export.js +3 -2
- package/dist/cli-delegate/cmd_fleet.js +2 -2
- package/dist/cli-delegate/cmd_handoff.js +1 -1
- package/dist/cli-delegate/cmd_preflight.js +2 -2
- package/dist/cli-delegate/cmd_prune.js +3 -2
- package/dist/cli-delegate/cmd_settings_get.js +1 -1
- package/dist/cli-delegate/cmd_settings_migrate.js +3 -2
- package/dist/cli-delegate/cmd_settings_set.js +2 -2
- package/dist/cli-delegate/cmd_sync.js +3 -2
- package/dist/cli-delegate/cmd_uninstall.js +3 -2
- package/dist/cli-delegate/cmd_validate.js +3 -2
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +58 -58
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +1 -1
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +2 -2
- package/dist/discovery/trust-report.md +1 -1
- package/dist/discovery/workspaces.json +2 -2
- package/dist/hooks/dispatch.js +2900 -1049
- package/dist/install/claudeRuleRewrite.js +254 -0
- package/dist/install/detect.js +29 -16
- package/dist/install/detect_php_shape.js +159 -0
- package/dist/install/install.mjs +634 -428
- 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 +3 -3
- package/dist/mcp/server.json +3 -3
- package/dist/mcp/server.mjs +4895 -2627
- package/dist/server/schemas/settings.js +3 -0
- package/dist/ui/assets/index-D0jaCRPM.js +29 -0
- package/dist/ui/index.html +1 -1
- package/docs/MIGRATION.md +1 -1
- package/docs/THIRD-PARTY-NOTICES.md +25 -0
- package/docs/contracts/provider-lifecycle.md +1 -1
- package/docs/contracts/settings-classes.md +10 -4
- package/docs/guidelines/agent-infra/5w2h-analysis.md +3 -3
- package/docs/guidelines/agent-infra/agent-interaction-and-decision-quality.md +1 -0
- package/docs/guidelines/agent-infra/artifact-drafting-protocol-mechanics.md +58 -3
- package/docs/guidelines/agent-infra/ask-when-uncertain-demos.md +2 -2
- package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +3 -3
- package/docs/guidelines/agent-infra/break-glass-usage.md +7 -7
- package/docs/guidelines/agent-infra/carve-out-predicates.md +3 -3
- package/docs/guidelines/agent-infra/comparison-matrix.md +1 -1
- package/docs/guidelines/agent-infra/critical-thinking.md +4 -4
- package/docs/guidelines/agent-infra/direct-answers-demos.md +2 -2
- package/docs/guidelines/agent-infra/domain-eval-anti-pattern.md +1 -1
- package/docs/guidelines/agent-infra/engineering-memory-data-format.md +3 -3
- package/docs/guidelines/agent-infra/existence-question-verdicts.md +80 -0
- package/docs/guidelines/agent-infra/first-principles.md +2 -2
- package/docs/guidelines/agent-infra/framework-neutrality-patterns.md +2 -2
- package/docs/guidelines/agent-infra/guarded-baseline.md +39 -0
- package/docs/guidelines/agent-infra/inversion-thinking.md +5 -5
- package/docs/guidelines/agent-infra/language-and-tone-examples.md +1 -1
- package/docs/guidelines/agent-infra/layered-settings.md +10 -10
- package/docs/guidelines/agent-infra/memory-access.md +1 -1
- package/docs/guidelines/agent-infra/mental-models.md +3 -3
- package/docs/guidelines/agent-infra/reuse-verdict-mechanics.md +71 -0
- package/docs/guidelines/agent-infra/review-routing-data-format.md +7 -7
- package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +13 -7
- package/docs/guidelines/agent-infra/role-contracts.md +2 -2
- package/docs/guidelines/agent-infra/role-mode-router.md +3 -3
- package/docs/guidelines/agent-infra/rule-type-governance.md +2 -2
- package/docs/guidelines/agent-infra/scqa-framework.md +5 -5
- package/docs/guidelines/agent-infra/self-improvement-pipeline.md +6 -6
- package/docs/guidelines/agent-infra/simplicity-and-goal-demos.md +2 -2
- package/docs/guidelines/agent-infra/six-hats.md +3 -3
- package/docs/guidelines/agent-infra/skill-quality-checklist.md +6 -6
- package/docs/guidelines/agent-infra/source-confidentiality-mechanics.md +109 -0
- package/docs/guidelines/agent-infra/systems-thinking.md +1 -1
- package/docs/guidelines/agent-infra/verify-before-complete-demos.md +2 -2
- package/docs/guidelines/augment-portability-patterns.md +6 -4
- package/docs/guidelines/code-clarity.md +18 -0
- package/docs/guidelines/component-oriented-and-oop-development.md +3 -2
- package/docs/guidelines/cross-role-handoff.md +2 -2
- package/docs/guidelines/design-fidelity-mechanics.md +1 -1
- package/docs/guidelines/docs/readme-size-and-splitting.md +3 -3
- package/docs/guidelines/php/database.md +90 -7
- package/docs/guidelines/prompt-templates.md +7 -7
- package/llms.txt +2 -2
- package/package.json +5 -2
- package/src/agent-src/scripts/archive_completed_roadmaps.ts +252 -8
- package/src/agent-src/scripts/guarded_baseline.ts +343 -0
- package/src/agent-src/scripts/roadmap_set_step.ts +253 -0
- package/src/agent-src/scripts/stub_queue.ts +82 -0
- package/src/agent-src/scripts/stubs_due.ts +516 -0
- package/src/agent-src/scripts/ticket_bundles.ts +84 -0
- package/src/agent-src/scripts/update_roadmap_progress.ts +16 -12
- package/src/agent-src/templates/scripts/check_memory.ts +258 -17
- package/src/agent-src/templates/scripts/check_memory_proposal.ts +9 -3
- package/src/agent-src/templates/scripts/memory_lookup.ts +86 -0
- package/src/agent-src/templates/scripts/memory_signal.ts +44 -0
- package/src/agent-src/templates/scripts/work_engine/directives/backend/implement.ts +90 -0
- package/src/agent-src/templates/scripts/work_engine/directives/backend/index.ts +11 -0
- package/src/agent-src/templates/scripts/work_engine/directives/backend/test.ts +23 -1
- package/src/agent-src/templates/scripts/work_engine/directives/backend/verify.ts +10 -1
- package/src/agent-src/templates/scripts/work_engine/directives/mixed/stitch.ts +5 -1
- package/src/agent-src/templates/scripts/work_engine/stack/runner.ts +102 -14
- package/src/config/agent-settings.template.yml +32 -3
- package/src/config/assurance-capability-registry.json +21 -9
- package/src/config/canonical-terms.yml +119 -0
- package/src/config/capability-native-outcome-bars.json +81 -0
- package/src/config/ci-local-parity.yml +80 -0
- package/src/config/drafting-channels.yml +43 -0
- package/src/config/estate-count-budget.json +57 -36
- package/src/config/evaluator-budgets.json +14 -14
- package/src/config/gate-coverage.yml +729 -63
- package/src/config/gate-reachability-exemptions.json +21 -0
- package/src/config/gate-violation-baselines.json +42 -19
- package/src/config/harness-evolution-budget.json +25 -0
- package/src/config/lapsed-beta-baseline.json +96 -0
- package/src/config/memory-twin-verdicts.yml +129 -0
- package/src/config/metric-registry.yml +124 -0
- package/src/config/pack-size-budget.json +16 -15
- package/src/config/preamble-payload-budget.json +12 -4
- package/src/config/profiles/balanced.ini +27 -0
- package/src/config/profiles/full.ini +27 -0
- package/src/config/profiles/minimal.ini +27 -0
- package/src/config/publish-surface.json +9 -2
- package/src/config/routing-coverage-seed.json +16 -2
- package/src/config/rule-stub-ceilings.json +133 -112
- package/src/config/turnaround-budget.json +66 -0
- package/src/install/claudeRuleRewrite.ts +288 -0
- package/src/install/detect.ts +60 -17
- package/src/install/detect_php_shape.ts +191 -0
- package/src/scripts/_cli/cmd_doctor.ts +27 -112
- package/src/scripts/_dispatch.bash +23 -0
- package/src/scripts/_lib/activation_ladder.ts +255 -0
- package/src/scripts/_lib/activation_receipt_producer.ts +341 -0
- package/src/scripts/_lib/activation_states.ts +88 -0
- package/src/scripts/_lib/adherence_detectors.ts +143 -0
- package/src/scripts/_lib/adr_frontmatter.ts +26 -0
- package/src/scripts/_lib/arith_claims.ts +181 -0
- package/src/scripts/_lib/arm_ranking.ts +62 -0
- package/src/scripts/_lib/asset_delivery_ledger.ts +303 -0
- package/src/scripts/_lib/audit_field_provenance.ts +54 -0
- package/src/scripts/_lib/auto_dispatch.ts +32 -3
- package/src/scripts/_lib/bench_ab_size_claim.ts +98 -4
- package/src/scripts/_lib/benchmark_cache_fields.ts +158 -0
- package/src/scripts/_lib/candidate_pair_delta.ts +349 -0
- package/src/scripts/_lib/candidate_proposer.ts +402 -0
- package/src/scripts/_lib/candidate_record.ts +601 -0
- package/src/scripts/_lib/capture_rate.ts +319 -0
- package/src/scripts/_lib/carrier_status.ts +118 -0
- package/src/scripts/_lib/cascade_stage_enumeration.ts +92 -0
- package/src/scripts/_lib/collector_denominator.ts +771 -0
- package/src/scripts/_lib/collector_record.ts +340 -0
- package/src/scripts/_lib/collector_store.ts +664 -0
- package/src/scripts/_lib/collector_supervision.ts +827 -0
- package/src/scripts/_lib/concern_estate.ts +77 -0
- package/src/scripts/_lib/config_chain.ts +477 -0
- package/src/scripts/_lib/config_cost.ts +209 -0
- package/src/scripts/_lib/corpus_manifest.ts +726 -0
- package/src/scripts/_lib/council_settings_block.ts +6 -0
- package/src/scripts/_lib/curator_ops.ts +172 -0
- package/src/scripts/_lib/delivery_arm_experiment.ts +282 -0
- package/src/scripts/_lib/delivery_criticality.ts +126 -0
- package/src/scripts/_lib/doctor_runtime_checks.ts +70 -0
- package/src/scripts/_lib/empty_cycles.ts +88 -0
- package/src/scripts/_lib/estate_carrier_cases.ts +72 -0
- package/src/scripts/_lib/eval_publication.ts +354 -0
- package/src/scripts/_lib/evaluation_cascade.ts +452 -0
- package/src/scripts/_lib/evaluation_vector.ts +283 -0
- package/src/scripts/_lib/evaluator_promotion.ts +225 -0
- package/src/scripts/_lib/evidence_basis.ts +118 -0
- package/src/scripts/_lib/evolution_roi.ts +562 -0
- package/src/scripts/_lib/exec_evidence.ts +8 -0
- package/src/scripts/_lib/experience_card.ts +272 -0
- package/src/scripts/_lib/experience_report.ts +151 -0
- package/src/scripts/_lib/experiment_freeze.ts +112 -0
- package/src/scripts/_lib/generated_by.ts +66 -0
- package/src/scripts/_lib/harness_evolution_guards.ts +239 -0
- package/src/scripts/_lib/hook_effect_probe.ts +141 -0
- package/src/scripts/_lib/host_denominator.ts +687 -0
- package/src/scripts/_lib/host_projection_reach.ts +157 -0
- package/src/scripts/_lib/ignored_blocker.ts +148 -0
- package/src/scripts/_lib/install_reach_checks.ts +495 -0
- package/src/scripts/_lib/json_duplicate_keys.ts +150 -0
- package/src/scripts/_lib/judge_hygiene.ts +228 -0
- package/src/scripts/_lib/legacy_boundary_map.ts +228 -0
- package/src/scripts/_lib/lexical_shortlist.ts +215 -0
- package/src/scripts/_lib/llm_candidate_proposer.ts +461 -0
- package/src/scripts/_lib/llm_proposer_transport.ts +153 -0
- package/src/scripts/_lib/loop_guards.ts +299 -0
- package/src/scripts/_lib/loss_class.ts +129 -0
- package/src/scripts/_lib/machine_wake.ts +51 -0
- package/src/scripts/_lib/md_prose_lines.ts +177 -0
- package/src/scripts/_lib/minimality_tiebreak.ts +168 -0
- package/src/scripts/_lib/one_resolver_invariant.ts +449 -0
- package/src/scripts/_lib/orchestration_record.ts +253 -5
- package/src/scripts/_lib/outcome_envelope.ts +227 -0
- package/src/scripts/_lib/outcome_vocabularies.ts +125 -0
- package/src/scripts/_lib/paired_stats.ts +245 -0
- package/src/scripts/_lib/paired_verdict.ts +226 -0
- package/src/scripts/_lib/pathology_archive.ts +393 -0
- package/src/scripts/_lib/prefix_stable_surfaces.ts +123 -0
- package/src/scripts/_lib/privacy_class.ts +47 -0
- package/src/scripts/_lib/promotion_capability.ts +315 -0
- package/src/scripts/_lib/promotion_evidence.ts +414 -0
- package/src/scripts/_lib/promotion_review.ts +294 -0
- package/src/scripts/_lib/prompt_shape.ts +92 -0
- package/src/scripts/_lib/regression_neighbourhood.ts +259 -0
- package/src/scripts/_lib/release_highlights.ts +70 -1
- package/src/scripts/_lib/release_material.ts +125 -2
- package/src/scripts/_lib/repeated_failure.ts +105 -0
- package/src/scripts/_lib/repo_root.ts +111 -0
- package/src/scripts/_lib/review_skipped_record.ts +37 -0
- package/src/scripts/_lib/role_split.ts +338 -0
- package/src/scripts/_lib/routing_corpus.ts +307 -0
- package/src/scripts/_lib/routing_index_input.ts +104 -0
- package/src/scripts/_lib/rule_injection.ts +22 -1
- package/src/scripts/_lib/runtime_journal.ts +1499 -0
- package/src/scripts/_lib/runtime_wiring_checks.ts +430 -0
- package/src/scripts/_lib/semantic_noop.ts +167 -0
- package/src/scripts/_lib/skill_catalogue.ts +11 -1
- package/src/scripts/_lib/source_digest.ts +200 -0
- package/src/scripts/_lib/source_redact.ts +260 -0
- package/src/scripts/_lib/source_shape.ts +502 -0
- package/src/scripts/_lib/source_snapshot_dedup.ts +199 -0
- package/src/scripts/_lib/strip_comments.d.mts +8 -0
- package/src/scripts/_lib/strip_comments.mjs +65 -0
- package/src/scripts/_lib/test_red_state.ts +154 -0
- package/src/scripts/_lib/trigger_shift.ts +144 -0
- package/src/scripts/_lib/untrusted_content.ts +82 -7
- package/src/scripts/activation_receipt.ts +258 -0
- package/src/scripts/adoption_report.ts +1 -1
- package/src/scripts/adr/evidence_census.ts +1 -1
- package/src/scripts/adr/regenerate_index.ts +26 -2
- package/src/scripts/adr_cite_check.ts +164 -1
- package/src/scripts/ai_council/blind_review.ts +11 -1
- package/src/scripts/ai_council/clients.ts +4 -0
- package/src/scripts/ai_council/config.ts +3 -0
- package/src/scripts/ai_council/consensus.ts +28 -8
- package/src/scripts/ai_council/consensus_round.ts +226 -0
- package/src/scripts/ai_council/cross_exam.ts +128 -0
- package/src/scripts/ai_council/disagreement_signal.ts +338 -0
- package/src/scripts/ai_council/explain_route.ts +157 -0
- package/src/scripts/ai_council/information_gain.ts +293 -0
- package/src/scripts/ai_council/inline_findings.ts +340 -0
- package/src/scripts/ai_council/judge_position_bias.ts +197 -0
- package/src/scripts/ai_council/leakage_corpus.ts +385 -0
- package/src/scripts/ai_council/leakage_patterns.ts +453 -0
- package/src/scripts/ai_council/minority_retention.ts +171 -0
- package/src/scripts/ai_council/orchestrator.ts +16 -203
- package/src/scripts/ai_council/orchestrator_results.ts +23 -3
- package/src/scripts/ai_council/pricing.ts +106 -0
- package/src/scripts/ai_council/prompts.ts +74 -7
- package/src/scripts/ai_council/provider_leakage_bench.ts +327 -0
- package/src/scripts/ai_council/py_format.ts +14 -3
- package/src/scripts/ai_council/recouncil_guard.ts +293 -0
- package/src/scripts/ai_council/recouncil_savings.ts +299 -0
- package/src/scripts/ai_council/replay_route.ts +223 -0
- package/src/scripts/ai_council/response_record.ts +50 -0
- package/src/scripts/ai_council/reviewer_assignment.ts +279 -0
- package/src/scripts/ai_council/routing_training_row.ts +197 -0
- package/src/scripts/ai_council/synthesis_strategy.ts +159 -0
- package/src/scripts/ai_council/topology_bench_manifest.ts +860 -0
- package/src/scripts/ai_council/topology_vocabulary.ts +175 -0
- package/src/scripts/asset_delivery_ledger.ts +157 -0
- package/src/scripts/attest_artifact.ts +193 -0
- package/src/scripts/audit_auto_rules.ts +2 -1
- package/src/scripts/audit_command_surface.ts +1 -1
- package/src/scripts/audit_mcp_tools.ts +2 -2
- package/src/scripts/audit_skill_overlap_allowlist.json +6 -1
- package/src/scripts/audit_user_type_axis.ts +2 -1
- package/src/scripts/bench_ab_clone.ts +215 -10
- package/src/scripts/bench_ab_integrity.ts +119 -5
- package/src/scripts/bench_ab_v2_stats.ts +40 -213
- package/src/scripts/build_archive_index.ts +1 -1
- package/src/scripts/build_linear_digest.ts +1 -1
- package/src/scripts/build_proof.ts +11 -4
- package/src/scripts/build_rule_trigger_matrix.ts +1 -1
- package/src/scripts/build_source_digests.ts +157 -0
- package/src/scripts/cache_realization_report.ts +103 -0
- package/src/scripts/check_adr_frontmatter.ts +131 -10
- package/src/scripts/check_benchmark_report_fields.ts +207 -0
- package/src/scripts/check_beta_review_markers.ts +235 -6
- package/src/scripts/check_bundle_path_leakage.ts +34 -1
- package/src/scripts/check_claims.ts +576 -6
- package/src/scripts/check_composite_arming.ts +35 -0
- package/src/scripts/check_concern_admissions.ts +365 -0
- package/src/scripts/check_enforcement_coverage.ts +28 -0
- package/src/scripts/check_estate_count.ts +347 -25
- package/src/scripts/check_gate_reachability.ts +383 -0
- package/src/scripts/check_host_loadability.ts +104 -0
- package/src/scripts/check_loss_class_declared.ts +308 -0
- package/src/scripts/check_md_language.ts +15 -98
- package/src/scripts/check_memory_proposal.ts +18 -11
- package/src/scripts/check_no_currency_in_cost_surfaces.ts +225 -0
- package/src/scripts/check_no_external_sources.ts +281 -6
- package/src/scripts/check_pack_conformance_fixture.ts +11 -1
- package/src/scripts/check_pack_size.ts +59 -2
- package/src/scripts/check_preamble_payload_budget.ts +114 -3
- package/src/scripts/check_prefix_stable_mutation.ts +372 -0
- package/src/scripts/check_publish_surface.ts +10 -1
- package/src/scripts/check_references.ts +24 -1
- package/src/scripts/check_release_highlights.ts +96 -13
- package/src/scripts/check_roadmap_trackable.ts +17 -2
- package/src/scripts/check_rule_evidence_declaration.ts +316 -0
- package/src/scripts/check_rule_projection_integrity.ts +14 -4
- package/src/scripts/check_score_contract.ts +26 -3
- package/src/scripts/check_static_parity.ts +285 -0
- package/src/scripts/check_supervision_claim_atomicity.ts +498 -0
- package/src/scripts/check_suppression_hygiene.ts +15 -0
- package/src/scripts/ci_settle.ts +39 -2
- package/src/scripts/code_graph/build.ts +60 -3
- package/src/scripts/code_graph/extract.ts +44 -0
- package/src/scripts/code_graph/types.ts +24 -0
- package/src/scripts/collector_daemon.ts +714 -0
- package/src/scripts/config_cost_report.ts +302 -0
- package/src/scripts/consumer_matrix.ts +74 -1
- package/src/scripts/corpus_manifest.ts +235 -0
- package/src/scripts/cost/budget.mjs +10 -3
- package/src/scripts/cost/track.mjs +10 -3
- package/src/scripts/council_cli.ts +37 -54
- package/src/scripts/dispatch_r2_reviewer.ts +46 -5
- package/src/scripts/evolution_lab.ts +1153 -0
- package/src/scripts/external_sources_denylist.json +5 -18
- package/src/scripts/extract_audit_patterns.ts +21 -0
- package/src/scripts/fold_intake.ts +12 -1
- package/src/scripts/gen_discovery_baseline.ts +1 -1
- package/src/scripts/generate_capabilities_index.ts +12 -5
- package/src/scripts/generate_capability_matrix.ts +3 -3
- package/src/scripts/generate_command_flows.ts +2 -2
- package/src/scripts/generate_cookbook.ts +2 -2
- package/src/scripts/generate_index.ts +8 -1
- package/src/scripts/generate_knowledge_index.ts +2 -1
- package/src/scripts/generate_ownership_matrix.ts +2 -1
- package/src/scripts/generate_pack_manifests.ts +10 -2
- package/src/scripts/generate_role_experiences_catalog.ts +2 -2
- package/src/scripts/generate_settings_reference.ts +1 -1
- package/src/scripts/git_authorization_hook.ts +22 -1
- package/src/scripts/grade_target_readiness.ts +48 -5
- package/src/scripts/hook_effect_doctor.ts +261 -0
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +125 -16
- package/src/scripts/hooks/block_speaking_inbox_dir.ts +271 -0
- package/src/scripts/hooks/block_unauthorized_git.ts +18 -0
- package/src/scripts/hooks/comment_discipline_hook.ts +146 -0
- package/src/scripts/hooks/concern_registry.ts +6 -0
- package/src/scripts/hooks/dispatch_hook.ts +32 -0
- package/src/scripts/hooks/journal_record_hook.ts +345 -0
- package/src/scripts/hooks/prepush_metadata_sources.sh +110 -0
- package/src/scripts/hooks/run_continuation_hook.ts +44 -9
- package/src/scripts/hooks/shims/install.sh +61 -0
- package/src/scripts/hooks/shims/php +101 -0
- package/src/scripts/hooks/suggestion_capture_hook.ts +10 -0
- package/src/scripts/hooks/turn_end_gate_hook.ts +9 -1
- package/src/scripts/hot_context_hook.ts +16 -0
- package/src/scripts/install-hooks.sh +20 -5
- package/src/scripts/install.ts +17 -35
- package/src/scripts/inventory_frontmatter.ts +2 -1
- package/src/scripts/language_mirror_hook.ts +14 -2
- package/src/scripts/lint_adr_sweep_routing.ts +12 -0
- package/src/scripts/lint_canonical_terms.ts +604 -0
- package/src/scripts/lint_carrier_integrity.ts +820 -0
- package/src/scripts/lint_code_comments.ts +643 -0
- package/src/scripts/lint_composition_review.ts +619 -0
- package/src/scripts/lint_consolidation_lineage.ts +666 -0
- package/src/scripts/lint_eval_specs.ts +593 -0
- package/src/scripts/lint_hook_manifest.ts +19 -0
- package/src/scripts/lint_host_portability.ts +373 -0
- package/src/scripts/lint_judge_prompt_expectation.ts +27 -1
- package/src/scripts/lint_memory_twin_parity.ts +335 -0
- package/src/scripts/lint_metric_consumers.ts +355 -0
- package/src/scripts/lint_plan_risk_register.ts +39 -19
- package/src/scripts/lint_promotion_paths.ts +779 -0
- package/src/scripts/lint_skill_descriptions.ts +18 -1
- package/src/scripts/lint_skill_frontmatter_safety.ts +58 -0
- package/src/scripts/lint_skill_link_reach.ts +252 -0
- package/src/scripts/lint_skill_trigger_corpus.ts +426 -23
- package/src/scripts/lint_ticket_buildable.ts +17 -1
- package/src/scripts/llm_propose.ts +256 -0
- package/src/scripts/mcp_server/consumer_tool_catalog.json +1 -1
- package/src/scripts/mcp_server/tool_catalog_source.ts +1 -1
- package/src/scripts/measure_delivery_sets.ts +361 -0
- package/src/scripts/measure_docs_dead_links.ts +348 -0
- package/src/scripts/measure_host_capture.ts +461 -0
- package/src/scripts/measure_routing_signal.ts +307 -0
- package/src/scripts/migration_status.ts +3 -3
- package/src/scripts/model_rule_injection.ts +76 -0
- package/src/scripts/orchestration_record.ts +14 -0
- package/src/scripts/preamble_byte_census.ts +139 -10
- package/src/scripts/prepack-check.mjs +4 -1
- package/src/scripts/probe_council_retention.ts +495 -0
- package/src/scripts/probe_turnaround.ts +384 -0
- package/src/scripts/probe_unblocked_ask.ts +279 -0
- package/src/scripts/release.ts +21 -37
- package/src/scripts/release_drill.ts +143 -0
- package/src/scripts/release_env.ts +35 -0
- package/src/scripts/release_publication.ts +84 -0
- package/src/scripts/render_benchmark_md.ts +1 -1
- package/src/scripts/rule_activation_census.ts +70 -9
- package/src/scripts/rule_backlinks.ts +1 -1
- package/src/scripts/run_lifecycle_suite.ts +208 -0
- package/src/scripts/run_skill_evals.ts +40 -0
- package/src/scripts/schemas/delivery-manifest.schema.json +43 -0
- package/src/scripts/schemas/drafting-channels.schema.json +43 -0
- package/src/scripts/schemas/evals.schema.json +24 -1
- package/src/scripts/schemas/rule.schema.json +52 -1
- package/src/scripts/schemas/skill.schema.json +17 -2
- package/src/scripts/skill_overlap.ts +7 -1
- package/src/scripts/skill_tools/run_block_d_eval.ts +8 -1
- package/src/scripts/skill_tools/score_skill_relevance.ts +84 -3
- package/src/scripts/skill_tools/suggest_skill_for_task.ts +8 -1
- package/src/scripts/skill_usage_report.ts +2 -1
- package/src/scripts/stubs_due.ts +211 -0
- package/src/scripts/sweep_source_surfaces.ts +678 -0
- package/src/scripts/sync_pr_branch.ts +3 -3
- package/src/scripts/trigger_eval_grandfather.json +202 -222
- package/src/scripts/utilization_report.ts +22 -2
- package/src/server/schemas/settings.ts +5 -0
- package/src/templates/marketing-copy.yml +1 -1
- package/dist/ui/assets/index-Cxgy63kz.js +0 -26
package/CREDITS.md
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Credits
|
|
2
|
+
|
|
3
|
+
Attribution for derived work and external contributions. Two kinds of entries
|
|
4
|
+
live here: **license-required attribution** for vendored/derived material
|
|
5
|
+
(Apache-2.0 / MIT obligations) and **community credit** for external
|
|
6
|
+
contributors whose skills, rules or commands were merged.
|
|
7
|
+
|
|
8
|
+
## License-required attribution (vendored / derived material)
|
|
9
|
+
|
|
10
|
+
| Artefact | Upstream | License | Detail |
|
|
11
|
+
|---|---|---|---|
|
|
12
|
+
| `design-intelligence` (corpus + grounding engine) | Next Level Builder — `ui-ux-pro-max-skill` | MIT | [`src/skills/design-intelligence/ATTRIBUTION.md`](src/skills/design-intelligence/ATTRIBUTION.md) |
|
|
13
|
+
| `design-intelligence` (`ui-styling`-derived assets) | "claudekit" | Apache-2.0 | [`LICENSE.apache-2.0.txt`](src/skills/design-intelligence/LICENSE.apache-2.0.txt) + modified-file markers per §4b |
|
|
14
|
+
| `corpus-grounding`, `design-tokens`, `react-shadcn-ui`, `tailwind-engineer` (derived slices) | see per-skill notices | MIT / Apache-2.0 | ADR-061 — the per-skill attribution notice is authoritative |
|
|
15
|
+
| `src/scripts/cost/budget.mjs`, `src/scripts/cost/track.mjs` | ruvnet/ruflo — `plugins/ruflo-cost-tracker` | MIT | full notice below; transformation record in [`provenance/borrows.jsonl`](provenance/borrows.jsonl) and [`docs/THIRD-PARTY-NOTICES.md`](docs/THIRD-PARTY-NOTICES.md) |
|
|
16
|
+
|
|
17
|
+
#### MIT notice — ruvnet/ruflo
|
|
18
|
+
|
|
19
|
+
Reproduced in full rather than by reference, because MIT requires the copyright
|
|
20
|
+
notice AND the permission notice to travel with copies or substantial portions
|
|
21
|
+
of the Software. This file ships in the npm package (`package.json` → `files`),
|
|
22
|
+
which is what discharges the obligation for a consumer who receives
|
|
23
|
+
`src/scripts/cost/` from the registry — the source files themselves carry no
|
|
24
|
+
in-file source name, per
|
|
25
|
+
[`source-confidentiality`](src/rules/source-confidentiality.md), and MIT does not
|
|
26
|
+
require one.
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
Copyright (c) 2024-2026 ruvnet
|
|
30
|
+
|
|
31
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
32
|
+
this software and associated documentation files (the "Software"), to deal in
|
|
33
|
+
the Software without restriction, including without limitation the rights to
|
|
34
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
35
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
|
36
|
+
subject to the following conditions:
|
|
37
|
+
|
|
38
|
+
The above copyright notice and this permission notice shall be included in all
|
|
39
|
+
copies or substantial portions of the Software.
|
|
40
|
+
|
|
41
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
42
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
43
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
44
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
45
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
46
|
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Comparators (benchmark baselines, no vendored material)
|
|
50
|
+
|
|
51
|
+
| Comparator | Pinned at | License | Where it is used |
|
|
52
|
+
|---|---|---|---|
|
|
53
|
+
| `Source A` — an external agent-instruction suite | `2ed6c52c` | MIT | benchmark comparator arm: [`agents/roadmaps/stubs/road-to-solution-minimalism-full-tier-run.md`](agents/roadmaps/stubs/road-to-solution-minimalism-full-tier-run.md) § The published comparator |
|
|
54
|
+
|
|
55
|
+
Nothing is vendored from it — no code, no oracle text, no prose. What is used is
|
|
56
|
+
its **published baseline numbers** as the external column of a two-arm report,
|
|
57
|
+
and four mechanism ideas folded (never copied) into
|
|
58
|
+
`road-to-trigger-delivered-rule-bodies`. It is credited under an anonymised label
|
|
59
|
+
because [`source-confidentiality`](src/rules/source-confidentiality.md) forbids
|
|
60
|
+
the tracked tree recording which third-party package seeded an idea; the real
|
|
61
|
+
identifier resolves from the encrypted token in that roadmap's § Provenance.
|
|
62
|
+
|
|
63
|
+
Per [ADR-061](docs/decisions/ADR-061-corpus-grounding-layer.md), vendored
|
|
64
|
+
material keeps its upstream notice inside the skill directory; this table is
|
|
65
|
+
the aggregate pointer, never a replacement for the per-skill notice.
|
|
66
|
+
|
|
67
|
+
### Runtime dependencies — code-graph engine (ADR-124)
|
|
68
|
+
|
|
69
|
+
**No longer shipped to consumers.** The native code-graph engine
|
|
70
|
+
(`src/scripts/code_graph/`, Class-A per
|
|
71
|
+
[ADR-124](docs/decisions/ADR-124-embedded-engine-doctrine.md)) once added two
|
|
72
|
+
exact-pinned *runtime* dependencies. The engine returned an honest null (recall
|
|
73
|
+
0.365 vs grep 0.797) and is permanently `enabled: false`, so the pair moved out
|
|
74
|
+
of `dependencies` rather than shipping to every consumer for a path none of them
|
|
75
|
+
can reach — ~51 MB unpacked, the largest single install item in the set.
|
|
76
|
+
|
|
77
|
+
They are now `devDependencies`: npm does not install those for consumers, so a
|
|
78
|
+
consumer install resolves neither, while the engine's own test suite still runs
|
|
79
|
+
in CI. The exact pins live there, which keeps the ABI lock machine-checked (the
|
|
80
|
+
dependency-floor gate scans only `dependencies` and no longer sees the pair):
|
|
81
|
+
|
|
82
|
+
| Dependency | Version | License | Role |
|
|
83
|
+
|---|---|---|---|
|
|
84
|
+
| `web-tree-sitter` | 0.24.7 (exact) | MIT | WASM tree-sitter runtime — parses PHP/TS/JS with no native toolchain |
|
|
85
|
+
| `tree-sitter-wasms` | 0.1.13 (exact) | Unlicense | prebuilt grammar `.wasm` (ABI 14; the pair is ABI-locked and must move together) |
|
|
86
|
+
|
|
87
|
+
Re-enabling as a consumer means installing them yourself:
|
|
88
|
+
`npm i web-tree-sitter@0.24.7 tree-sitter-wasms@0.1.13`.
|
|
89
|
+
|
|
90
|
+
## Method lineage — inspiration, not incorporated material
|
|
91
|
+
|
|
92
|
+
Three external sources shaped the *method* behind this package's AI-council
|
|
93
|
+
topology: how a multi-model council is staged, how its advisor personas frame a
|
|
94
|
+
question, and how the CLI is packaged. **No code or text from any of them is
|
|
95
|
+
incorporated**, which is why they appear here rather than in the
|
|
96
|
+
license-required section above — nothing about them is license-required, and
|
|
97
|
+
recording them anyway is an epistemic obligation rather than a legal one
|
|
98
|
+
(`code-provenance` § the knowledge layer: an artefact asserting an
|
|
99
|
+
externally-sourced claim either cites a harvest id or labels the statement as
|
|
100
|
+
own analysis).
|
|
101
|
+
|
|
102
|
+
They are named **anonymously**, per `source-confidentiality`: a shipped artifact
|
|
103
|
+
in this tree does not carry derivation attribution to a named external project.
|
|
104
|
+
The maintainer-side record holds the real identities; the links are retained as
|
|
105
|
+
`ENC1:` tokens, which are opaque here and decryptable only with the key in the
|
|
106
|
+
maintainer's user-global settings.
|
|
107
|
+
|
|
108
|
+
| Label | What it contributed | Link |
|
|
109
|
+
|---|---|---|
|
|
110
|
+
| **Source A** <!-- harvest:council-topology-three-stage-shape --> | The three-stage method shape: independent generation → blind peer evaluation → synthesis. | `ENC1:` (pending maintainer encryption) |
|
|
111
|
+
| **Source B** <!-- harvest:council-advisor-lens-framing --> | The thinking-lens framing that informed the shipped advisor personas. | `ENC1:` (pending maintainer encryption) |
|
|
112
|
+
| **Source C** <!-- harvest:council-cli-first-packaging --> | CLI-first / fallback packaging ergonomics. | `ENC1:` (pending maintainer encryption) |
|
|
113
|
+
|
|
114
|
+
**What the `ENC1:` placeholder means, stated rather than left to look like a
|
|
115
|
+
finished token.** The real links are held maintainer-side and are not encrypted
|
|
116
|
+
into this file yet; `src/scripts/_lib/link_crypto.ts` needs
|
|
117
|
+
`secrets.link_encryption_key`, which is deliberately absent from any tracked
|
|
118
|
+
tree and from an agent's reach. The rows in `provenance/harvests.jsonl` carry
|
|
119
|
+
`source_ref: opaque:…` instead, which is that ledger's own sanctioned form for a
|
|
120
|
+
source that cannot be pinned to a public revision — so the record is complete on
|
|
121
|
+
the ledger's terms while this column stays a placeholder.
|
|
122
|
+
|
|
123
|
+
## Community contributions
|
|
124
|
+
|
|
125
|
+
External contributions merged into the catalog are credited here and carry
|
|
126
|
+
`provenance: community` in their frontmatter — the public catalog
|
|
127
|
+
([`docs/catalog.md`](docs/catalog.md)) renders that as `community` in the
|
|
128
|
+
`source` column.
|
|
129
|
+
|
|
130
|
+
| Artefact | Contributor | Merged in |
|
|
131
|
+
|---|---|---|
|
|
132
|
+
| _none yet — yours could be the first_ | | |
|
|
133
|
+
|
|
134
|
+
If your work appears in this package unattributed, please open an issue —
|
|
135
|
+
attribution gaps are treated as bugs.
|
package/NOTICE
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
event4u/agent-config
|
|
2
|
+
Copyright (c) 2026 event4u
|
|
3
|
+
|
|
4
|
+
This product includes material derived from the following third-party
|
|
5
|
+
projects:
|
|
6
|
+
|
|
7
|
+
openai/codex-plugin-cc (https://github.com/openai/codex-plugin-cc)
|
|
8
|
+
Copyright OpenAI
|
|
9
|
+
Licensed under the Apache License, Version 2.0
|
|
10
|
+
(http://www.apache.org/licenses/LICENSE-2.0)
|
|
11
|
+
- The team-review system prompt and findings shape in
|
|
12
|
+
src/scripts/ai_team/team_dispatch.ts are derived from the plugin's
|
|
13
|
+
adversarial-review findings shape.
|
package/README.md
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
<p align="center"><a href="https://event4u.app"><img alt="event4u Agent Config" src=".github/assets/banner.png"></a></p>
|
|
2
2
|
|
|
3
|
-
# Agent Config — every claim machine-checked, including
|
|
3
|
+
# Agent Config — every claim machine-checked, including the counts in these badges
|
|
4
4
|
|
|
5
5
|
[](https://github.com/event4u-app/agent-config/actions/workflows/smoke.yml) [](https://github.com/event4u-app/agent-config/actions/workflows/smoke-public-install.yml) [](https://www.npmjs.com/package/@event4u/agent-config) [](https://glama.ai/mcp/servers/event4u-app/agent-config) [](https://mcptoplist.com/server/glama%2Fevent4u-app%2Fagent-config)
|
|
6
6
|
|
|
7
|
-
[](dist/agent-src/skills/) [](dist/agent-src/rules/) [](dist/agent-src/commands/) [](dist/agent-src/skills/) [](dist/agent-src/rules/) [](dist/agent-src/commands/) [](docs/guidelines/) [](dist/agent-src/personas/) [](dist/agent-src/personas/advisors/) <!-- claim:published-artifact-counts -->
|
|
8
|
+
|
|
9
|
+
<sub>**How these are counted** — one canonical counter, `agent-config` → `update_counts --check`, re-derives all six from the tree and fails CI on a drift of one. Two bases are not what the linked directory shows, so they are stated here rather than left to be inferred: **Commands 202** counts every command file **recursively** (the linked directory holds 61 at its top level), and **Rules 120** counts the **source** rules while the linked projection holds 119 — one rule is dormant and is not projected. **Personas 29** excludes the directory README. Counts are of files and directories: none of them measures quality, activation, or adoption. <!-- claim:published-artifact-counts --></sub>
|
|
8
10
|
|
|
9
11
|
**Try it in 30 seconds** — drop one read-only subagent into any repo and watch it gate "done": `@production-validator check this branch is actually done`. No wizard, no lock-in, nothing else installed — the [30-second wedge ↓](#quickstart) is the whole first step. Start at the proof, not the catalog: **[event4u-app.github.io/agent-config/proof/](https://event4u-app.github.io/agent-config/proof/)**.
|
|
10
12
|
|
|
@@ -14,7 +16,7 @@
|
|
|
14
16
|
|
|
15
17
|
> **Choose your experience — developer · founder · content · agency · finance · ops. Add packs. Get a focused command set, not a 500-artefact dump.** Bring your own AI provider.
|
|
16
18
|
|
|
17
|
-
**A deep library of skills, commands and governed rules** — plus a capability router that loads the right skill on intent and multi-agent orchestration with consensus review. The whole layer is compiled into **20 host agents** — of 23 detected, 3 being export-only<!-- claim:host-agent-count --> (Claude Code, Cursor, Augment, Cline, Windsurf, Copilot, Gemini CLI, Codex, Continue, Zed, JetBrains, Aider and more)
|
|
19
|
+
**A deep library of skills, commands and governed rules** — plus a capability router that loads the right skill on intent and multi-agent orchestration with consensus review. The whole layer is compiled into **20 host agents** — of 23 detected, 3 being export-only<!-- claim:host-agent-count --> (Claude Code, Cursor, Augment, Cline, Windsurf, Copilot, Gemini CLI, Codex, Continue, Zed, JetBrains, Aider and more). **Resident processes are permitted only under the supervision contract ADR-249 establishes** — a policy this repository adopted on 2026-08-27, not a description of anything running today. Six role-shaped entry paths sit on top, so any host becomes a reliable team member — without locking you to a single model or vendor.
|
|
18
20
|
|
|
19
21
|
### What's different
|
|
20
22
|
|
|
@@ -86,7 +88,7 @@ is platform operation, not a user-work flow.)
|
|
|
86
88
|
|
|
87
89
|
<p align="center">
|
|
88
90
|
<a href="CHANGELOG.md">CHANGELOG</a> ·
|
|
89
|
-
<a href="MIGRATION.md">Upgrade to
|
|
91
|
+
<a href="MIGRATION.md">Upgrade to 14.x</a> ·
|
|
90
92
|
<a href="CHANGELOG.md#breaking--v400-unified-setup-road-to-unified-setup">Breaking changes</a> ·
|
|
91
93
|
<a href="https://github.com/event4u-app/agent-config/releases/latest">Latest release</a> ·
|
|
92
94
|
<a href="https://github.com/event4u-app/agent-config/discussions">Discussions</a>
|
|
@@ -324,7 +326,7 @@ task mcp:cloud:secret-put # opt in to bearer-auth (recommended for private de
|
|
|
324
326
|
|
|
325
327
|
→ Operator walkthrough: [`mcp-cloud-setup`](docs/setup/mcp-cloud-setup.md) · Per-client config: [`mcp-client-config`](docs/setup/mcp-client-config.md) · Endpoints: [`mcp-cloud-endpoints`](docs/setup/mcp-cloud-endpoints.md).
|
|
326
328
|
|
|
327
|
-
> **Scope — Lite, not Full.** The Worker serves read-only governance (skills · commands · rules · guidelines · contexts) as MCP prompts and resources, plus small read-only tools (`memory_lookup`, `chat_history_read`, `list_*`). It does **not** execute the
|
|
329
|
+
> **Scope — Lite, not Full.** The Worker serves read-only governance (skills · commands · rules · guidelines · contexts) as MCP prompts and resources, plus small read-only tools (`memory_lookup`, `chat_history_read`, `list_*`). It does **not** execute the repository's local scripts (linters, audits, `task ci`, work-engine hooks) — those require local install per [Quickstart](#quickstart).
|
|
328
330
|
|
|
329
331
|
> The built-in **local stdio** server is listed for discovery in the [Glama MCP Registry](https://glama.ai/mcp/servers/event4u-app/agent-config) (agent developers / contributors; requires a local checkout, not a turnkey install — see [ADR-067](docs/decisions/ADR-067-glama-registry-listing.md)).
|
|
330
332
|
|
|
@@ -597,7 +599,7 @@ task dev:setup # boot the onboarding wizard against the working tree
|
|
|
597
599
|
|
|
598
600
|
**Invoking the CLI from a source checkout:** `./agent-config <command>` (the maintainer shim at the repo root → `scripts/agent-config` → `dist/cli/agent-config.js`). `npx @event4u/agent-config` doesn't resolve in the source repo without a prior `npm link`, since there's no `node_modules/.bin/agent-config` symlink — use `./agent-config` instead. Build the TS binary with `npm run build:cli` if `dist/cli/agent-config.js` is missing.
|
|
599
601
|
|
|
600
|
-
→ Full project structure and commands: [**docs/development.md**](docs/development.md) · [CONTRIBUTING.md](CONTRIBUTING.md). Stack: **TypeScript** CLI
|
|
602
|
+
→ Full project structure and commands: [**docs/development.md**](docs/development.md) · [CONTRIBUTING.md](CONTRIBUTING.md). Stack: **TypeScript** throughout — CLI, UI, and the build / lint scripts. MCP registry payloads render under `dist/mcp/` ([submission checklist](docs/distribution/mcp-submission-checklist.md)).
|
|
601
603
|
|
|
602
604
|
---
|
|
603
605
|
|
|
@@ -121,11 +121,75 @@ Resolve the argument. Directory mode: list files with size and line count, and
|
|
|
121
121
|
say up front how many there are. **A large inbox is a triage problem, not a
|
|
122
122
|
throughput problem** — never open ten files at full depth in one pass.
|
|
123
123
|
|
|
124
|
+
#### The inbox directory name is opaque, or the whole chain leaks
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
AN INBOX DIRECTORY UNDER agents/tmp/ CARRIES AN OPAQUE ROUND IDENTIFIER.
|
|
128
|
+
NEVER NAME IT AFTER THE SOURCE. THE TRUE SOURCE IS RECORDED ONCE, `ENC1:`
|
|
129
|
+
ENCRYPTED, IN THE ROUND'S OWN INTAKE NOTE. ROADMAP `Source:` LINES CITE THE
|
|
130
|
+
CODENAME ONLY.
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
`agents/tmp/` is gitignored, so a speaking directory name looks free. It is not:
|
|
134
|
+
the name gets **quoted** into a tracked roadmap `Source:` header, into an
|
|
135
|
+
evidence artefact, into a review-snapshot filename and into a PR body, and each
|
|
136
|
+
quote republishes it in a public repository. Measured at
|
|
137
|
+
`road-to-source-silence` Phase 0: 190 block-tier occurrences of quoted
|
|
138
|
+
non-opaque `agents/tmp(.old)/<name>/` paths across the tracked tree, plus one
|
|
139
|
+
tracked findings file named after a round. **The directory name is the root of
|
|
140
|
+
the leak chain — if it is opaque, nothing readable exists to be quoted.**
|
|
141
|
+
|
|
142
|
+
Accepted forms — `isOpaqueRoundId` in `src/scripts/_lib/source_shape.ts` is the
|
|
143
|
+
authority, and the gate enforces the same predicate:
|
|
144
|
+
|
|
145
|
+
| Form | Example |
|
|
146
|
+
|---|---|
|
|
147
|
+
| round-dated, optional 1-3 char disambiguator | `inbox-2026-08-h` |
|
|
148
|
+
| content-free hex | `round-a91f3c`, `set-a91f3c` |
|
|
149
|
+
| set number | `S17` |
|
|
150
|
+
|
|
151
|
+
Anything that reads is speaking by construction. If a round arrives under a
|
|
152
|
+
speaking name, **rename the directory before Phase 2** and record the mapping as
|
|
153
|
+
below; renaming after the first quote lands means chasing the quotes.
|
|
154
|
+
|
|
155
|
+
**Record the true source exactly once, encrypted.** In the round's intake note
|
|
156
|
+
(`agents/tmp/<round-id>/intake.md`):
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
printf '%s' '<the real source, url or description>' \
|
|
160
|
+
| ./scripts-run src/scripts/_lib/link_crypto encrypt
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Paste the `ENC1:` token into the intake note. That token, and the codename map at
|
|
164
|
+
`agents/evidence/reports/source-codename-map.md`, are the only places the
|
|
165
|
+
correspondence may exist. Never a second plaintext copy — not in the roadmap, not
|
|
166
|
+
in the PR body, not in a commit message.
|
|
167
|
+
|
|
124
168
|
### Phase 2 — Triage (cheap, all files)
|
|
125
169
|
|
|
126
170
|
One pass per file, shallow, producing a table before any deep read:
|
|
127
171
|
|
|
128
|
-
| file | genre | age | drafted-against | recurrence | first-impression disposition |
|
|
172
|
+
| file | genre | age | drafted-against | recurrence | lineage | first-impression disposition |
|
|
173
|
+
|
|
174
|
+
`lineage` is `n/a` for a file that claims no consolidation, `complete` for one
|
|
175
|
+
whose declared parent set matches the siblings present, or `omits: <names>` /
|
|
176
|
+
`ghost: <name>` / `undeclared`. Fill it from one command over the folder, not by
|
|
177
|
+
reading:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
./scripts-run src/scripts/lint_consolidation_lineage --root <the inbox folder>
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
The column exists because a consolidating artifact is the one genre that reads
|
|
184
|
+
as *finished* while being incomplete: it presents its content as adjudicated —
|
|
185
|
+
parents named, conflicts resolved, a kill register for what was rejected — so a
|
|
186
|
+
parent missing from that list is not *killed*, it is *undiscussed*, and nothing
|
|
187
|
+
in the artifact distinguishes those two states. Measured over four inbox folders
|
|
188
|
+
carrying a declared consolidation, four had an incomplete lineage
|
|
189
|
+
(`agents/evidence/analysis/consolidation-lineage-census-2026-08-26.md`). It sits
|
|
190
|
+
in the triage table rather than in a deep read for the same reason `recurrence`
|
|
191
|
+
does: it is one command, and by the time a deep read starts the artifact has
|
|
192
|
+
already been believed.
|
|
129
193
|
|
|
130
194
|
`recurrence` is `first-seen` or a pointer to the earlier artifact — the marker in
|
|
131
195
|
the file's own words, or a hit in `agents/tmp.old/` on the same subject (Phase
|
|
@@ -400,6 +464,16 @@ visibly not a new one, and the resulting learning is emitted as an artefact in
|
|
|
400
464
|
Phase 5 like any other survivor — never as a line in the reply that nothing reads
|
|
401
465
|
again.
|
|
402
466
|
|
|
467
|
+
**A status-update prediction naming a concrete mechanism becomes a stub or a
|
|
468
|
+
roadmap in the SAME run, never a line in a file about to be consumed.** That is
|
|
469
|
+
the "right, never recorded" outcome caught at its source: the round before
|
|
470
|
+
`inbox-2026-08-g` already named the hook-concern axis as the next ratchet
|
|
471
|
+
candidate at 68→69, the sentence sat in an untracked inbox file, the file was
|
|
472
|
+
consumed, and nothing under `agents/roadmaps/` inherited it — so the same
|
|
473
|
+
recommendation arrived again a round later, correct both times and durable
|
|
474
|
+
neither. A prediction that names a mechanism is already an artefact; the only
|
|
475
|
+
question is whether anyone writes it down before its carrier disappears.
|
|
476
|
+
|
|
403
477
|
### Phase 5 — Map survivors onto this suite's artefact types
|
|
404
478
|
|
|
405
479
|
The question is never "what does the file say" but **"what does it become here"**:
|
|
@@ -413,6 +487,65 @@ The question is never "what does the file say" but **"what does it become here"*
|
|
|
413
487
|
| reference material read on demand | a `guideline` or `context` |
|
|
414
488
|
| a measured finding | a `decision-record`/ADR, not a rule |
|
|
415
489
|
| a defect claim | a roadmap item, once verified |
|
|
490
|
+
| a claim that maps onto an existing stub | **not a fresh artifact — a stub-blocked finding, see below** |
|
|
491
|
+
| a consolidation omitting a parent | **not an artifact — a discharge, see below** |
|
|
492
|
+
|
|
493
|
+
**An omitted parent is discharged, never left silent.** When Phase 2's `lineage`
|
|
494
|
+
column read anything but `n/a` or `complete`, this phase says what happened to
|
|
495
|
+
each omitted parent. Exactly three discharges are legal, and the choice is the
|
|
496
|
+
operator's:
|
|
497
|
+
|
|
498
|
+
1. **Fold it in** — read the omitted parent and carry its surviving items into
|
|
499
|
+
the consolidation, marking them as coming from it.
|
|
500
|
+
2. **Record a kill ID for it** — the consolidation's kill register gains a row
|
|
501
|
+
naming the parent and why its content does not survive.
|
|
502
|
+
3. **State that it was read and adds nothing** — one sentence, in the artifact,
|
|
503
|
+
naming the parent.
|
|
504
|
+
|
|
505
|
+
**Silence is the failure mode; any of the three is a complete discharge.** The
|
|
506
|
+
obligation is to *name* it, never to consolidate it — whether the omission was
|
|
507
|
+
correct is a judgement the operator makes and this command does not. A finding
|
|
508
|
+
that is usually wrong gets ignored, which is why a false positive costs one
|
|
509
|
+
sentence (discharge 3) rather than a re-run.
|
|
510
|
+
|
|
511
|
+
A `ghost:` reading — a declared parent with no matching file — has the same three
|
|
512
|
+
discharges plus a fourth that is really a correction: fix the name. A lineage
|
|
513
|
+
naming a plan nobody can open is the cheaper half of the same defect.
|
|
514
|
+
|
|
515
|
+
**A survivor that maps onto an existing stub is never resolved into a verdict
|
|
516
|
+
line.** When a verified claim lands on something `agents/roadmaps/stubs/` already
|
|
517
|
+
holds, the mapping is neither "a defect claim → a roadmap item" nor "nothing to
|
|
518
|
+
do": the plan exists, and something is holding it. Before this row the table had
|
|
519
|
+
no entry for that state, so a run that found one had no prescribed output and
|
|
520
|
+
wrote a summary sentence instead. The round that produced this row closed exactly
|
|
521
|
+
so — *"Not a neglected guard: the cost of an unmade owner decision. On the owner's
|
|
522
|
+
desk."* That sentence is accurate, and it is why nine feedback rounds on one guard
|
|
523
|
+
produced no executable item: it names a state and hands nobody anything to do.
|
|
524
|
+
|
|
525
|
+
The run's output MUST carry all four of these, per stub matched. Three of them
|
|
526
|
+
are the difference between a finding and a shrug, and the fourth is already
|
|
527
|
+
computed upstream:
|
|
528
|
+
|
|
529
|
+
1. **The stub path** — `agents/roadmaps/stubs/<slug>.md`, so a reader opens it
|
|
530
|
+
instead of searching for it.
|
|
531
|
+
2. **Its blocker slug** — the `### blocker: <slug>` holding it, named. Where the
|
|
532
|
+
hold is recorded outside any blocker section, say so in those words and name
|
|
533
|
+
the section; "waiting on a decision" with nothing named is the verdict line
|
|
534
|
+
again, one word longer.
|
|
535
|
+
3. **Its age in days** — days since the file first appeared under
|
|
536
|
+
`agents/roadmaps/stubs/`, from
|
|
537
|
+
`git log --diff-filter=A --format=%ad --date=short -- <path> | tail -1`. A
|
|
538
|
+
stub parked eleven days and one parked two hundred are different findings and
|
|
539
|
+
a reader cannot tell them apart from the path.
|
|
540
|
+
4. **The recurrence count from Phase 4c** — how many earlier rounds raised the
|
|
541
|
+
same subject. A first arrival and a ninth are different findings, 4c has
|
|
542
|
+
already counted it, and dropping it here is what let one subject arrive nine
|
|
543
|
+
times as if each were new.
|
|
544
|
+
|
|
545
|
+
Missing any of the four leaves the survivor undischarged. This row does not
|
|
546
|
+
decide what happens to the stub — promotion is the estate's question and this
|
|
547
|
+
command does not answer it — it only forbids resolving the survivor into prose
|
|
548
|
+
that names no artifact.
|
|
416
549
|
|
|
417
550
|
Three hard defaults, from this repo's own scar tissue:
|
|
418
551
|
|
|
@@ -449,10 +582,20 @@ transcription. Phase 4b states this obligation for Phases 5 and 6 both; it is
|
|
|
449
582
|
repeated here because this is the phase that writes the artefact, and an
|
|
450
583
|
obligation named only upstream is one a Phase-6 executor never sees.
|
|
451
584
|
|
|
585
|
+
**The `Source:` line carries the codename, never the source.** Per Phase 1's
|
|
586
|
+
naming rule the round directory is already opaque, so
|
|
587
|
+
`> **Source:** \`agents/tmp.old/inbox-2026-08-h/\`` is a compliant header and a
|
|
588
|
+
speaking one is not. The gate's `source-header` and `tmp-quote` classes both
|
|
589
|
+
block inside `agents/**`, so a speaking value fails CI rather than merely
|
|
590
|
+
reading badly. If the roadmap needs to say *what kind* of source it was, describe
|
|
591
|
+
the class ("an external acceptance-pipeline reference") and put the identity in
|
|
592
|
+
the encrypted intake note.
|
|
593
|
+
|
|
452
594
|
Then the inbox contract from
|
|
453
595
|
[`agents-layout`](../../../../docs/contracts/agents-layout.md), in the **same
|
|
454
596
|
reply**: `mv` the consumed file to `agents/tmp.old/`, point the roadmap's
|
|
455
|
-
`Source:` line at its new path
|
|
597
|
+
`Source:` line at its new path — still the codename — and regenerate the
|
|
598
|
+
dashboard. A consumed file
|
|
456
599
|
left in `agents/tmp/` is a rule violation, not untidiness. Move only the files
|
|
457
600
|
actually processed — never sweep the rest of the inbox.
|
|
458
601
|
|
|
@@ -7,7 +7,7 @@ cluster: feature
|
|
|
7
7
|
sub: dev
|
|
8
8
|
description: Full 7-phase feature development workflow for complex features.
|
|
9
9
|
argument-hint: "[description]"
|
|
10
|
-
skills: [laravel, php-coder]
|
|
10
|
+
skills: [laravel, php-coder, test-driven-development]
|
|
11
11
|
suggestion:
|
|
12
12
|
eligible: false
|
|
13
13
|
rationale: "Cluster sub-command — reached via its cluster head's routing or its explicit /cluster:sub name; not independently suggested (surface-consolidation)."
|
|
@@ -88,7 +88,12 @@ Do NOT use for single-line fixes, trivial changes, or urgent hotfixes.
|
|
|
88
88
|
3. Follow chosen architecture from Phase 4.
|
|
89
89
|
4. Follow codebase conventions strictly (read guidelines).
|
|
90
90
|
5. Update task list as progress is made.
|
|
91
|
-
6.
|
|
91
|
+
6. Work **one behavior at a time**: write the failing test for that behavior,
|
|
92
|
+
observe it fail, write the minimum code that makes that one behavior pass,
|
|
93
|
+
then take the next behavior. A test phase followed by a code phase is
|
|
94
|
+
batch-TDD, not test-first — it buys the ordering and loses the feedback.
|
|
95
|
+
The only exceptions are the Do-NOT list in the `test-driven-development`
|
|
96
|
+
skill; a skipped test-first cycle is recorded in the decision log, never silent.
|
|
92
97
|
|
|
93
98
|
### Phase 6: Quality Review
|
|
94
99
|
|
|
@@ -81,7 +81,11 @@ Style fidelity may be lower."* Non-blocking.
|
|
|
81
81
|
Per [`write-engine § 2`](../../../docs/contracts/write-engine.md).
|
|
82
82
|
Flag form: `--tone=<formal|casual|neutral>`,
|
|
83
83
|
`--length=<words>`, `--channel=<linkedin-post|tweet|blog|freeform>`,
|
|
84
|
-
`--audience=<text>`.
|
|
84
|
+
`--audience=<text>`. The channel values and their length defaults are
|
|
85
|
+
the schema-validated set in `src/config/drafting-channels.yml` — edit
|
|
86
|
+
that file and `write-engine.md` together, never one alone;
|
|
87
|
+
`tests/scripts/drafting_channels_schema.test.ts` fails on drift, and on
|
|
88
|
+
the short form `linkedin`, which is not a value. Missing flags → interactive prompt, **one
|
|
85
89
|
question per turn**, in the order Topic → Tone → Length → Channel →
|
|
86
90
|
Audience. Tone / length defaults derive from the per-channel table
|
|
87
91
|
and the vocab-register → tone mapping in the engine contract.
|
|
@@ -7,7 +7,7 @@ routes_to: [refine-ticket, feature-planning]
|
|
|
7
7
|
replaces: []
|
|
8
8
|
visibility: visible
|
|
9
9
|
skills: [refine-ticket, feature-planning]
|
|
10
|
-
description: Drive a ticket end-to-end through refine → memory → analyze → plan → implement → test → verify → report — Option-A loop over
|
|
10
|
+
description: Drive a ticket end-to-end through refine → memory → analyze → plan → implement → test → verify → report — Option-A loop over `work_engine`, block-on-ambiguity, no auto-git, test-first enforced.
|
|
11
11
|
argument-hint: "[ticket-key | url | bundle-path | pasted-text]"
|
|
12
12
|
suggestion:
|
|
13
13
|
eligible: true
|
|
@@ -122,7 +122,7 @@ catalog fixes are test-driven — a bounded generate→run→revise→re-run loo
|
|
|
122
122
|
a numeric threshold (then a judge confirms), reusing the same N=3 cap. Use
|
|
123
123
|
test/quality verdicts only; the live-app Playwright verdict stays deferred. The
|
|
124
124
|
loop is multi-turn reasoning, not a runtime — it honors
|
|
125
|
-
[`
|
|
125
|
+
[`resident-process-governance`](../../docs/contracts/resident-process-governance.md) exactly as
|
|
126
126
|
the mission does.
|
|
127
127
|
|
|
128
128
|
Handle exit codes per the `/work` contract:
|
|
@@ -5,7 +5,7 @@ pack: meta
|
|
|
5
5
|
visibility: internal
|
|
6
6
|
cluster: orchestrate
|
|
7
7
|
skills: [subagent-orchestration]
|
|
8
|
-
description: Run a YAML pipeline defined under `.agent-config/orchestrations/` — chains personas / skills / commands /
|
|
8
|
+
description: Run a YAML pipeline defined under `.agent-config/orchestrations/` — chains personas / skills / commands / subagents per the orchestration-dsl-v1 contract
|
|
9
9
|
argument-hint: "<pipeline-name | path> [key=value ...]"
|
|
10
10
|
suggestion:
|
|
11
11
|
eligible: true
|
|
@@ -23,7 +23,7 @@ packs:
|
|
|
23
23
|
|
|
24
24
|
Execute a YAML pipeline file from `.agent-config/orchestrations/`
|
|
25
25
|
against the current workspace. Pipelines are deterministic chains of
|
|
26
|
-
personas, skills, commands, and
|
|
26
|
+
personas, skills, commands, and subagents pinned by the
|
|
27
27
|
[`orchestration-dsl-v1`](../docs/contracts/orchestration-dsl-v1.md)
|
|
28
28
|
contract.
|
|
29
29
|
|
|
@@ -75,7 +75,11 @@ operator notes, not voice signal.
|
|
|
75
75
|
Per [`write-engine § 2`](../../../docs/contracts/write-engine.md).
|
|
76
76
|
Flag form: `--tone=<formal|casual|neutral>`,
|
|
77
77
|
`--length=<words>`, `--channel=<linkedin-post|tweet|blog|freeform>`,
|
|
78
|
-
`--audience=<text>`.
|
|
78
|
+
`--audience=<text>`. The channel values and their length defaults are
|
|
79
|
+
the schema-validated set in `src/config/drafting-channels.yml` — edit
|
|
80
|
+
that file and `write-engine.md` together, never one alone;
|
|
81
|
+
`tests/scripts/drafting_channels_schema.test.ts` fails on drift, and on
|
|
82
|
+
the short form `linkedin`, which is not a value. Missing flags → interactive prompt, **one
|
|
79
83
|
question per turn**, in the order Topic → Tone → Length → Channel →
|
|
80
84
|
Audience. Defaults inherit from the engine's per-channel table and
|
|
81
85
|
the pace mapping above.
|
|
@@ -287,9 +287,9 @@ built bundle.
|
|
|
287
287
|
## 7. Expiry is a reported state, never a stall
|
|
288
288
|
|
|
289
289
|
```
|
|
290
|
-
WHEN THE AUTHORIZATION WINDOW CLOSES WITH WORK LEFT, THE RUN
|
|
291
|
-
AND
|
|
292
|
-
ITS SOURCE, OR ITS BUNDLES — READ-ONLY VERIFICATION ONLY.
|
|
290
|
+
WHEN THE AUTHORIZATION WINDOW CLOSES WITH WORK LEFT, THE RUN PAUSES, REPORTS,
|
|
291
|
+
AND ASKS FOR RE-AUTHORIZATION. IT NEVER RETRIES THE GUARD, AND IT NEVER EDITS
|
|
292
|
+
THE GUARD, ITS SOURCE, OR ITS BUNDLES — READ-ONLY VERIFICATION ONLY.
|
|
293
293
|
```
|
|
294
294
|
|
|
295
295
|
**Unreachable while the merge step is gated**, and stated rather than left for
|
|
@@ -298,9 +298,22 @@ operation (`push` and `commit` are `WARN_OPS`), so the window governs nothing
|
|
|
298
298
|
it does. This section is the contract for when the gate opens.
|
|
299
299
|
|
|
300
300
|
Write the summary as-is with a `window-expired` disposition per unprocessed PR
|
|
301
|
-
and name the exact re-authorization needed.
|
|
302
|
-
|
|
303
|
-
|
|
301
|
+
and name the exact re-authorization needed. Then STOP and wait — do not end the
|
|
302
|
+
run, and do not proceed to the next PR. ADR-251 (2026-08-30) decided this
|
|
303
|
+
shape: expiry is a pause, not a termination.
|
|
304
|
+
|
|
305
|
+
**The operator's reply is what resumes it, and it renews the window through the
|
|
306
|
+
path that already exists.** `git_authorization_hook.ts` rewrites this session's
|
|
307
|
+
ledger with a fresh `detected_at` on every human-typed prompt, so a reply
|
|
308
|
+
carrying the re-authorization you named resets the age the guard compares
|
|
309
|
+
against — no new mechanism, and the signal still comes from text the user typed.
|
|
310
|
+
Re-verify the manifest entry (number and head SHA) before resuming, exactly as
|
|
311
|
+
§ 8 requires: the pause is a window in which the world can move.
|
|
312
|
+
|
|
313
|
+
Widening `LEDGER_MAX_AGE_MS` is still forbidden practice, and ADR-251 kept the
|
|
314
|
+
30-minute value deliberately rather than by omission: on 2026-08-21 it was
|
|
315
|
+
patched to six hours for a drain run and the widening reached the trunk. The run proposes no value for it, edits neither it nor its bundles,
|
|
316
|
+
and treats a refusal as the answer.
|
|
304
317
|
|
|
305
318
|
## 8. Kill switches, and what happens after a merge
|
|
306
319
|
|
|
@@ -313,11 +313,25 @@ branch setting, push, open a PR, re-run CI, update a merge base, fix a failing
|
|
|
313
313
|
test, authorise spend inside a budget — is machine-executable by the agent, and
|
|
314
314
|
is therefore remediation work rather than a blocker.
|
|
315
315
|
|
|
316
|
-
| Outcome | When | Success? |
|
|
317
|
-
|
|
318
|
-
| `complete` | `count_open == 0` and the PR is open | yes — archival check runs |
|
|
319
|
-
| `blocked` | every remaining open step is **externally impossible** for the agent | **no** — partial progress, labelled as such |
|
|
320
|
-
| a halt | one of the five conditions fired | **no** — the halt is reported |
|
|
316
|
+
| Outcome | When | Success? | terminal state |
|
|
317
|
+
|---|---|---|---|
|
|
318
|
+
| `complete` | `count_open == 0` and the PR is open | yes — archival check runs | `success` |
|
|
319
|
+
| `blocked` | every remaining open step is **externally impossible** for the agent | **no** — partial progress, labelled as such | `blocked`, or `approval-required` where the work is finished and waiting on a human |
|
|
320
|
+
| a halt | one of the five conditions fired | **no** — the halt is reported | `exhausted` when a declared budget ran out; `stagnated` when the same failure signature repeated with budget left |
|
|
321
|
+
|
|
322
|
+
**The closing report names the terminal state by word**, from
|
|
323
|
+
[`terminal-states`](../../../../src/agent-src/contexts/execution/terminal-states.md).
|
|
324
|
+
The reason is the failure that vocabulary exists to stop: a run that stopped at
|
|
325
|
+
its iteration cap and one that finished both leave the roadmap looking the same,
|
|
326
|
+
because the checkbox glyphs cannot express `exhausted`, `stagnated` or
|
|
327
|
+
`approval-required` — they collapse into `[ ]` and `[~]`. Three of the six states
|
|
328
|
+
are therefore invisible in the dashboard and visible only in the report, which is
|
|
329
|
+
why the report has to say the word.
|
|
330
|
+
|
|
331
|
+
`exhausted` and `stagnated` are **never** reported as `complete`, whatever
|
|
332
|
+
partial progress exists, and they are kept apart on purpose: `exhausted` says the
|
|
333
|
+
budget may have been too small and raising it is a legitimate response;
|
|
334
|
+
`stagnated` says more of the same will not help and raising it is the wrong one.
|
|
321
335
|
|
|
322
336
|
`blocked-preflight` no longer exists. A run always starts.
|
|
323
337
|
|
|
@@ -6,7 +6,7 @@ visibility: internal
|
|
|
6
6
|
cluster: tdd
|
|
7
7
|
sub: red
|
|
8
8
|
skills: [test-driven-development]
|
|
9
|
-
description: TDD red phase — enumerate cases, write ONE failing test, watch it fail
|
|
9
|
+
description: TDD red phase — enumerate cases, write ONE failing test, watch it fail for a reason that is about the behaviour under test
|
|
10
10
|
argument-hint: "[behavior to test]"
|
|
11
11
|
suggestion:
|
|
12
12
|
eligible: false
|
|
@@ -26,6 +26,16 @@ Drives the **Design → Test-Red** phases of
|
|
|
26
26
|
|
|
27
27
|
1. State the behavior in one sentence; enumerate the cases (happy / boundary / error).
|
|
28
28
|
2. Write ONE failing test for the first case.
|
|
29
|
-
3. Run it; confirm
|
|
29
|
+
3. Run it; confirm the failure is **about the behavior under test**. Valid:
|
|
30
|
+
a failing **assertion** · a **missing target** (class-not-found, or a
|
|
31
|
+
compile/type error naming the unimplemented symbol) · a **contract
|
|
32
|
+
failure**. Invalid: a broken **fixture** · a **syntax error** in the test ·
|
|
33
|
+
a missing **unrelated dependency** · a **runner or environment** fault —
|
|
34
|
+
those would fail identically with the behavior fully implemented, so they
|
|
35
|
+
measure nothing. A symbol that does not exist yet can only fail at load;
|
|
36
|
+
demanding an assertion there would force a production stub first, which is
|
|
37
|
+
what this phase exists to prevent. Taxonomy owner:
|
|
38
|
+
[`test-driven-development`](../../../skills/test-driven-development/SKILL.md)
|
|
39
|
+
§ What makes a RED valid.
|
|
30
40
|
4. Honor the Test-Red Forbidden block: **no production edits** (diff = `tests/**` only).
|
|
31
41
|
5. Output: the failing test + its observed failure reason. Hand to `/tdd green`.
|
|
@@ -7,7 +7,7 @@ routes_to: [refine-prompt, command-routing]
|
|
|
7
7
|
replaces: []
|
|
8
8
|
visibility: visible
|
|
9
9
|
skills: [refine-prompt, command-routing]
|
|
10
|
-
description: Drive a free-form prompt end-to-end through refine → score → plan → implement → test → verify → report — Option-A loop over
|
|
10
|
+
description: Drive a free-form prompt end-to-end through refine → score → plan → implement → test → verify → report — Option-A loop over `work_engine`, confidence-band gated, no auto-git, test-first.
|
|
11
11
|
argument-hint: "[prompt]"
|
|
12
12
|
suggestion:
|
|
13
13
|
eligible: true
|
|
@@ -115,3 +115,43 @@ the enumerated-set carve-out.
|
|
|
115
115
|
- User explicitly asks for full output — show it.
|
|
116
116
|
|
|
117
117
|
→ Detailed patterns: `docs/guidelines/agent-infra/output-patterns.md`
|
|
118
|
+
|
|
119
|
+
## Independent calls go in ONE block — the evidence
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
CALLS WITH NO DEPENDENCY BETWEEN THEM GO IN THE SAME BLOCK.
|
|
123
|
+
A SECOND CALL THAT DOES NOT READ THE FIRST ONE'S RESULT IS NOT A SECOND TURN.
|
|
124
|
+
BEFORE EMITTING A SINGLE CALL, ASK WHAT ELSE IS ALREADY KNOWN TO BE NEEDED.
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
The ceiling above forbids repetition; this forbids the opposite failure —
|
|
128
|
+
splitting work that had no reason to be split. It is stated because it is
|
|
129
|
+
**measured, not suspected**: over ten sessions of this package,
|
|
130
|
+
`probe_turnaround` reports a mean tool-call batch size of **1.01**, with 27 of
|
|
131
|
+
2,889 tool-using requests (0.93 %) carrying more than one call. At a 4.7 s
|
|
132
|
+
median generation latency, a request that fans out to 42 calls spends about five
|
|
133
|
+
minutes on serialization before a single tool runs.
|
|
134
|
+
|
|
135
|
+
**Nothing in this package caused that, and nothing in it can fix it.** The cause
|
|
136
|
+
was looked for and is recorded as absent
|
|
137
|
+
(`agents/evidence/analysis/agent-turnaround-2026-08-30.md` § E2): no rule, skill
|
|
138
|
+
or template forbids parallel calls, and parallel calls do occur — so 1.01 is a
|
|
139
|
+
tendency, not a floor with a mechanism behind it.
|
|
140
|
+
|
|
141
|
+
**The discriminator is the dependency, never the count.** Two greps over
|
|
142
|
+
different files, a status and a log, three independent reads named before the
|
|
143
|
+
first one runs — one block. A read whose path comes out of the previous result —
|
|
144
|
+
two blocks, and batching them would be guessing.
|
|
145
|
+
|
|
146
|
+
**Do not read this as "write shorter commands".** In the same corpus, 98.1 % of
|
|
147
|
+
`Bash` calls are already compound or heredoc, and the 18 % that exceed 1,500
|
|
148
|
+
characters carry 75 % of all command bytes — those are one-shot scripts that each
|
|
149
|
+
replace three to six round-trips. Splitting them trades one expensive call for
|
|
150
|
+
several cheap ones and makes the number worse while looking like a fix.
|
|
151
|
+
|
|
152
|
+
**Honest enforcement — `instruction-only`.** No gate can observe a call that was
|
|
153
|
+
not batched: a transcript records the calls that happened, never the block they
|
|
154
|
+
could have shared. `probe_turnaround` reports the rate afterwards and refuses to
|
|
155
|
+
gate on a store CI does not have. This paragraph is the whole mechanism, and the
|
|
156
|
+
roadmap that added it pre-committed to recording a null if the rate does not
|
|
157
|
+
move rather than repeating the reminder more loudly.
|