@event4u/agent-config 9.9.0 → 9.10.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 +153 -194
- package/README.md +1 -1
- 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/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 +6 -5
- 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/polish.ts +2 -2
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/review.ts +1 -1
- 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/python/workspace_roles.js +2 -2
- package/dist/cli/python/workspace_roles.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +88 -62
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +3 -3
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +6 -5
- package/dist/discovery/trust-report.md +2 -2
- package/dist/discovery/workspaces.json +5 -4
- package/dist/hooks/dispatch.js +186 -12
- package/dist/install/install.mjs +8 -0
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +1199 -857
- 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 +1 -1
- 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/polish.ts +2 -2
- package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +1 -1
- package/src/config/agent-settings.template.yml +32 -2
- package/src/config/ci-local-parity.yml +142 -0
- package/src/config/gate-coverage.yml +127 -0
- package/src/config/preamble-payload-budget.json +44 -0
- package/src/scripts/_cli/cmd_doctor.ts +78 -2
- 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/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/managed_agents_folder.ts +181 -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 +38 -0
- package/src/scripts/ai_council/orchestrator.ts +54 -9
- 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_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_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_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 +45 -3
- 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/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_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/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
|
@@ -91,7 +91,7 @@ EVER REACHES THE LOG STREAM. ALLOWLISTED STRUCTURED FIELDS ONLY.
|
|
|
91
91
|
Required patterns:
|
|
92
92
|
|
|
93
93
|
1. **Allowlisted structured fields only.** Log `user_id`, `tenant_id`, `request_id`, `event_type` — never `user` or `request` blobs.
|
|
94
|
-
2. **PII-exclusion-by-construction (preferred over redaction).**
|
|
94
|
+
2. **PII-exclusion-by-construction (preferred over redaction).** Where possible, make the log/event **type physically incapable** of holding free-form content — a struct of allowlisted scalar fields, no `payload`/`body`/`extra: any`. A type that cannot carry a phone number has no scrubber to fail; redaction (next item) is the fallback when a content field is unavoidable, not the first line of defence.
|
|
95
95
|
3. **Logger-level redaction.** Configure the logger to scrub `email`, `phone`, `name`, `address`, `token`, `password`, `card_number`, `iban` keys recursively from any payload.
|
|
96
96
|
4. **No raw exception payloads.** Exceptions captured by Sentry / Bugsnag must scrub the request body via the SDK's `before_send` hook.
|
|
97
97
|
5. **No log-and-forget for auth flows.** Login / password-reset / token-mint logs never include the credential itself, only the actor + outcome.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
type: "auto"
|
|
3
3
|
tier: "2a"
|
|
4
|
-
description: "
|
|
4
|
+
description: "Repo ships a code-graph index (graph.json-shaped or SCIP) — query IT first for codebase-structure questions, do not grep from scratch"
|
|
5
5
|
triggers:
|
|
6
6
|
- keyword: "scip"
|
|
7
7
|
- keyword: "code-graph"
|
|
@@ -18,6 +18,12 @@ packs: [meta]
|
|
|
18
18
|
|
|
19
19
|
# Fast-Path Marker Visibility
|
|
20
20
|
|
|
21
|
+
When a decision resolves through the low-impact council fast-path (corpus
|
|
22
|
+
match, fuzzy match, or any other `decision_resolution.classes.low_impact`
|
|
23
|
+
opt-in route), the dispatcher emits a transparency marker. The host agent
|
|
24
|
+
**must** surface that marker verbatim — never swallow it, never paraphrase
|
|
25
|
+
it, never fold it into a same-sounding summary.
|
|
26
|
+
|
|
21
27
|
## The Iron Law
|
|
22
28
|
|
|
23
29
|
```
|
|
@@ -25,23 +31,53 @@ EVERY LOW-IMPACT COUNCIL FAST-PATH REPLY OPENS WITH THE EXACT MARKER.
|
|
|
25
31
|
NEVER PARAPHRASE. NEVER SWALLOW. NEVER SUBSTITUTE THE AGENT'S OWN VERDICT.
|
|
26
32
|
```
|
|
27
33
|
|
|
28
|
-
|
|
34
|
+
Applies to **every** fast-path outcome:
|
|
29
35
|
|
|
30
36
|
- **Resolved** — `> Resolved via low-impact council fast-path: <verdict>.`
|
|
31
37
|
- **Unavailable** — `> Low-impact council unavailable (no opted-in members) — escalating to user.`
|
|
32
38
|
- **Split** — `> Low-impact council split — escalating to user (<m1>: X / <m2>: Y):`
|
|
33
39
|
- **Aborted** — `> Low-impact council aborted (token cap) — escalating to user:`
|
|
34
40
|
|
|
35
|
-
|
|
41
|
+
Markers from `scripts/ai_council/low_impact.ts`. Wording is normative —
|
|
42
|
+
case, punctuation, and the leading `> ` blockquote prefix all matter so
|
|
43
|
+
that downstream agents and tooling can pattern-match.
|
|
44
|
+
|
|
45
|
+
## What "verbatim" means
|
|
46
|
+
|
|
47
|
+
- First non-whitespace line of the reply is the marker.
|
|
48
|
+
- No prose, greeting, or restating-the-question above it.
|
|
49
|
+
- No translation: the marker is English even when the user wrote in
|
|
50
|
+
another language. `language-and-tone` Iron-Law mirror applies to the
|
|
51
|
+
prose **after** the marker, not the marker itself.
|
|
52
|
+
- No emoji decoration, no trailing rationale on the same line.
|
|
53
|
+
- The marker appears **once**. Subsequent prose explains the verdict.
|
|
54
|
+
|
|
55
|
+
## Why
|
|
56
|
+
|
|
57
|
+
The marker is the only audit signal that distinguishes a fast-path
|
|
58
|
+
resolution from the agent's own reasoning. Swallowing it converts an
|
|
59
|
+
opt-in observability surface into a silent substitution — the user can no
|
|
60
|
+
longer tell whether the council bypassed their judgement or the agent
|
|
61
|
+
deliberated locally. This is the same failure mode that `direct-answers
|
|
62
|
+
§ Iron Law 2` forbids for invented facts, applied to dispatch provenance.
|
|
36
63
|
|
|
37
64
|
## Failure modes
|
|
38
65
|
|
|
39
|
-
- Opening with `Found it` / `Looks like` / `Here's the verdict` — drops
|
|
40
|
-
|
|
66
|
+
- Opening with `Found it` / `Looks like` / `Here's the verdict` — drops
|
|
67
|
+
the marker. **Violation.**
|
|
68
|
+
- Translating the marker to German / Spanish / any non-English. **Violation.**
|
|
41
69
|
- Adding emoji prefix (`✅ Resolved via …`) — alters the literal. **Violation.**
|
|
42
|
-
- Indenting beyond the leading `> ` — breaks pattern match. **Violation.**
|
|
70
|
+
- Indenting the marker beyond the leading `> ` — breaks pattern match. **Violation.**
|
|
43
71
|
- Merging marker into a numbered-options block. **Violation.**
|
|
44
72
|
|
|
45
|
-
Scope
|
|
73
|
+
## Scope
|
|
74
|
+
|
|
75
|
+
Only fires for `low_impact` dispatch outcomes. `high_impact` and
|
|
76
|
+
`user_required` classes never reach the fast-path and have no marker —
|
|
77
|
+
this rule does not constrain their output.
|
|
78
|
+
|
|
79
|
+
## See also
|
|
46
80
|
|
|
47
|
-
|
|
81
|
+
- [`ai-council-config § Low-impact council opt-in`](../docs/contracts/ai-council-config.md#low-impact-council-opt-in)
|
|
82
|
+
- [`direct-answers`](direct-answers.md) — invented-facts Iron Law (provenance kin).
|
|
83
|
+
- `scripts/ai_council/low_impact.ts` — marker source.
|
|
@@ -3,9 +3,9 @@ type: "auto"
|
|
|
3
3
|
tier: "2a"
|
|
4
4
|
description: "Editing a generic skill/rule/command — no single-stack mandates; carve-out pointers instead"
|
|
5
5
|
triggers:
|
|
6
|
-
- path_prefix: "
|
|
7
|
-
- path_prefix: "
|
|
8
|
-
- path_prefix: "
|
|
6
|
+
- path_prefix: "src/skills/"
|
|
7
|
+
- path_prefix: "src/rules/"
|
|
8
|
+
- path_prefix: "src/agent-src/commands/"
|
|
9
9
|
- keyword: "FormRequest"
|
|
10
10
|
- keyword: "PHPStan"
|
|
11
11
|
- keyword: "php artisan"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
type: "auto"
|
|
3
3
|
tier: "2a"
|
|
4
|
-
description: "Change history
|
|
4
|
+
description: "Change history — audit coverage, cheapest-sufficient tier (default row-level audit log; event sourcing by waiver), hygiene + privacy interlocks"
|
|
5
5
|
triggers:
|
|
6
6
|
- keyword: "audit"
|
|
7
7
|
- keyword: "audit log"
|
|
@@ -23,11 +23,11 @@ enforced_by:
|
|
|
23
23
|
Prompt injection is not solvable at the model layer (OWASP LLM01). It is
|
|
24
24
|
contained **architecturally**: a tool/skill/command becomes dangerous only when
|
|
25
25
|
it combines all three legs of the *lethal trifecta*. Remove one leg and an
|
|
26
|
-
injected instruction can do no consequential harm. This is the agentic
|
|
27
|
-
surface OWASP's Agentic Security Initiative (ASI Top 10) catalogues —
|
|
28
|
-
agency, tool misuse, confused-deputy data exfiltration; the
|
|
29
|
-
discipline in [`tool-safety`](tool-safety.md) is the same defence
|
|
30
|
-
tool grant.
|
|
26
|
+
injected instruction can do no consequential harm. This is the agentic
|
|
27
|
+
attack surface OWASP's Agentic Security Initiative (ASI Top 10) catalogues —
|
|
28
|
+
excessive agency, tool misuse, and confused-deputy data exfiltration; the
|
|
29
|
+
Least-Agency discipline in [`tool-safety`](tool-safety.md) is the same defence
|
|
30
|
+
applied to the tool grant.
|
|
31
31
|
|
|
32
32
|
## The Iron Law
|
|
33
33
|
|
|
@@ -21,17 +21,17 @@ NO SECRETS. NO EMAILS. NO PROJECT PATHS. NO CUSTOMER NAMES.
|
|
|
21
21
|
NO INTERNAL HOSTNAMES. NO MONEY. NO BUSINESS SQL. NO LONG CODE.
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
The redactor lives in `scripts/ai_council/redact_low_impact_entry.ts`
|
|
25
25
|
and runs at **both** gates:
|
|
26
26
|
|
|
27
27
|
1. **Write gate** — every intake append to
|
|
28
28
|
`agents/decisions/low-impact-decisions.md` (Phase 12 § Step 2).
|
|
29
29
|
2. **Upstream gate** — every `/memory learn-low-impact` PR draft,
|
|
30
|
-
before diff leaves repo (Phase 12 § Step 5).
|
|
30
|
+
before the diff leaves the repo (Phase 12 § Step 5).
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
pattern, asks user to rephrase.
|
|
34
|
-
rewriting is soft gate, this is hard.
|
|
32
|
+
A failure at either gate refuses the operation, surfaces the
|
|
33
|
+
offending pattern, and asks the user to rephrase. The redactor never
|
|
34
|
+
auto-rewrites — silent rewriting is a soft gate, this is hard.
|
|
35
35
|
|
|
36
36
|
## Forbidden-content classes (8)
|
|
37
37
|
|
|
@@ -54,9 +54,10 @@ rewriting is soft gate, this is hard.
|
|
|
54
54
|
|
|
55
55
|
## When to invoke
|
|
56
56
|
|
|
57
|
-
-
|
|
57
|
+
- The host agent has just received a user intake trigger (see
|
|
58
58
|
`scripts/ai_council/low_impact_intake.TRIGGER_PHRASES`).
|
|
59
|
-
-
|
|
59
|
+
- The host agent is about to write an entry to the corpus or to
|
|
60
|
+
open a `/memory learn-low-impact` PR.
|
|
60
61
|
|
|
61
62
|
## What to surface on refusal
|
|
62
63
|
|
|
@@ -66,7 +67,8 @@ One-line marker:
|
|
|
66
67
|
> Low-impact corpus refused — <category>: <snippet…>. Rephrase or skip.
|
|
67
68
|
```
|
|
68
69
|
|
|
69
|
-
Then agent stops intake/upstream flow. No silent retry, no
|
|
70
|
+
Then the agent stops the intake / upstream flow. No silent retry, no
|
|
71
|
+
auto-rewrite.
|
|
70
72
|
|
|
71
73
|
## See also
|
|
72
74
|
|
|
@@ -42,11 +42,11 @@ MEDIA POLICIES IN agents/settings/policies/media/ BEFORE EMITTING THE PROMPT TO
|
|
|
42
42
|
THE PROVIDER. REFUSE-AND-SURFACE OVER GUESS-AND-RENDER.
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
This rule routes the agent to the **project-local** media governance policy layer at [`agents/settings/policies/media/`](../../agents/settings/policies/media/) whenever a video / image / voice surface fires. The policies themselves are LLM-readable decision frameworks consulted in-session, not Python-enforced gates — see [`agents/settings/policies/media/README.md § Enforcement model`](../../agents/settings/policies/media/README.md) for the full agent-in-the-loop contract.
|
|
46
46
|
|
|
47
47
|
## What this rule surfaces
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
When any trigger above matches in the user prompt or in a tool invocation, the agent loads into context:
|
|
50
50
|
|
|
51
51
|
- [`agents/settings/policies/media/likeness.md`](../../agents/settings/policies/media/likeness.md) — real person's visual likeness.
|
|
52
52
|
- [`agents/settings/policies/media/style.md`](../../agents/settings/policies/media/style.md) — named living artist's distinctive style.
|
|
@@ -56,30 +56,30 @@ Any trigger match → agent loads into context:
|
|
|
56
56
|
- [`agents/settings/policies/media/brand-impersonation.md`](../../agents/settings/policies/media/brand-impersonation.md) — brand / broadcaster identity imitation.
|
|
57
57
|
- [`agents/settings/policies/media/transparency.md`](../../agents/settings/policies/media/transparency.md) — provenance metadata (C2PA, SynthID).
|
|
58
58
|
|
|
59
|
-
Each policy carries own trigger block
|
|
59
|
+
Each policy carries its own trigger block, so within the active context the agent narrows from this superset to the policies whose specific patterns actually fired (e.g., a prompt naming a public figure activates `public-figures.md` and `disclosure.md`; a prompt requesting `--no-disclosure` activates `disclosure.md` standalone).
|
|
60
60
|
|
|
61
61
|
## Why project-local, not `.agent-src.uncondensed/rules/`
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
The seven media policies live under [`agents/settings/policies/media/`](../../agents/settings/policies/media/), not as `.agent-src.uncondensed/rules/domain-safety-media-*.md`, for three reasons:
|
|
64
64
|
|
|
65
|
-
1. **
|
|
66
|
-
2. **
|
|
67
|
-
3. **Extraction to reusable domain pack explicitly deferred** until second non-video domain (audio, image, docs, exports) lands with overlapping execution surfaces. Until then, one-domain abstraction structurally premature — policies stay project-local
|
|
65
|
+
1. **They are consumed by skills and adapters**, not surfaced as standalone always-loaded prose. The cost is non-trivial (7 × ~80 lines = ~560 lines into the always-context if hoisted to rules), and most sessions never touch a video / image / voice surface.
|
|
66
|
+
2. **The enforcement model is project-local** — the working precedent (`/ghostwriter:*` mandatory footer in `write-engine.md`) and the audit log (session transcripts) are project artifacts. Rules under `.agent-src.uncondensed/` are tool-portable governance; these policies are domain-specific bindings.
|
|
67
|
+
3. **Extraction to a reusable domain pack is explicitly deferred** until a second non-video domain (audio, image, docs, exports) lands with overlapping execution surfaces. Until then, a one-domain abstraction is structurally premature — the policies stay project-local and the routing rule is the on-demand bridge.
|
|
68
68
|
|
|
69
|
-
This routing rule is the bridge: sits in always-loaded rule set so trigger keywords surface project-local policies into context on demand, without paying full always-loaded cost.
|
|
69
|
+
This routing rule is the bridge: it sits in the always-loaded rule set so the trigger keywords surface the project-local policies into context on demand, without paying the full always-loaded cost.
|
|
70
70
|
|
|
71
71
|
## CI reachability guarantee
|
|
72
72
|
|
|
73
|
-
[`scripts/lint_media_policy_linkage.ts`](../../scripts/lint_media_policy_linkage.ts) fails build if any policy file under `agents/settings/policies/media/` not linked from:
|
|
73
|
+
[`scripts/lint_media_policy_linkage.ts`](../../scripts/lint_media_policy_linkage.ts) fails the build if any policy file under `agents/settings/policies/media/` is not linked from:
|
|
74
74
|
|
|
75
75
|
- this routing rule, **or**
|
|
76
76
|
- a skill's `## Policies` see-also block, **or**
|
|
77
77
|
- another policy file's `## See also` block.
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
A policy that no skill, rule, or sibling policy references is a silent policy. The CI check is the structural reachability guarantee that the agent-in-the-loop model rests on.
|
|
80
80
|
|
|
81
81
|
## See also
|
|
82
82
|
|
|
83
|
-
- [`agents/settings/policies/media/README.md`](../../agents/settings/policies/media/README.md) — full enforcement-model contract.
|
|
84
|
-
- [`ask-when-uncertain`](ask-when-uncertain.md) — single-question refusal-path discipline every policy depends on.
|
|
85
|
-
- [`docs/contracts/write-engine.md`](../docs/contracts/write-engine.md) — prose-disclosure precedent extended to media by [`disclosure.md`](../../agents/settings/policies/media/disclosure.md).
|
|
83
|
+
- [`agents/settings/policies/media/README.md`](../../agents/settings/policies/media/README.md) — the full enforcement-model contract.
|
|
84
|
+
- [`ask-when-uncertain`](ask-when-uncertain.md) — the single-question refusal-path discipline every policy depends on.
|
|
85
|
+
- [`docs/contracts/write-engine.md`](../docs/contracts/write-engine.md) — the prose-disclosure precedent extended to media by [`disclosure.md`](../../agents/settings/policies/media/disclosure.md).
|
|
@@ -30,23 +30,41 @@ WRONG-SINGER-ON-WRONG-LINE IS A RENDER-MONEY-BURNING FAILURE.
|
|
|
30
30
|
MAP → SIGN-OFF → RENDER. NO BLIND BATCHES.
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
When generating audio-synced video (lip-sync, beat-aligned cuts, music
|
|
34
|
+
videos), the source of truth for **timing** and **who-sings-what** is the
|
|
35
|
+
**actual audio artifact** — transcribed to timestamped lines with a
|
|
36
|
+
singer per segment. A creative skeleton (story / Drehbuch) encodes
|
|
37
|
+
*intent*, not the *delivered* audio; a guessed stretch factor makes it
|
|
38
|
+
worse. Lip-sync amplifies every mismatch — the wrong mouth on the wrong
|
|
39
|
+
words is instantly, glaringly wrong, and the render already cost money.
|
|
34
40
|
|
|
35
41
|
## What this requires
|
|
36
42
|
|
|
37
|
-
1. **Transcribe the real audio** → timestamped lines (OpenAI
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
+
1. **Transcribe the real audio** → timestamped lines (OpenAI
|
|
44
|
+
`/v1/audio/transcriptions` or whisper). The probe gives duration; the
|
|
45
|
+
transcript gives structure. Build `<project>/vocal-map.json`:
|
|
46
|
+
`[{start, end, text, singer}]`.
|
|
47
|
+
2. **Label singers onto the transcribed timeline**, never the reverse. A
|
|
48
|
+
who-sings doc only *labels* lines; it never *defines* the timeline.
|
|
49
|
+
3. **Align cuts to real lyrical/musical phrases** — not arbitrary
|
|
50
|
+
fixed-length windows.
|
|
51
|
+
4. **Each vocal line lip-syncs to its OWN singer.** Never cross-assign one
|
|
52
|
+
character's mouth onto another's part.
|
|
53
|
+
5. **Sign-off gate** — surface the vocal map (timestamp → line → singer →
|
|
54
|
+
shot) for explicit operator approval **before** any paid render.
|
|
55
|
+
6. **Lip-sync sparingly** — only where a frontal close-up of the correct
|
|
56
|
+
singer supports it; model lip-sync on singing is imperfect, so use
|
|
57
|
+
cinematic motion (dop) for the rest.
|
|
43
58
|
|
|
44
59
|
## Failure modes
|
|
45
60
|
|
|
46
|
-
-
|
|
47
|
-
|
|
48
|
-
-
|
|
49
|
-
|
|
61
|
+
- Using a stretched `story.md` as the singer/timing source → one character
|
|
62
|
+
ends up mouthing another's lines (the canonical odins-beard failure).
|
|
63
|
+
- Chunking the song into fixed 5s windows that land off-phrase → jarring
|
|
64
|
+
cuts + weird mouth motion.
|
|
65
|
+
- Firing a multi-clip render batch before the vocal map is approved →
|
|
66
|
+
budget burned on output that must be thrown away.
|
|
67
|
+
- Trusting a guessed time-stretch factor to "match" the song length.
|
|
50
68
|
|
|
51
69
|
## See also
|
|
52
70
|
|
|
@@ -9,7 +9,7 @@ packs: [meta]
|
|
|
9
9
|
|
|
10
10
|
# No Cheap Questions
|
|
11
11
|
|
|
12
|
-
Cheap = context answers it, an option breaches an Iron Law, choices differ only in sequencing/format, or one
|
|
12
|
+
Cheap = context answers it, an option breaches an Iron Law, choices differ only in sequencing/format, or one dominates. Mode-independent; autonomy never lifts the floor.
|
|
13
13
|
|
|
14
14
|
## The Iron Laws
|
|
15
15
|
|
|
@@ -19,7 +19,7 @@ NEVER OFFER AN IRON-LAW-VIOLATING OPTION.
|
|
|
19
19
|
NEVER NUMBER CHOICES WITHOUT A REAL TRADE-OFF.
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
Cheap-class catalog + IL 3 (no
|
|
22
|
+
Cheap-class catalog + IL 3 (no state-assuming options): [`cheap-question-mechanics`](../contexts/execution/cheap-question-mechanics.md).
|
|
23
23
|
|
|
24
24
|
## Iron Law 4 — No Continuation Prompts Under Autonomous Mandate
|
|
25
25
|
|
|
@@ -39,7 +39,7 @@ USER AUTHORIZES X ("COMMIT" / "PUSH" / "OPEN PR" / "DEPLOY")
|
|
|
39
39
|
"DO THE PREREQ" vs "SKIP AND BREAK THE GATE".
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
-
Prereq catalog +
|
|
42
|
+
Prereq catalog + halts: [`cheap-question-mechanics`](../contexts/execution/cheap-question-mechanics.md).
|
|
43
43
|
|
|
44
44
|
## Iron Law 6 — Destination Already Stated, Never Re-Ask
|
|
45
45
|
|
|
@@ -48,7 +48,7 @@ USER NAMED THE DESTINATION → DO NOT RE-ASK.
|
|
|
48
48
|
NO BRANCH-BASE INVENTORY, NO "WHICH BRANCH?", NO "NEW PR?".
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
Triggers + scope-control
|
|
51
|
+
Triggers + scope-control interplay: [`cheap-question-mechanics`](../contexts/execution/cheap-question-mechanics.md).
|
|
52
52
|
|
|
53
53
|
## Pre-Send Self-Check — MANDATORY before every question
|
|
54
54
|
|
|
@@ -65,8 +65,8 @@ Silent, before any numbered-options block. Any "yes" → don't ask:
|
|
|
65
65
|
9. Prereq for user-authorized action? IL 5, execute silently.
|
|
66
66
|
10. Destination (branch / PR) already named? IL 6, never re-ask.
|
|
67
67
|
11. Cleanup of gitignored / auto-pruned / TTL-managed artefact? Self-managing — state inline, never offer.
|
|
68
|
-
12. Numbered option
|
|
69
|
-
13. Commit authorized + asking "one commit or multiple?", "how should I split?", "which chunk first?"? Forbidden — `commit-policy § Always split into logical chunks`. Pick the split, state inline, execute.
|
|
70
|
-
14. Artifact just landed (roadmap / ADR / plan / pitch / ticket) + offering "ready to start Phase 1?", "begin execution?", or a `/roadmap:process-*` menu? Forbidden — `scope-control § Authoring vs. implementation` + `scope-mechanics § Post-artifact hard stop`. Authoring verbs never inherit execution authorization. Emit the hand-back line, stop the turn.
|
|
68
|
+
12. Numbered option carries a commit-message body, "message preview", or "Vorschlag falls Du committen willst"? Disguised commit ask — `commit-policy` violation, drop it.
|
|
69
|
+
13. Commit authorized + asking "one commit or multiple?", "how should I split?", "which chunk first?"? Forbidden — `commit-policy § Always split into logical chunks`. Pick the split, state it inline, execute.
|
|
70
|
+
14. Artifact just landed (roadmap / ADR / plan / pitch / ticket / design doc) + offering "ready to start Phase 1?", "begin execution?", or a `/roadmap:process-*` menu? Forbidden — `scope-control § Authoring vs. implementation` + `scope-mechanics § Post-artifact hard stop`. Authoring verbs never inherit execution authorization. Emit the hand-back line, stop the turn.
|
|
71
71
|
|
|
72
72
|
Pick the dominant path, state the assumption inline, hand back. Genuine ambiguity → [`ask-when-uncertain`](ask-when-uncertain.md). In doubt → ask: this rule narrows asking, never widens silence. When asking IS allowed: [`cheap-question-mechanics`](../contexts/execution/cheap-question-mechanics.md).
|
|
@@ -29,24 +29,26 @@ EVERY EMOJI USED. NO LEGEND → NO EMOJI.
|
|
|
29
29
|
EXCEPTION: USER EXPLICITLY ASKED FOR IT THIS TURN.
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
Decorative = visual flair, ranking, mood, "look how
|
|
32
|
+
Decorative = added for visual flair, ranking, mood, or "look how
|
|
33
|
+
fancy". Functional emojis below are not decorative and stay allowed.
|
|
33
34
|
|
|
34
35
|
## Surfaces — what this gates
|
|
35
36
|
|
|
36
|
-
Always blocked (
|
|
37
|
+
Always blocked (title surfaces + free-standing comment threads):
|
|
37
38
|
|
|
38
39
|
- PR titles (`gh pr create --title`, `octokit.pulls.create`, PATCH).
|
|
39
40
|
- Issue titles (`gh issue create`, `octokit.issues.create`, PATCH).
|
|
40
|
-
- Commit subject (first line of `git commit -m` / message file).
|
|
41
|
+
- Commit subject line (first line of `git commit -m` / message file).
|
|
41
42
|
- Branch names.
|
|
42
43
|
- Standalone PR / issue comments (`gh pr comment`, `gh issue comment`,
|
|
43
44
|
`octokit.issues.createComment`) — covers everything `no-pr-progress-comments`
|
|
44
45
|
lets through (review-replies, user-invoked comment flows).
|
|
45
46
|
|
|
46
|
-
|
|
47
|
+
Conditional, body-only — emojis allowed when a legend in the same
|
|
48
|
+
artifact defines every emoji used (see below):
|
|
47
49
|
|
|
48
|
-
- PR / issue descriptions (body of create / PATCH payload).
|
|
49
|
-
- Commit body (lines
|
|
50
|
+
- PR / issue descriptions (body of the create / PATCH payload).
|
|
51
|
+
- Commit body (lines after the blank-line separator below the subject).
|
|
50
52
|
|
|
51
53
|
## Universal blacklist — forbidden even with a legend
|
|
52
54
|
|
|
@@ -54,28 +56,37 @@ Body-only, legend-gated:
|
|
|
54
56
|
🤖 🚀 🎉 ✨ 🔥 💡 👍 ❤️ 🤗 😊 (and skin-tone / variant forms)
|
|
55
57
|
```
|
|
56
58
|
|
|
57
|
-
"
|
|
59
|
+
These are the "look how fancy" / empathy classes from `direct-answers`.
|
|
60
|
+
Self-attribution (🤖) is the canonical violation pattern from the
|
|
61
|
+
punkpeye PR (#6865 title-emoji spam). No legend rescues them.
|
|
58
62
|
|
|
59
|
-
## Legend carve-out — when
|
|
63
|
+
## Legend carve-out — when decorative emojis ARE allowed in a body
|
|
60
64
|
|
|
61
|
-
|
|
65
|
+
Allowed only when ALL of the following hold for the same artifact:
|
|
62
66
|
|
|
63
|
-
1.
|
|
64
|
-
|
|
67
|
+
1. The body contains a `Legend:` (or `Legende:`) block on its own line
|
|
68
|
+
that defines every decorative emoji used elsewhere in the body.
|
|
69
|
+
2. The emojis carry **information** (language tag, OS marker, hosting
|
|
70
|
+
class) — they are not pure decoration. Compare punkpeye-#6865 body:
|
|
65
71
|
`📇 TypeScript · ☁️ Cloud · 🏠 Local · 🍎 macOS · 🪟 Windows · 🐧 Linux`.
|
|
66
72
|
3. No universal-blacklist emoji appears (above list always wins).
|
|
67
73
|
|
|
68
74
|
Body emojis without a legend → strip before posting / committing.
|
|
69
75
|
|
|
70
|
-
## Whitelist — always allowed, no legend
|
|
76
|
+
## Whitelist — always allowed, no legend needed
|
|
71
77
|
|
|
72
|
-
- CLI / agent-status markers: `❌` `✅` `⚠️` (literal status).
|
|
78
|
+
- CLI / agent-status markers: `❌` `✅` `⚠️` (carry literal status).
|
|
73
79
|
- Mode markers from `role-mode-adherence`.
|
|
74
|
-
- Roadmap checkbox glyphs (`[x]` `[~]` `[-]`)
|
|
80
|
+
- Roadmap checkbox glyphs (`[x]` `[~]` `[-]`) inside fenced code or
|
|
81
|
+
quoted roadmap excerpts — these are not emojis, no carve-out needed.
|
|
75
82
|
|
|
76
83
|
## Server-side re-injection
|
|
77
84
|
|
|
78
|
-
|
|
85
|
+
If the host AI client or tool wrapper re-injects 🤖 / 🎉 into a title
|
|
86
|
+
or comment after creation (analog to the `Pull Request opened by …`
|
|
87
|
+
injection covered in `no-attribution-footers`), the same mitigation
|
|
88
|
+
applies: re-fetch after create, regex-strip the offending characters,
|
|
89
|
+
PATCH if changed, re-fetch to verify.
|
|
79
90
|
|
|
80
91
|
## Failure modes — what counts as a violation
|
|
81
92
|
|
|
@@ -83,7 +94,7 @@ Host AI client or tool wrapper re-injects 🤖 / 🎉 into a title or comment af
|
|
|
83
94
|
- PR title `🤖 Update dependencies` — title-emoji spam (punkpeye #6865).
|
|
84
95
|
- Comment body `🎉 All checks green now!` — decorative comment.
|
|
85
96
|
- PR body with `Status: 🟢 Ready` — no legend, no carve-out.
|
|
86
|
-
- Branch `feat/🔥-new-thing` — emoji in ref name.
|
|
97
|
+
- Branch named `feat/🔥-new-thing` — emoji in ref name.
|
|
87
98
|
- Body legend present but body also uses 🤖 — universal blacklist wins.
|
|
88
99
|
|
|
89
100
|
## See also
|
|
@@ -95,5 +106,5 @@ Host AI client or tool wrapper re-injects 🤖 / 🎉 into a title or comment af
|
|
|
95
106
|
that does get posted.
|
|
96
107
|
- [`commit-conventions`](commit-conventions.md) — Conventional Commits
|
|
97
108
|
format; this rule narrows the allowed character set in the subject.
|
|
98
|
-
- [`direct-answers`](direct-answers.md) § Emoji Scope — chat-reply
|
|
99
|
-
same emoji classes, different surface.
|
|
109
|
+
- [`direct-answers`](direct-answers.md) § Emoji Scope — the chat-reply
|
|
110
|
+
analog; same emoji classes, different surface.
|
|
@@ -23,22 +23,22 @@ NO AUTONOMY SETTING, NO ROADMAP STEP, NO STANDING INSTRUCTION,
|
|
|
23
23
|
NO "JUST KEEP GOING" CAN BYPASS IT.
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
Triggers below require explicit user confirmation **on this turn** — not
|
|
26
|
+
Triggers below require explicit user confirmation **on this turn** — not a previous turn, not a roadmap, not a standing autonomy directive (anchor: [`autonomous-execution`](autonomous-execution.md)):
|
|
27
27
|
|
|
28
28
|
| Trigger | Examples |
|
|
29
29
|
|---|---|
|
|
30
30
|
| **Production-branch merge** | `main`, `master`, `prod`, `production`, `release/*`, or any project-marked deployment trunk |
|
|
31
|
-
| **Commit on a production branch** | any `git commit` while `HEAD` is on a prod trunk. **Verify branch before every commit** — `main` is opt-in only, never inferred from a prior turn or a merged PR that left HEAD
|
|
31
|
+
| **Commit on a production branch** | any `git commit` while `HEAD` is on a prod trunk. **Verify branch before every commit** — `main` is opt-in only, never inferred from a prior turn or a merged PR that left HEAD there |
|
|
32
32
|
| **Deploy / release** | prod `terraform apply` / `kubectl apply`, deploy scripts, release commands, CI-deploying tag pushes |
|
|
33
33
|
| **Push to remote** | any `git push` (also covered by [`scope-control`](scope-control.md), restated so the floor never weakens) |
|
|
34
34
|
| **Production data / infra** | prod DB writes / migrations, prod config, secrets rotation, IAM / role / policy, DNS, anything in a `prod`-scoped path or pipeline |
|
|
35
35
|
| **Whimsical / unscoped bulk deletion** | `rm -rf <dir>`, `git rm -r`, glob deletes, `DROP TABLE`, `TRUNCATE`, `git reset --hard` past unpushed work — when **not required** by the task (task-aligned WIP deletions allowed, below) |
|
|
36
36
|
| **Commit containing bulk deletions or infra changes** | diff removes a directory, deletes ≥5 unrelated files, or touches Terraform/Pulumi/k8s/Ansible/cloud-config — surface the diff + confirm even when [`commit-policy`](commit-policy.md) authorizes |
|
|
37
|
-
| **Irreversible external action** | **send** / **publish** / **post** / **purchase** / **submit** —
|
|
37
|
+
| **Irreversible external action** | **send** / **publish** / **post** / **purchase** / **submit** — outbound, externally-visible, or money-moving actions the user cannot un-see: email/message, publish or post content, submit a form, place an order or payment. Also gated by [`scope-control`](scope-control.md) external-comms; named here so the Hard Floor lists the actual buttons |
|
|
38
38
|
|
|
39
39
|
Standing "just keep going" + next step crosses the floor → STOP, surface it (one numbered-options block per [`user-interaction`](user-interaction.md)), wait.
|
|
40
40
|
|
|
41
|
-
**Never act while asking.**
|
|
41
|
+
**Never act while asking.** Ask and action are strictly sequential: surface the confirmation, then WAIT. Never fire the action in the turn you ask — no do-then-ask race, no "I went ahead and…". **The approval names the exact object**, not a category: a download names filename + size + source; a purchase names amount + card-last4 + total; a send names recipient + subject. Shape per [`user-interaction`](user-interaction.md) numbered-options.
|
|
42
42
|
|
|
43
43
|
## Not in scope — deterministic regeneration
|
|
44
44
|
|
|
@@ -46,7 +46,7 @@ Output regenerated from a tracked source (condensation, code-gen, formatters, lo
|
|
|
46
46
|
|
|
47
47
|
## Bulk deletions during WIP — allowed if task-connected
|
|
48
48
|
|
|
49
|
-
Deletions inside an **active, user-stated task** are allowed in the working tree — the Hard Floor moves to the **commit** (row 6). Whimsical / drive-by / unnamed-scope deletions still trip the floor on the edit.
|
|
49
|
+
Deletions inside an **active, user-stated task** are allowed in the working tree — the Hard Floor moves to the **commit** (row 6). Whimsical / drive-by / unnamed-scope deletions still trip the floor on the edit. Lists: [`destructive-mechanics`](../contexts/authority/destructive-mechanics.md).
|
|
50
50
|
|
|
51
51
|
## Failure modes
|
|
52
52
|
|
|
@@ -59,21 +59,3 @@ Applies on every surface — web, Skills API, any cloud agent. No "cloud overrid
|
|
|
59
59
|
## See also
|
|
60
60
|
|
|
61
61
|
[`autonomous-execution`](autonomous-execution.md) · [`commit-policy`](commit-policy.md) · [`scope-control`](scope-control.md) · [`user-interaction`](user-interaction.md).
|
|
62
|
-
|
|
63
|
-
## Enforcement — stated honestly (`enforced_by: none`)
|
|
64
|
-
|
|
65
|
-
This floor has **no mechanical backstop**, and pretending otherwise would be the
|
|
66
|
-
failure it exists to prevent. No script can enforce "ask before you deploy" — the
|
|
67
|
-
obligation is to pause and surface, and the only thing that observes it is the
|
|
68
|
-
human in the loop. Adjacent hooks (`block-no-verify`) guard hook-bypass, not
|
|
69
|
-
destructive intent; claiming them here would inflate coverage, so they are not
|
|
70
|
-
claimed.
|
|
71
|
-
|
|
72
|
-
So this rule is load-bearing **and** unenforced. It is carried by the model
|
|
73
|
-
honouring it — which is why it is a kernel rule, why it is short, and why it is
|
|
74
|
-
counted as uncovered in the enforcement-coverage report rather than excluded
|
|
75
|
-
from it.
|
|
76
|
-
|
|
77
|
-
## See also
|
|
78
|
-
|
|
79
|
-
[`autonomous-execution`](autonomous-execution.md) · [`commit-policy`](commit-policy.md) · [`scope-control`](scope-control.md) · [`user-interaction`](user-interaction.md).
|
|
@@ -14,10 +14,20 @@ enforced_by:
|
|
|
14
14
|
|
|
15
15
|
# Onboarding Gate
|
|
16
16
|
|
|
17
|
-
**Iron Law.** First turn of project: if `onboarding.onboarded` is
|
|
17
|
+
**Iron Law.** First turn of a project: if `onboarding.onboarded` is
|
|
18
|
+
false in `.agent-settings.yml`, instruct the developer to run
|
|
19
|
+
`agent-config setup` in their terminal before executing any other
|
|
20
|
+
request. The wizard writes `onboarding.onboarded: true` on `Finish`,
|
|
21
|
+
which silences this rule for subsequent turns.
|
|
18
22
|
|
|
19
|
-
`agent-config setup` boots local TypeScript server (Fastify on
|
|
23
|
+
`agent-config setup` boots the local TypeScript server (Fastify on
|
|
24
|
+
`127.0.0.1`) and opens the browser wizard at `/#/wizard`. The chat
|
|
25
|
+
side has no equivalent skill — the legacy `/onboard` skill and its
|
|
26
|
+
`onboard:finish` bridge have been retired; the browser wizard is the
|
|
27
|
+
sole onboarding surface.
|
|
20
28
|
|
|
21
|
-
Cloud surfaces without settings file stay inert: rule does not
|
|
29
|
+
Cloud surfaces without a settings file stay inert: the rule does not
|
|
30
|
+
fire when `.agent-settings.yml` is absent, so headless / read-only
|
|
31
|
+
contexts (Cloudflare MCP, doc preview, CI) never see the prompt.
|
|
22
32
|
|
|
23
|
-
Trigger-set above activates routing on demand, independent of the discipline profile (ADR-110).
|
|
33
|
+
Trigger-set above activates this routing on demand, independent of the discipline profile (ADR-110).
|
|
@@ -3,7 +3,7 @@ type: "auto"
|
|
|
3
3
|
tier: "2a"
|
|
4
4
|
description: "Creating/editing/proposing personas — enforce per-domain cap (≤ 2 specialists), ≥ 1 skill citation, deprecation path"
|
|
5
5
|
triggers:
|
|
6
|
-
- path_prefix: "
|
|
6
|
+
- path_prefix: "src/agent-src/personas/"
|
|
7
7
|
- path_prefix: "dist/agent-src/personas/"
|
|
8
8
|
- keyword: "persona"
|
|
9
9
|
- keyword: "personas"
|
|
@@ -46,6 +46,6 @@ Trigger-set above activates this routing on demand, independent of the disciplin
|
|
|
46
46
|
## See also
|
|
47
47
|
|
|
48
48
|
- [`docs/contracts/persona-schema.md`](../docs/contracts/persona-schema.md) — schema lock, tiers, sections, size budgets, linter enforcement surface, and the migrated governance checks (§ 8).
|
|
49
|
-
- [`docs/personas.md`](
|
|
49
|
+
- [`docs/personas.md`](../../docs/personas.md) — active persona catalog, citation map, ownership column.
|
|
50
50
|
- [`ai-council`](../skills/ai-council/SKILL.md) — neutral second-opinion mechanism used for merge / deprecation decisions.
|
|
51
51
|
- [`skill-quality`](skill-quality.md) — sibling discipline rule for skill files.
|