@event4u/agent-config 9.9.0 → 9.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +212 -194
- package/README.md +13 -16
- package/agents/templates/.ai-council.yml.example +481 -0
- package/agents/templates/.ai-video.xml.example +247 -0
- package/dist/agent-src/commands/agent-status.md +12 -11
- package/dist/agent-src/commands/agents/user/accept.md +115 -30
- package/dist/agent-src/commands/agents/user/delete.md +147 -0
- package/dist/agent-src/commands/agents/user/review.md +65 -28
- package/dist/agent-src/commands/agents/user/show.md +82 -29
- package/dist/agent-src/commands/agents/user/update.md +2 -2
- package/dist/agent-src/commands/agents/user.md +16 -3
- package/dist/agent-src/commands/check-current-md.md +0 -10
- package/dist/agent-src/commands/condense.md +28 -97
- package/dist/agent-src/commands/cost/report.md +7 -0
- package/dist/agent-src/commands/fix/portability.md +0 -8
- package/dist/agent-src/commands/fix/refs.md +0 -8
- package/dist/agent-src/commands/humanize.md +2 -2
- package/dist/agent-src/commands/jira-ticket.md +1 -1
- package/dist/agent-src/commands/memory/load.md +11 -0
- package/dist/agent-src/commands/optimize/skills.md +1 -1
- package/dist/agent-src/commands/pr/create.md +4 -4
- package/dist/agent-src/commands/profile/show.md +3 -3
- package/dist/agent-src/commands/rule-compliance-audit.md +5 -4
- package/dist/agent-src/commands/security-audit-config.md +1 -1
- package/dist/agent-src/commands/sync/gitignore/fix.md +1 -1
- package/dist/agent-src/commands/tdd.md +21 -0
- package/dist/agent-src/commands/team/delegate.md +2 -2
- package/dist/agent-src/commands/team-knowledge/bootstrap.md +9 -8
- package/dist/agent-src/commands/team-knowledge/consolidate.md +8 -7
- package/dist/agent-src/commands/team.md +4 -1
- package/dist/agent-src/commands/upstream-contribute.md +0 -1
- package/dist/agent-src/contexts/authority/commit-mechanics.md +7 -0
- package/dist/agent-src/contexts/authority/destructive-mechanics.md +16 -0
- package/dist/agent-src/contexts/authority/scope-mechanics.md +61 -0
- package/dist/agent-src/contexts/communication/rules-auto/reply-close-mechanics.md +20 -18
- package/dist/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +1 -1
- package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +1 -1
- package/dist/agent-src/contexts/communication/rules-auto/source-of-truth-mechanics.md +9 -10
- package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +1 -1
- package/dist/agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +11 -0
- package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +26 -15
- package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +3 -0
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +67 -37
- package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +1 -1
- package/dist/agent-src/contexts/execution/autonomy-examples.md +1 -1
- package/dist/agent-src/contexts/execution/autonomy-mechanics.md +7 -6
- package/dist/agent-src/contexts/execution/evidence-discipline.md +92 -77
- package/dist/agent-src/contexts/execution/orchestration-benchmark-gate.md +22 -21
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +24 -0
- package/dist/agent-src/contexts/execution/project-intelligence.md +122 -103
- package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +23 -21
- package/dist/agent-src/contexts/execution/subagent-response-contract.md +5 -5
- package/dist/agent-src/contexts/execution/subagent-routing.md +11 -0
- package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +13 -13
- package/dist/agent-src/contexts/execution/subagent-steering.md +36 -34
- package/dist/agent-src/contexts/execution/toolchain-resolver.md +1 -1
- package/dist/agent-src/contexts/execution/user-memory-channels.md +189 -0
- package/dist/agent-src/contexts/execution/verification-mechanics.md +9 -0
- package/dist/agent-src/contexts/model-recommendations.md +3 -2
- package/dist/agent-src/contexts/subagent-configuration.md +3 -3
- package/dist/agent-src/ghostwriter/README.md +2 -2
- package/dist/agent-src/packs/README.md +1 -1
- package/dist/agent-src/personas/README.md +5 -5
- package/dist/agent-src/personas/_template-specialist/persona.md +3 -3
- package/dist/agent-src/personas/backend-architect.md +24 -23
- package/dist/agent-src/personas/eloquent-tamer.md +30 -30
- package/dist/agent-src/personas/frontend-engineer.md +30 -30
- package/dist/agent-src/personas/product-owner.md +41 -38
- package/dist/agent-src/personas/qa.md +13 -13
- package/dist/agent-src/personas/security-engineer.md +22 -22
- package/dist/agent-src/presets/README.md +3 -3
- package/dist/agent-src/profiles/README.md +3 -3
- package/dist/agent-src/rules/active-remediation.md +2 -2
- package/dist/agent-src/rules/artifact-engagement-recording.md +4 -4
- package/dist/agent-src/rules/ask-when-uncertain.md +0 -4
- package/dist/agent-src/rules/augment-edit-discipline.md +1 -1
- package/dist/agent-src/rules/broken-access-control.md +4 -4
- package/dist/agent-src/rules/code-comment-discipline.md +1 -1
- package/dist/agent-src/rules/code-provenance.md +2 -2
- package/dist/agent-src/rules/commit-policy.md +4 -9
- package/dist/agent-src/rules/communication-through-line.md +5 -5
- package/dist/agent-src/rules/decision-revisit-gate.md +1 -1
- package/dist/agent-src/rules/design-fidelity.md +1 -1
- package/dist/agent-src/rules/doc-screenshot-hygiene.md +1 -1
- package/dist/agent-src/rules/domain-adoption-policy.md +1 -1
- package/dist/agent-src/rules/domain-safety-pii.md +1 -1
- package/dist/agent-src/rules/external-code-graph-interop.md +1 -1
- package/dist/agent-src/rules/fast-path-marker-visibility.md +43 -7
- package/dist/agent-src/rules/finance-safety-floor.md +1 -1
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +3 -3
- package/dist/agent-src/rules/history-discipline.md +1 -1
- package/dist/agent-src/rules/legal-safety-floor.md +1 -1
- package/dist/agent-src/rules/lethal-trifecta-guard.md +5 -5
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +10 -8
- package/dist/agent-src/rules/media-governance-routing.md +13 -13
- package/dist/agent-src/rules/media-sync-ground-truth.md +29 -11
- package/dist/agent-src/rules/no-cheap-questions.md +7 -7
- package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +29 -18
- package/dist/agent-src/rules/non-destructive-by-default.md +5 -23
- package/dist/agent-src/rules/onboarding-gate.md +14 -4
- package/dist/agent-src/rules/persona-governance.md +2 -2
- package/dist/agent-src/rules/prefer-enums-over-literals.md +9 -9
- package/dist/agent-src/rules/preservation-guard.md +10 -2
- package/dist/agent-src/rules/question-not-instruction.md +1 -1
- package/dist/agent-src/rules/roadmap-progress-sync.md +6 -6
- package/dist/agent-src/rules/rule-type-governance.md +1 -1
- package/dist/agent-src/rules/scale-discipline.md +1 -1
- package/dist/agent-src/rules/scope-control.md +1 -1
- package/dist/agent-src/rules/secret-vcs-guard.md +1 -1
- package/dist/agent-src/rules/security-sensitive-stop.md +17 -11
- package/dist/agent-src/rules/senior-engineering-discipline.md +17 -17
- package/dist/agent-src/rules/session-canary.md +1 -1
- package/dist/agent-src/rules/skill-quality.md +1 -1
- package/dist/agent-src/rules/source-confidentiality.md +21 -19
- package/dist/agent-src/rules/source-of-truth.md +6 -5
- package/dist/agent-src/rules/spreadsheet-source-quality.md +2 -2
- package/dist/agent-src/rules/strategy-safety-floor.md +1 -1
- package/dist/agent-src/rules/think-before-action.md +5 -5
- package/dist/agent-src/rules/token-budget-discipline.md +5 -3
- package/dist/agent-src/rules/token-efficiency.md +2 -2
- package/dist/agent-src/rules/untrusted-input-defense.md +4 -4
- package/dist/agent-src/rules/user-interaction.md +12 -0
- package/dist/agent-src/rules/verify-before-complete.md +4 -24
- package/dist/agent-src/skills/adversarial-review/SKILL.md +2 -2
- package/dist/agent-src/skills/agent-security-review/SKILL.md +52 -45
- package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +2 -2
- package/dist/agent-src/skills/ai-code-blindspots/SKILL.md +20 -20
- package/dist/agent-src/skills/ai-council/SKILL.md +185 -128
- package/dist/agent-src/skills/analysis-skill-router/SKILL.md +3 -3
- package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -2
- package/dist/agent-src/skills/artisan-commands/SKILL.md +2 -2
- package/dist/agent-src/skills/async-python-patterns/SKILL.md +8 -7
- package/dist/agent-src/skills/authz-review/SKILL.md +16 -15
- package/dist/agent-src/skills/aws-infrastructure/SKILL.md +5 -5
- package/dist/agent-src/skills/blade-ui/SKILL.md +1 -1
- package/dist/agent-src/skills/bug-analyzer/SKILL.md +30 -12
- package/dist/agent-src/skills/code-intelligence/SKILL.md +0 -1
- package/dist/agent-src/skills/code-intelligence/evals/triggers.json +52 -0
- package/dist/agent-src/skills/code-review/SKILL.md +6 -6
- package/dist/agent-src/skills/command-routing/SKILL.md +5 -4
- package/dist/agent-src/skills/composer-packages/SKILL.md +2 -2
- package/dist/agent-src/skills/condense-memory/SKILL.md +43 -41
- package/dist/agent-src/skills/context-document/SKILL.md +23 -21
- package/dist/agent-src/skills/copilot-config/SKILL.md +6 -1
- package/dist/agent-src/skills/decision-record/SKILL.md +20 -18
- package/dist/agent-src/skills/design-intelligence/SKILL.md +4 -4
- package/dist/agent-src/skills/design-review/SKILL.md +15 -14
- package/dist/agent-src/skills/design-system-capture/reference/design-system-json.md +28 -25
- package/dist/agent-src/skills/devcontainer/SKILL.md +2 -2
- package/dist/agent-src/skills/docker/SKILL.md +1 -1
- package/dist/agent-src/skills/docx-authoring/evals/triggers.json +52 -0
- package/dist/agent-src/skills/emit-tickets/SKILL.md +2 -2
- package/dist/agent-src/skills/error-handling-patterns/SKILL.md +1 -1
- package/dist/agent-src/skills/estimate-ticket/SKILL.md +2 -2
- package/dist/agent-src/skills/evaluate-llm-feature/SKILL.md +0 -1
- package/dist/agent-src/skills/evaluate-llm-feature/evals/triggers.json +52 -0
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +21 -7
- package/dist/agent-src/skills/fe-design/SKILL.md +10 -0
- package/dist/agent-src/skills/feature-planning/SKILL.md +2 -2
- package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +3 -3
- package/dist/agent-src/skills/flux/SKILL.md +1 -1
- package/dist/agent-src/skills/frontend-render-security/SKILL.md +13 -13
- package/dist/agent-src/skills/git-workflow/SKILL.md +33 -33
- package/dist/agent-src/skills/grafana/SKILL.md +5 -0
- package/dist/agent-src/skills/humanizer/SKILL.md +83 -66
- package/dist/agent-src/skills/humanizer/data/patterns.md +14 -14
- package/dist/agent-src/skills/humanizer/references/anti-aiisms.md +4 -4
- package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +82 -37
- package/dist/agent-src/skills/judge-bug-hunter/SKILL.md +17 -5
- package/dist/agent-src/skills/judge-injection-defense/SKILL.md +63 -25
- package/dist/agent-src/skills/judge-security-auditor/SKILL.md +2 -0
- package/dist/agent-src/skills/judge-synthesis/SKILL.md +72 -28
- package/dist/agent-src/skills/laravel-horizon/SKILL.md +5 -0
- package/dist/agent-src/skills/laravel-mail/SKILL.md +5 -4
- package/dist/agent-src/skills/laravel-middleware/SKILL.md +5 -4
- package/dist/agent-src/skills/laravel-notifications/SKILL.md +10 -9
- package/dist/agent-src/skills/laravel-pennant/SKILL.md +1 -1
- package/dist/agent-src/skills/laravel-pulse/SKILL.md +9 -8
- package/dist/agent-src/skills/laravel-reverb/SKILL.md +6 -5
- package/dist/agent-src/skills/laravel-scheduling/SKILL.md +6 -1
- package/dist/agent-src/skills/laravel-validation/SKILL.md +12 -0
- package/dist/agent-src/skills/launch-readiness/SKILL.md +1 -1
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +7 -7
- package/dist/agent-src/skills/learning-tutor/SKILL.md +44 -43
- package/dist/agent-src/skills/learning-tutor/evals/triggers.json +52 -0
- package/dist/agent-src/skills/license-compliance-audit/SKILL.md +7 -7
- package/dist/agent-src/skills/license-compliance-borrow-check/SKILL.md +3 -3
- package/dist/agent-src/skills/license-compliance-credits/SKILL.md +4 -4
- package/dist/agent-src/skills/llm-provider-knowledge/SKILL.md +0 -1
- package/dist/agent-src/skills/memory-consolidation/SKILL.md +69 -64
- package/dist/agent-src/skills/motion-choreographer/SKILL.md +6 -6
- package/dist/agent-src/skills/pdf-tools/evals/triggers.json +52 -0
- package/dist/agent-src/skills/performance-analysis/SKILL.md +7 -3
- package/dist/agent-src/skills/persona-improvement/SKILL.md +0 -2
- package/dist/agent-src/skills/persona-improvement/evals/triggers.json +52 -0
- package/dist/agent-src/skills/php-coder/SKILL.md +10 -0
- package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +129 -120
- package/dist/agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +36 -35
- package/dist/agent-src/skills/prediction-pool-optimizer/reference/odds-and-bonus.md +45 -41
- package/dist/agent-src/skills/project-analysis-core/SKILL.md +4 -4
- package/dist/agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +3 -3
- package/dist/agent-src/skills/project-analysis-react/SKILL.md +1 -1
- package/dist/agent-src/skills/project-analysis-symfony/SKILL.md +1 -1
- package/dist/agent-src/skills/project-analysis-zend-laminas/SKILL.md +2 -2
- package/dist/agent-src/skills/prompt-engineering-patterns/SKILL.md +1 -1
- package/dist/agent-src/skills/prompt-validator/SKILL.md +39 -39
- package/dist/agent-src/skills/quality-tools/SKILL.md +15 -15
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +55 -19
- package/dist/agent-src/skills/react-shadcn-ui/reference/registry.md +29 -27
- package/dist/agent-src/skills/readme-writing-package/SKILL.md +2 -2
- package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +25 -25
- package/dist/agent-src/skills/recursive-verification/SKILL.md +6 -5
- package/dist/agent-src/skills/refine-prompt/SKILL.md +1 -1
- package/dist/agent-src/skills/refine-ticket/SKILL.md +20 -2
- package/dist/agent-src/skills/repomix-packer/SKILL.md +1 -1
- package/dist/agent-src/skills/requesting-code-review/SKILL.md +2 -2
- package/dist/agent-src/skills/roadmap-management/SKILL.md +80 -66
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +84 -77
- package/dist/agent-src/skills/rule-refactor/SKILL.md +1 -1
- package/dist/agent-src/skills/screenshot-hygiene/evals/triggers.json +52 -0
- package/dist/agent-src/skills/security-audit/SKILL.md +26 -9
- package/dist/agent-src/skills/security-maturity-assessment/SKILL.md +38 -16
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +14 -11
- package/dist/agent-src/skills/skill-writing/SKILL.md +9 -8
- package/dist/agent-src/skills/song-to-script/SKILL.md +93 -85
- package/dist/agent-src/skills/sql-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/stakeholder-tradeoff/SKILL.md +4 -3
- package/dist/agent-src/skills/standards-from-config/SKILL.md +61 -43
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +22 -8
- package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +28 -2
- package/dist/agent-src/skills/supply-chain-intake/SKILL.md +13 -13
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +22 -21
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +1 -1
- package/dist/agent-src/skills/technical-specification/SKILL.md +5 -0
- package/dist/agent-src/skills/terraform/SKILL.md +2 -2
- package/dist/agent-src/skills/terragrunt/SKILL.md +8 -8
- package/dist/agent-src/skills/testing-anti-patterns/process-anti-patterns.md +1 -1
- package/dist/agent-src/skills/threat-modeling/SKILL.md +19 -13
- package/dist/agent-src/skills/universal-project-analysis/SKILL.md +1 -1
- package/dist/agent-src/skills/upstream-contribute/SKILL.md +0 -1
- package/dist/agent-src/skills/using-git-worktrees/SKILL.md +9 -9
- package/dist/agent-src/skills/validate-feature-fit/SKILL.md +3 -1
- package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +4 -6
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +67 -61
- package/dist/agent-src/skills/video-director/SKILL.md +7 -7
- package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +3 -3
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/contexts/knowledge-pages.md +47 -45
- package/dist/agent-src/templates/contexts/lesson-card.md +2 -2
- package/dist/agent-src/templates/contexts/tenant-boundaries.md +2 -2
- package/dist/agent-src/templates/contexts.md +1 -1
- package/dist/agent-src/templates/features.md +1 -1
- package/dist/agent-src/templates/roadmaps.md +125 -116
- package/dist/agent-src/templates/rule.md +2 -1
- package/dist/agent-src/templates/scripts/pr_risk_review.ts +0 -0
- package/dist/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
- package/dist/agent-src/templates/scripts/tier_usage_report.ts +2 -2
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +30 -30
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/design.ts +88 -33
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +22 -2
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/review.ts +21 -2
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +179 -0
- package/dist/agent-src/templates/scripts/work_engine/stack/detect.ts +155 -4
- package/dist/agent-src/templates/scripts/work_engine/state.ts +21 -4
- package/dist/agent-src/user-types/README.md +8 -8
- package/dist/agent-src/user-types/galabau-field-crew.md +34 -33
- package/dist/agent-src/user-types/metalworking-shop.md +35 -34
- package/dist/agent-src/user-types/truck-driver.md +22 -20
- package/dist/cli/initRouting.js +74 -11
- package/dist/cli/initRouting.js.map +1 -1
- package/dist/cli/main.js +14 -3
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/python/workspace_roles.js +2 -2
- package/dist/cli/python/workspace_roles.js.map +1 -1
- package/dist/cli-delegate/chunk-4SV3XGFA.js +6910 -0
- package/dist/cli-delegate/chunk-736JCWLM.js +1104 -0
- package/dist/cli-delegate/chunk-7DSAMZFU.js +356 -0
- package/dist/cli-delegate/chunk-7HQ52DHU.js +74 -0
- package/dist/cli-delegate/chunk-BJGXZNPM.js +266 -0
- package/dist/cli-delegate/chunk-FTAISGDQ.js +117 -0
- package/dist/cli-delegate/chunk-GME3Q44L.js +82 -0
- package/dist/cli-delegate/chunk-GRRPEPRN.js +336 -0
- package/dist/cli-delegate/chunk-HJ6DAJHR.js +502 -0
- package/dist/cli-delegate/chunk-IR7P7JWA.js +872 -0
- package/dist/cli-delegate/chunk-J55WI3RR.js +47 -0
- package/dist/cli-delegate/chunk-MCJYCQPF.js +35 -0
- package/dist/cli-delegate/chunk-NDJLNC6Q.js +169 -0
- package/dist/cli-delegate/chunk-OMIVVCG2.js +26 -0
- package/dist/cli-delegate/chunk-OY53J6II.js +7336 -0
- package/dist/cli-delegate/chunk-RDGRHAAB.js +259 -0
- package/dist/cli-delegate/chunk-TFG57JJM.js +1969 -0
- package/dist/cli-delegate/chunk-XX6TOPD7.js +715 -0
- package/dist/cli-delegate/chunk-YMFO6FDN.js +10603 -0
- package/dist/cli-delegate/cmd_analyze_session.js +294 -0
- package/dist/cli-delegate/cmd_conformance.js +646 -0
- package/dist/cli-delegate/cmd_converge.js +326 -0
- package/dist/cli-delegate/cmd_doctor.js +144 -0
- package/dist/cli-delegate/cmd_explain.js +2508 -0
- package/dist/cli-delegate/cmd_export.js +296 -0
- package/dist/cli-delegate/cmd_fleet.js +332 -0
- package/dist/cli-delegate/cmd_memory_get.js +3878 -0
- package/dist/cli-delegate/cmd_migrate.js +11 -0
- package/dist/cli-delegate/cmd_preflight.js +270 -0
- package/dist/cli-delegate/cmd_prune.js +444 -0
- package/dist/cli-delegate/cmd_refresh.js +28 -0
- package/dist/cli-delegate/cmd_settings_check.js +574 -0
- package/dist/cli-delegate/cmd_settings_migrate.js +223 -0
- package/dist/cli-delegate/cmd_sync.js +264 -0
- package/dist/cli-delegate/cmd_uninstall.js +656 -0
- package/dist/cli-delegate/cmd_update.js +425 -0
- package/dist/cli-delegate/cmd_upgrade.js +444 -0
- package/dist/cli-delegate/cmd_validate.js +305 -0
- package/dist/cli-delegate/cmd_versions.js +370 -0
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +100 -67
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +4 -4
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +16 -10
- package/dist/discovery/trust-report.md +2 -2
- package/dist/discovery/workspaces.json +7 -5
- package/dist/hooks/dispatch.js +186 -12
- package/dist/install/emit_host_rules_cli.js +2 -1
- package/dist/install/emit_host_rules_cli.js.map +1 -1
- package/dist/install/install.mjs +418 -378
- package/dist/install/rule_scope.js +5 -1
- package/dist/install/rule_scope.js.map +1 -1
- package/dist/install/toolDetection.js +40 -12
- package/dist/install/toolDetection.js.map +1 -1
- package/dist/install/wizard-plan.js +2 -2
- package/dist/install/wizard-plan.js.map +1 -1
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +2194 -1003
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/compile_time_toggles.js +48 -0
- package/dist/scripts/_lib/compile_time_toggles.js.map +1 -0
- package/dist/scripts/condense.js +234 -217
- package/dist/scripts/condense.js.map +1 -1
- package/dist/server/schemas/settings.js +4 -0
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/shared/userMd/utils.js +30 -0
- package/dist/shared/userMd/utils.js.map +1 -1
- package/dist/ui/assets/index-BpSQt5vm.js.map +1 -1
- package/docs/guidelines/agent-infra/api-cost-levers.md +56 -5
- package/docs/guidelines/agent-infra/simplicity-and-goal-demos.md +93 -33
- package/package.json +4 -2
- package/src/agent-src/templates/scripts/pr_risk_review.ts +0 -0
- package/src/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
- package/src/agent-src/templates/scripts/tier_usage_report.ts +2 -2
- package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +30 -30
- package/src/agent-src/templates/scripts/work_engine/directives/ui/design.ts +88 -33
- package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +22 -2
- package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +21 -2
- package/src/agent-src/templates/scripts/work_engine/directives/ui/stack_bundles.ts +179 -0
- package/src/agent-src/templates/scripts/work_engine/stack/detect.ts +155 -4
- package/src/agent-src/templates/scripts/work_engine/state.ts +21 -4
- package/src/config/agent-settings.template.yml +32 -2
- package/src/config/ci-local-parity.yml +142 -0
- package/src/config/discovery/packs.yml +7 -0
- package/src/config/evaluator-budgets.json +1 -1
- package/src/config/gate-coverage.yml +127 -0
- package/src/config/pack-size-budget.json +27 -0
- package/src/config/preamble-payload-budget.json +44 -0
- package/src/install/emit_host_rules_cli.ts +2 -1
- package/src/install/rule_scope.ts +5 -1
- package/src/install/toolDetection.ts +39 -8
- package/src/install/wizard-plan.ts +2 -2
- package/src/scripts/_cli/cmd_conformance.ts +2 -1
- package/src/scripts/_cli/cmd_converge.ts +2 -1
- package/src/scripts/_cli/cmd_doctor.ts +292 -15
- package/src/scripts/_cli/cmd_export.ts +2 -1
- package/src/scripts/_cli/cmd_fleet.ts +2 -1
- package/src/scripts/_cli/cmd_migrate.ts +2 -1
- package/src/scripts/_cli/cmd_preflight.ts +2 -1
- package/src/scripts/_cli/cmd_refresh.ts +2 -1
- package/src/scripts/_cli/cmd_update.ts +2 -1
- package/src/scripts/_cli/cmd_upgrade.ts +2 -1
- package/src/scripts/_cli/cmd_versions.ts +2 -1
- package/src/scripts/_cli/detection_report.ts +480 -0
- package/src/scripts/_dispatch.bash +52 -14
- package/src/scripts/_lib/agent_user_profile.ts +381 -0
- package/src/scripts/_lib/agents_overlay.ts +9 -0
- package/src/scripts/_lib/anchor_eval.ts +311 -0
- package/src/scripts/_lib/cc_transcript.ts +316 -0
- package/src/scripts/_lib/changelog_eras.ts +103 -9
- package/src/scripts/_lib/compile_time_toggles.ts +79 -0
- package/src/scripts/_lib/confusables.ts +101 -0
- package/src/scripts/_lib/duplicate_scope_census.ts +77 -0
- package/src/scripts/_lib/environment_detector.ts +441 -0
- package/src/scripts/_lib/managed_agents_folder.ts +181 -0
- package/src/scripts/_lib/package_root.ts +72 -0
- package/src/scripts/_lib/payload_hash_drift.ts +126 -0
- package/src/scripts/_lib/preservation_migration.ts +291 -0
- package/src/scripts/_lib/retrieval_sanitize.ts +166 -2
- package/src/scripts/_lib/scan_scope.ts +115 -0
- package/src/scripts/_lib/user_global_memory_audit.ts +187 -0
- package/src/scripts/_lib/user_global_observations.ts +830 -0
- package/src/scripts/_lib/user_global_revocations.ts +110 -0
- package/src/scripts/_lib/user_memory_gate_counters.ts +291 -0
- package/src/scripts/ai_council/blind_review.ts +0 -0
- package/src/scripts/ai_council/budget_guard.ts +90 -11
- package/src/scripts/ai_council/bundler.ts +2 -2
- package/src/scripts/ai_council/clients.ts +59 -3
- package/src/scripts/ai_council/config.ts +53 -7
- package/src/scripts/ai_council/modes.ts +68 -2
- package/src/scripts/ai_council/orchestrator.ts +54 -9
- package/src/scripts/ai_council/transport_resolver.ts +331 -0
- package/src/scripts/ai_team/team_dispatch.ts +17 -6
- package/src/scripts/anchor_eval_falsify.ts +198 -0
- package/src/scripts/anchor_scoring_run.ts +239 -0
- package/src/scripts/annotate_discovery.ts +1 -65
- package/src/scripts/bench_quality_run.ts +168 -4
- package/src/scripts/cache_realization_report.ts +782 -0
- package/src/scripts/check_artefact_count_messaging.ts +5 -1
- package/src/scripts/check_augment_description_cap.ts +15 -4
- package/src/scripts/check_bundle_path_leakage.ts +10 -4
- package/src/scripts/check_ci_local_parity.ts +317 -0
- package/src/scripts/check_condensation.ts +96 -191
- package/src/scripts/check_context_paths.ts +38 -9
- package/src/scripts/check_dependency_floors.ts +153 -0
- package/src/scripts/check_gate_coverage.ts +299 -0
- package/src/scripts/check_iron_law_prominence.ts +22 -1
- package/src/scripts/check_kernel_prefix_stability.ts +0 -0
- package/src/scripts/check_no_new_legacy_path.ts +16 -6
- package/src/scripts/check_no_roadmap_refs.ts +22 -9
- package/src/scripts/check_originality_freshness.ts +167 -0
- package/src/scripts/check_pack_size.ts +188 -0
- package/src/scripts/check_preamble_payload_budget.ts +130 -0
- package/src/scripts/check_proposal.ts +0 -0
- package/src/scripts/check_references.ts +0 -1
- package/src/scripts/check_safety_floor_untouched.ts +171 -24
- package/src/scripts/check_site_links.ts +62 -3
- package/src/scripts/ci_status.ts +0 -0
- package/src/scripts/cluster_near_miss_patterns.ts +0 -0
- package/src/scripts/code_graph/build.ts +0 -0
- package/src/scripts/command_suggester/types.ts +0 -0
- package/src/scripts/compile_router.ts +10 -14
- package/src/scripts/condense.sh +3 -4
- package/src/scripts/condense.ts +247 -228
- package/src/scripts/cost/track.mjs +168 -33
- package/src/scripts/cost_summary.ts +33 -1
- package/src/scripts/council_cli.ts +51 -5
- package/src/scripts/discovery_graph.ts +0 -0
- package/src/scripts/encoding_corpus.ts +500 -0
- package/src/scripts/encoding_corpus_report.ts +216 -0
- package/src/scripts/evaluator_umbrella.sh +34 -1
- package/src/scripts/generate_index.ts +19 -2
- package/src/scripts/install-hooks.sh +2 -2
- package/src/scripts/learning_sidecar.ts +0 -0
- package/src/scripts/lint_confusables.ts +10 -72
- package/src/scripts/lint_eval_fixture_citations.ts +113 -0
- package/src/scripts/lint_featured_skills.ts +0 -0
- package/src/scripts/lint_hidden_unicode.ts +208 -0
- package/src/scripts/lint_load_context.ts +17 -5
- package/src/scripts/lint_new_skill_gate.ts +9 -3
- package/src/scripts/lint_no_python_twin_rationale.ts +17 -2
- package/src/scripts/lint_originality.ts +1 -1
- package/src/scripts/lint_skill_originality.ts +1 -1
- package/src/scripts/lint_ticket_buildable.ts +1 -1
- package/src/scripts/lint_ui_stack_bundles.ts +170 -0
- package/src/scripts/mcp_server/tools.ts +4 -4
- package/src/scripts/measure_scope_dedup.ts +224 -0
- package/src/scripts/memory_lookup.ts +0 -0
- package/src/scripts/mine_session.ts +98 -0
- package/src/scripts/orchestration_payload_hash_drift.ts +145 -0
- package/src/scripts/preamble_byte_census.ts +574 -0
- package/src/scripts/probe_skill_registration.ts +2 -2
- package/src/scripts/redact_hook_capture.ts +13 -0
- package/src/scripts/release.ts +65 -10
- package/src/scripts/router_telemetry.ts +1 -1
- package/src/scripts/second_brain_retrieval.ts +14 -4
- package/src/scripts/skill_linter.ts +5 -0
- package/src/scripts/surface-tiers.yml +2 -0
- package/src/scripts/validate_pack_yaml.ts +0 -0
- package/src/server/schemas/settings.ts +8 -0
- package/src/shared/userMd/utils.ts +31 -0
- package/dist/agent-src/rules/telegraph-speak.md +0 -87
package/src/scripts/release.ts
CHANGED
|
@@ -771,11 +771,71 @@ function _changelog_line(c: Commit): string {
|
|
|
771
771
|
|
|
772
772
|
const _TEST_COUNT_LINE_RE = /^Tests:\s+(\d+)/m;
|
|
773
773
|
|
|
774
|
+
/**
|
|
775
|
+
* Buffer ceiling for the `vitest list` probe, in bytes.
|
|
776
|
+
*
|
|
777
|
+
* `spawnSync` buffers the child's whole stdout in memory and fails with
|
|
778
|
+
* ENOBUFS past `maxBuffer`, whose default is 1 MiB. The probe emits one line
|
|
779
|
+
* per test case, so its output grows with the suite: at 9470 cases the listing
|
|
780
|
+
* is ~1.25 MB, i.e. already past the default. That is what silently dropped
|
|
781
|
+
* the footer from the 9.10.0 notes and turned the `changelog-entry` gate red.
|
|
782
|
+
* 64 MiB is ~50× the current listing — headroom for a suite many times this
|
|
783
|
+
* size, at no cost when the output is small.
|
|
784
|
+
*/
|
|
785
|
+
const _TEST_LIST_MAX_BUFFER = 64 * 1024 * 1024;
|
|
786
|
+
|
|
787
|
+
/**
|
|
788
|
+
* Count test cases from a finished `vitest list` spawn result, or return null
|
|
789
|
+
* when the probe did not produce a usable listing.
|
|
790
|
+
*
|
|
791
|
+
* Split out from `_count_tests_current` so the failure modes are testable
|
|
792
|
+
* without spawning the real (~14s, >1 MB) collection. `warn` is injected for
|
|
793
|
+
* the same reason; it defaults to stderr.
|
|
794
|
+
*/
|
|
795
|
+
function _count_from_list_result(
|
|
796
|
+
res: {
|
|
797
|
+
error?: (Error & { code?: string }) | undefined;
|
|
798
|
+
status: number | null;
|
|
799
|
+
stdout: string | null;
|
|
800
|
+
},
|
|
801
|
+
warn: (msg: string) => void = (msg) => void process.stderr.write(msg),
|
|
802
|
+
): number | null {
|
|
803
|
+
// The trend line is informational and never blocks a release — but a
|
|
804
|
+
// SILENT drop is what shipped 9.8.0 and 9.10.0 without a footer, so every
|
|
805
|
+
// degradation says why. The `changelog-entry` CI gate treats a missing
|
|
806
|
+
// footer as fatal, so this warning is the difference between fixing the
|
|
807
|
+
// probe now and finding out from a red release PR.
|
|
808
|
+
if (res.error) {
|
|
809
|
+
// ENOENT (no npx) · ETIMEDOUT · ENOBUFS (listing past maxBuffer).
|
|
810
|
+
const code = res.error.code ?? res.error.message;
|
|
811
|
+
warn(
|
|
812
|
+
`⚠️ test-count probe failed (${code}) — the \`Tests:\` footer will ` +
|
|
813
|
+
`be omitted from the release notes, which fails the ` +
|
|
814
|
+
`\`CHANGELOG entry exists for head version\` gate.\n`,
|
|
815
|
+
);
|
|
816
|
+
return null;
|
|
817
|
+
}
|
|
818
|
+
if ((res.status ?? 1) !== 0) {
|
|
819
|
+
warn(
|
|
820
|
+
`⚠️ test-count probe exited ${res.status ?? '(null)'} — the ` +
|
|
821
|
+
`\`Tests:\` footer will be omitted from the release notes.\n`,
|
|
822
|
+
);
|
|
823
|
+
return null;
|
|
824
|
+
}
|
|
825
|
+
const lines = (res.stdout ?? '').split('\n').filter((l) => l.trim().length > 0);
|
|
826
|
+
if (lines.length === 0) {
|
|
827
|
+
warn('⚠️ test-count probe listed 0 cases — the `Tests:` footer will be omitted.\n');
|
|
828
|
+
return null;
|
|
829
|
+
}
|
|
830
|
+
return lines.length;
|
|
831
|
+
}
|
|
832
|
+
|
|
774
833
|
/**
|
|
775
834
|
* Return the collected vitest test-case count on the current tree
|
|
776
835
|
* (`npx vitest list`, one line per case; ~14s wall). Returns null when
|
|
777
836
|
* collection fails — the trend line is informational, never a release
|
|
778
|
-
* blocker
|
|
837
|
+
* blocker, but every failure warns (see `_count_from_list_result`).
|
|
838
|
+
* (Replaced the dead `pytest --collect-only` probe on 2026-07-08,
|
|
779
839
|
* road-to-truth-and-reference-hygiene Phase 3: the Python suite was retired
|
|
780
840
|
* with ADR-200, so the old probe always degraded to null and the `Tests:`
|
|
781
841
|
* footer silently vanished from release notes.)
|
|
@@ -794,16 +854,9 @@ function _count_tests_current(): number | null {
|
|
|
794
854
|
encoding: 'utf-8',
|
|
795
855
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
796
856
|
timeout: 180_000,
|
|
857
|
+
maxBuffer: _TEST_LIST_MAX_BUFFER,
|
|
797
858
|
});
|
|
798
|
-
|
|
799
|
-
// ENOENT or ETIMEDOUT → null (informational line dropped).
|
|
800
|
-
return null;
|
|
801
|
-
}
|
|
802
|
-
if ((res.status ?? 1) !== 0) {
|
|
803
|
-
return null;
|
|
804
|
-
}
|
|
805
|
-
const lines = (res.stdout ?? '').split('\n').filter((l) => l.trim().length > 0);
|
|
806
|
-
return lines.length > 0 ? lines.length : null;
|
|
859
|
+
return _count_from_list_result(res);
|
|
807
860
|
}
|
|
808
861
|
|
|
809
862
|
/**
|
|
@@ -1986,6 +2039,8 @@ export {
|
|
|
1986
2039
|
latest_tag,
|
|
1987
2040
|
_render_test_trend_line,
|
|
1988
2041
|
_previous_test_count_from_changelog,
|
|
2042
|
+
_count_from_list_result,
|
|
2043
|
+
_TEST_LIST_MAX_BUFFER,
|
|
1989
2044
|
Commit,
|
|
1990
2045
|
Plan,
|
|
1991
2046
|
SystemExitError,
|
|
@@ -595,7 +595,7 @@ export function aggregate_replay(
|
|
|
595
595
|
// Skip kernel — always-on by definition, no signal.
|
|
596
596
|
continue;
|
|
597
597
|
}
|
|
598
|
-
seen_in_prompt.set(`${act.tier}
|
|
598
|
+
seen_in_prompt.set(`${act.tier}\0${String(rid)}`, [act.tier, String(rid)]);
|
|
599
599
|
}
|
|
600
600
|
const activated_ids = new Set<string>();
|
|
601
601
|
for (const [, rid] of seen_in_prompt.values()) {
|
|
@@ -193,13 +193,22 @@ export async function run(opts: { mode: 'dry-run' | 'live'; host: string; seeds:
|
|
|
193
193
|
const { topk, rank, tieSetSize } = retrieveFor(task, type, k);
|
|
194
194
|
const ids = topk.map((r) => r.id);
|
|
195
195
|
topkSlots += topk.length;
|
|
196
|
+
// Apply the floor ONCE, here, and prompt from the result below. The
|
|
197
|
+
// previous shape computed a sanitized body only to increment
|
|
198
|
+
// `poisonedNeutralized` and then prompted with the RAW body — so
|
|
199
|
+
// `poisoned_rejection_rate` measured the algorithm while the pipeline
|
|
200
|
+
// forwarded every vector intact. Measured, not inferred:
|
|
201
|
+
// `agents/evidence/reports/sanitize-floor-wiring.md` § Finding 2.
|
|
202
|
+
const safeBodies = new Map<string, string>();
|
|
196
203
|
for (const hit of topk) {
|
|
204
|
+
const clean = sanitize_text(hit.body);
|
|
205
|
+
safeBodies.set(hit.id, clean);
|
|
197
206
|
if (staleSet.has(hit.id)) staleHits += 1;
|
|
198
207
|
if (poisonedSet.has(hit.id)) {
|
|
199
208
|
poisonedRetrieved += 1;
|
|
200
|
-
// Rejection = the sanitize floor
|
|
201
|
-
// vector
|
|
202
|
-
|
|
209
|
+
// Rejection = the sanitize floor stripped every
|
|
210
|
+
// hidden-instruction vector from the body that reaches the
|
|
211
|
+
// prompt — the same `clean` value, not a parallel computation.
|
|
203
212
|
if (!/[---]/u.test(clean)) poisonedNeutralized += 1;
|
|
204
213
|
}
|
|
205
214
|
}
|
|
@@ -215,7 +224,8 @@ export async function run(opts: { mode: 'dry-run' | 'live'; host: string; seeds:
|
|
|
215
224
|
if (opts.mode === 'dry-run') {
|
|
216
225
|
transcript = stub(task, arm, neededInTopK);
|
|
217
226
|
} else {
|
|
218
|
-
const
|
|
227
|
+
const retrieved = topk.map((x) => safeBodies.get(x.id) ?? sanitize_text(x.body));
|
|
228
|
+
const r = await callAnthropic(opts.host, _prompt(task, arm, retrieved, placebo), apiKey);
|
|
219
229
|
transcript = r.text; calls += 1; tIn += r.tokens_in; tOut += r.tokens_out;
|
|
220
230
|
}
|
|
221
231
|
armTotal[arm] += 1;
|
|
@@ -3642,6 +3642,11 @@ export function format_text(results: LintResult[], quiet = false): string {
|
|
|
3642
3642
|
const passes = results.filter((r) => r.status === 'pass').length;
|
|
3643
3643
|
const suffix = maliceTotal ? `, ${maliceTotal} malice` : '';
|
|
3644
3644
|
lines.push(`Summary: ${passes} pass, ${warns} warn, ${fails} fail, ${total} total${suffix}`);
|
|
3645
|
+
// Gate-coverage contract (src/config/gate-coverage.yml): one machine-readable
|
|
3646
|
+
// count so `check_gate_coverage` never parses the human summary above. This
|
|
3647
|
+
// gate is also the manifest's regression case for CI-identical invocation —
|
|
3648
|
+
// called bare it legitimately scans 0, so the manifest pins `--all`.
|
|
3649
|
+
lines.push(`scanned: ${total}`);
|
|
3645
3650
|
return lines.join('\n');
|
|
3646
3651
|
}
|
|
3647
3652
|
|
|
@@ -33,7 +33,9 @@ clusters:
|
|
|
33
33
|
ai-image: lab # AI image-generation adapters (pack ai-image, experimental)
|
|
34
34
|
ai-video: lab # AI video pipeline adapters (pack ai-video, experimental)
|
|
35
35
|
ai_council: lab # multi-model council orchestration, external API deps
|
|
36
|
+
ai_team: lab # multi-agent team dispatch + review gate — ai_council's sibling, external API deps
|
|
36
37
|
command_suggester: lab # context-aware command suggestion engine, pilot
|
|
38
|
+
code_graph: lab # native code-graph engine — default-off and benchmark-gated per ADR-124
|
|
37
39
|
cost: lab # cost tracking / budget gate (observability, Node .mjs)
|
|
38
40
|
mcp_exec: lab # compiled safety envelope for MCP exec-tier tools (run_tests pilot)
|
|
39
41
|
mcp_server: lab # MCP stdio server, separate runtime, pilot distribution
|
|
Binary file
|
|
@@ -223,6 +223,14 @@ export const settingsSchema = z.object({
|
|
|
223
223
|
'Consumed by the doc-screenshot-hygiene rule. on (default) = a data-bearing screenshot embed is gated behind this-turn human confirmation; uncertain/unresolved regions redact-or-refuse, never ship-and-hope; illustrative/no-data screenshots may embed with a stated justification. off = no data-bearing gate (the anonymization taxonomy still applies).',
|
|
224
224
|
),
|
|
225
225
|
}).default({ identity_allowlist: [], forbid_terminal_capture: true, data_bearing_gate: 'on' }),
|
|
226
|
+
telegraph: z.object({
|
|
227
|
+
speak: z.boolean().default(false).describe(
|
|
228
|
+
'Whether the telegraph-speak rule ships at all. false (default) = DORMANT: compile_router omits the rule from dist/router.json entirely, so its body never reaches a host. This — not speak_scope — is the lever that stops the cost. Set true only after an output-side bench clears the kill-criterion bar (docs/adrs/telegraph/0002).',
|
|
229
|
+
),
|
|
230
|
+
speak_scope: z.enum(['off', 'reply', 'all']).default('off').describe(
|
|
231
|
+
"Where telegraph condensation applies WHEN speak is true. off (default) = agent reply prose is exempt. compile_router never reads this key: with speak false the rule does not ship, so this setting has no effect on its own. Quote the value in YAML — bare `off` parses as a boolean under YAML 1.1 and is rejected.",
|
|
232
|
+
),
|
|
233
|
+
}).default({ speak: false, speak_scope: 'off' }),
|
|
226
234
|
tokens: z.object({
|
|
227
235
|
rich_skills: richSkillsMode.default('on').describe(
|
|
228
236
|
'Whether skills marked token_budget_class: rich may load in full (exempt from telegraph-speak + thin-projector trimming), consumed by the token-budget-discipline rule. on = allowed (default); off = fall back to standard condensed behavior; ask = surface an estimated token delta (tokens, not dollars) and ask once per session before loading.',
|
|
@@ -89,3 +89,34 @@ export function parseLegacyUserMd(body: string): Record<string, unknown> {
|
|
|
89
89
|
}
|
|
90
90
|
return data;
|
|
91
91
|
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Compose a legacy `.agent-user.md` body (fenced YAML frontmatter + a body
|
|
95
|
+
* tail) from a plain object — the write-side counterpart to
|
|
96
|
+
* `parseLegacyUserMd`. Used by
|
|
97
|
+
* `agent_user_profile.applyObservationToGlobalProfile` (road-to-global-user-memory
|
|
98
|
+
* Phase 2) to write the accepted-observation profile back in the same shape
|
|
99
|
+
* it was read in.
|
|
100
|
+
*
|
|
101
|
+
* `notes` renders as the body tail verbatim, WITHOUT an added `# Notes`
|
|
102
|
+
* heading — `parseLegacyUserMd` captures everything after the closing fence
|
|
103
|
+
* as `notes` as-is (it does not strip a heading back out), so adding one
|
|
104
|
+
* here would not round-trip: re-parsing the composed file would return
|
|
105
|
+
* `"# Notes\n\n<text>"` instead of `<text>`. (The convention of putting a
|
|
106
|
+
* literal `# Notes` heading in a hand-authored `.agent-user.md` — see
|
|
107
|
+
* `docs/examples/agent-user.example.md` — is an authoring style, not a
|
|
108
|
+
* structural marker the parser recognises; a file authored that way simply
|
|
109
|
+
* has that heading as the leading line of ITS `notes` value.) Every other
|
|
110
|
+
* key stays in the frontmatter block, in block style (matches
|
|
111
|
+
* `composeUserIdentity`'s diff-friendliness rationale).
|
|
112
|
+
*
|
|
113
|
+
* Drop alongside `parseLegacyUserMd` once `.agent-user.md`-shaped files are
|
|
114
|
+
* no longer in circulation.
|
|
115
|
+
*/
|
|
116
|
+
export function composeLegacyUserMd(data: Record<string, unknown>): string {
|
|
117
|
+
const { notes, ...frontmatter } = data;
|
|
118
|
+
const yamlBody = yaml.dump(frontmatter, { flowLevel: -1, lineWidth: -1, noRefs: true });
|
|
119
|
+
const notesText = typeof notes === 'string' ? notes.trim() : '';
|
|
120
|
+
const notesSection = notesText === '' ? '' : `\n${notesText}\n`;
|
|
121
|
+
return `---\n${yamlBody}---\n${notesSection}`;
|
|
122
|
+
}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: "auto"
|
|
3
|
-
tier: "1"
|
|
4
|
-
description: "telegraph.speak_scope != off — telegraph the prose; carve-outs (options, Iron-Law, code, paths) stay byte-stable"
|
|
5
|
-
triggers:
|
|
6
|
-
- intent: "any reply"
|
|
7
|
-
workspaces: [agent-config-maintainer]
|
|
8
|
-
packs: [meta]
|
|
9
|
-
enforced_by:
|
|
10
|
-
- "observer:maintainer-review"
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
# Telegraph Speak
|
|
14
|
-
|
|
15
|
-
Condense reply prose to telegraph grammar per `telegraph.speak_scope`. Body
|
|
16
|
-
prose only — carve-outs preserved byte-for-byte.
|
|
17
|
-
|
|
18
|
-
## Scope
|
|
19
|
-
|
|
20
|
-
Read `telegraph.speak_scope` from `.agent-settings.yml`:
|
|
21
|
-
|
|
22
|
-
- `off` — rule inactive.
|
|
23
|
-
- `prose_only` (default) — telegraph in body prose; carve-outs preserved.
|
|
24
|
-
- `aggressive` — telegraph everywhere except Iron-Law literals.
|
|
25
|
-
|
|
26
|
-
Compile-time toggle `telegraph.speak`: `false` → rule omitted from
|
|
27
|
-
`dist/router.json` (zero runtime cost). `telegraph.enabled: false` forces all
|
|
28
|
-
sub-switches off regardless.
|
|
29
|
-
|
|
30
|
-
## Carve-outs — byte-for-byte preserved
|
|
31
|
-
|
|
32
|
-
Mangling these breaks Iron Laws. Apply regardless of `speak_scope`:
|
|
33
|
-
|
|
34
|
-
1. **Triple-backtick ALL-CAPS blocks** — Iron-Law literal fences in
|
|
35
|
-
`commit-policy`, `non-destructive-by-default`, `direct-answers`, etc.
|
|
36
|
-
2. **Numbered-options blocks** — lines matching `^>?\s*\d+\.\s` plus
|
|
37
|
-
the `**Recommendation:**` / `**Empfehlung:**` label
|
|
38
|
-
(`user-interaction` Iron Law 1).
|
|
39
|
-
3. **Code blocks** — any triple-backtick fence, any language.
|
|
40
|
-
4. **Backtick spans** — file paths, command names, identifiers
|
|
41
|
-
(`direct-answers` Iron Law 2 — no invented facts).
|
|
42
|
-
5. **Status / error markers** — lines prefixed `❌`, `⚠️`, `✅`.
|
|
43
|
-
6. **Mode markers** per `role-mode-adherence`.
|
|
44
|
-
7. **Deliverables** — PR titles / bodies, commit messages, ticket
|
|
45
|
-
summaries, articles, single-question prompts asked to the user.
|
|
46
|
-
These are written **for** the user, not chat-prose.
|
|
47
|
-
|
|
48
|
-
## Enforcement mechanism
|
|
49
|
-
|
|
50
|
-
Post-rewrite validator runs on every reply when `speak_scope != off`:
|
|
51
|
-
|
|
52
|
-
1. **Snapshot** — before condensation, hash each line in carve-out
|
|
53
|
-
regions (1–7 above).
|
|
54
|
-
2. **Rewrite** — condense body prose to telegraph grammar.
|
|
55
|
-
3. **Validate** — re-scan; for each carve-out region whose line hash
|
|
56
|
-
differs from the snapshot, **restore the original prose**.
|
|
57
|
-
4. **Emit** — the validated reply.
|
|
58
|
-
|
|
59
|
-
The rule documents the algorithm; agents apply it inline before
|
|
60
|
-
sending. The mechanism is the rule, not a hidden script.
|
|
61
|
-
|
|
62
|
-
- Optional CI-side regression lock: [`scripts/validate_telegraph_carveouts.ts`](../../scripts/validate_telegraph_carveouts.ts) — pre/post reply pair, byte-identical preservation across all seven carve-out categories; runtime mechanism stays algorithmic, script is the offline check.
|
|
63
|
-
|
|
64
|
-
## Telegraph grammar
|
|
65
|
-
|
|
66
|
-
- Drop articles (`the`, `a`, `an`).
|
|
67
|
-
- Drop linking auxiliaries (`is`, `are`, `was`, `be`) where
|
|
68
|
-
unambiguous.
|
|
69
|
-
- Drop pronouns when context is clear.
|
|
70
|
-
- Keep nouns, verbs, key adjectives, negation, numbers.
|
|
71
|
-
|
|
72
|
-
Example: *"I will now check the file and see if it exists"* →
|
|
73
|
-
*"Check file. Exists?"*
|
|
74
|
-
|
|
75
|
-
## Settings
|
|
76
|
-
|
|
77
|
-
| Key | Default | Effect |
|
|
78
|
-
|---|---|---|
|
|
79
|
-
| `telegraph.enabled` | `true` | Master — `false` forces all sub-switches off. |
|
|
80
|
-
| `telegraph.speak` | `true` | Compile-time include in `dist/router.json`. |
|
|
81
|
-
| `telegraph.speak_scope` | `prose_only` | Runtime scope of telegraph grammar. |
|
|
82
|
-
|
|
83
|
-
- Input-side memory condensation (shrinking always-loaded memory files like `AGENTS.md` / `CLAUDE.md` / `.cursorrules` rather than the reply stream) runs independently of `speak_scope` — see [`condense-memory`](../skills/condense-memory/SKILL.md) for the script wrapper, sensitive-path refusal contract, and `.original.md` round-trip.
|
|
84
|
-
- Skills marked `token_budget_class: rich` are **exempt** from telegraph condensation + thin-projector trimming (gated by `tokens.rich_skills`, default `on`) — full model in [`token-budget-discipline`](token-budget-discipline.md).
|
|
85
|
-
- Any telegraph/trim decision that would drop a net-positive change purely on budget grounds routes to [`token-budget-discipline § Value-over-budget escalation`](token-budget-discipline.md#value-over-budget-escalation) — surface the trade-off, don't auto-reject.
|
|
86
|
-
|
|
87
|
-
Cross-rule index: [`frugality-charter § cross-references`](../contexts/contracts/frugality-charter.md#cross-references--frugality-canon-rules).
|