@event4u/agent-config 3.3.0 → 4.2.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/.agent-src/README.md +2 -2
- package/.agent-src/commands/agent-handoff.md +31 -2
- package/.agent-src/commands/agent-status.md +5 -5
- package/.agent-src/commands/agents/audit.md +8 -8
- package/.agent-src/commands/agents/init.md +25 -1
- package/.agent-src/commands/agents/optimize.md +3 -3
- package/.agent-src/commands/agents/user.md +1 -1
- package/.agent-src/commands/agents.md +1 -1
- package/.agent-src/commands/analyze-reference-repo.md +1 -1
- package/.agent-src/commands/check-current-md.md +8 -8
- package/.agent-src/commands/{compress.md → condense.md} +55 -55
- package/.agent-src/commands/context/create.md +7 -4
- package/.agent-src/commands/context/refactor.md +3 -1
- package/.agent-src/commands/feature/dev.md +1 -1
- package/.agent-src/commands/feature/explore.md +1 -1
- package/.agent-src/commands/feature/plan.md +10 -8
- package/.agent-src/commands/feature/refactor.md +3 -1
- package/.agent-src/commands/feature/roadmap.md +7 -4
- package/.agent-src/commands/fix/portability.md +3 -3
- package/.agent-src/commands/fix/refs.md +4 -4
- package/.agent-src/commands/ghostwriter.md +2 -2
- package/.agent-src/commands/memory/learn-low-impact.md +3 -3
- package/.agent-src/commands/module/explore.md +34 -8
- package/.agent-src/commands/optimize/agents-dir.md +9 -7
- package/.agent-src/commands/optimize/augmentignore.md +2 -2
- package/.agent-src/commands/optimize/skills.md +9 -9
- package/.agent-src/commands/post-as.md +1 -1
- package/.agent-src/commands/project-analyze.md +2 -2
- package/.agent-src/commands/project-health.md +3 -2
- package/.agent-src/commands/research/deep.md +1 -1
- package/.agent-src/commands/research/report.md +1 -1
- package/.agent-src/commands/research.md +1 -1
- package/.agent-src/commands/roadmap/ai-council.md +1 -1
- package/.agent-src/commands/roadmap/create.md +9 -4
- package/.agent-src/commands/rule-compliance-audit.md +1 -1
- package/.agent-src/commands/upstream-contribute.md +14 -14
- package/.agent-src/commands/video/from-script.md +1 -1
- package/.agent-src/commands/video/scene.md +1 -1
- package/.agent-src/commands/video/stitch.md +1 -1
- package/.agent-src/commands/video/storyboard.md +1 -1
- package/.agent-src/commands/video.md +1 -1
- package/.agent-src/contexts/augment-infrastructure.md +1 -1
- package/.agent-src/contexts/authority/commit-mechanics.md +15 -0
- package/.agent-src/contexts/authority/kernel-rule-edits.md +3 -3
- package/.agent-src/contexts/authority/scope-mechanics.md +1 -1
- package/.agent-src/contexts/communication/rules-auto/augment-source-of-truth-mechanics.md +28 -28
- package/.agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +4 -4
- package/.agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +2 -2
- package/.agent-src/contexts/contracts/artifact-engagement-flow.md +6 -6
- package/.agent-src/contexts/contracts/command-suggestion-flow.md +3 -3
- package/.agent-src/contexts/contracts/emergency-triage-block.md +4 -4
- package/.agent-src/contexts/contracts/frugality-charter.md +3 -3
- package/.agent-src/contexts/documentation-hierarchy.md +14 -7
- package/.agent-src/contexts/execution/autonomy-examples.md +1 -1
- package/.agent-src/contexts/execution/cheap-question-mechanics.md +39 -2
- package/.agent-src/contexts/execution/roadmap-process-loop.md +28 -5
- package/.agent-src/contexts/override-system.md +5 -5
- package/.agent-src/ghostwriter/fictional-fixture-v1.md +1 -1
- package/.agent-src/personas/advisors/first-principles.md +1 -1
- package/.agent-src/personas/hollywood-director.md +1 -1
- package/.agent-src/rules/architecture.md +5 -1
- package/.agent-src/rules/augment-edit-discipline.md +5 -5
- package/.agent-src/rules/augment-source-of-truth.md +15 -15
- package/.agent-src/rules/commit-conventions.md +1 -1
- package/.agent-src/rules/commit-policy.md +10 -0
- package/.agent-src/rules/domain-adoption-policy.md +3 -3
- package/.agent-src/rules/fast-path-marker-visibility.md +3 -3
- package/.agent-src/rules/finance-safety-floor.md +1 -1
- package/.agent-src/rules/framework-neutrality-in-generic-skills.md +8 -8
- package/.agent-src/rules/git-history-discipline.md +1 -1
- package/.agent-src/rules/improve-before-implement.md +2 -2
- package/.agent-src/rules/language-and-tone.md +2 -2
- package/.agent-src/rules/media-governance-routing.md +5 -5
- package/.agent-src/rules/no-attribution-footers.md +1 -0
- package/.agent-src/rules/no-cheap-questions.md +3 -0
- package/.agent-src/rules/no-decorative-emojis-in-git-surfaces.md +111 -0
- package/.agent-src/rules/no-pr-progress-comments.md +118 -0
- package/.agent-src/rules/no-roadmap-references.md +3 -3
- package/.agent-src/rules/non-destructive-by-default.md +1 -1
- package/.agent-src/rules/persona-governance.md +3 -3
- package/.agent-src/rules/preservation-guard.md +15 -15
- package/.agent-src/rules/roadmap-ci-steps-policy.md +7 -3
- package/.agent-src/rules/rule-type-governance.md +1 -1
- package/.agent-src/rules/skill-quality.md +1 -1
- package/.agent-src/rules/{caveman-speak.md → telegraph-speak.md} +15 -15
- package/.agent-src/rules/token-optimizer-maintenance.md +6 -6
- package/.agent-src/skills/agent-docs-writing/SKILL.md +17 -11
- package/.agent-src/skills/agents-md-thin-root/SKILL.md +9 -9
- package/.agent-src/skills/check-refs/SKILL.md +2 -2
- package/.agent-src/skills/code-refactoring/SKILL.md +2 -2
- package/.agent-src/skills/command-writing/SKILL.md +19 -19
- package/.agent-src/skills/comp-banding/SKILL.md +1 -1
- package/.agent-src/skills/condense-memory/SKILL.md +131 -0
- package/.agent-src/skills/context-authoring/SKILL.md +2 -2
- package/.agent-src/skills/context-document/SKILL.md +5 -3
- package/.agent-src/skills/copilot-agents-optimization/SKILL.md +3 -3
- package/.agent-src/skills/description-assist/SKILL.md +2 -2
- package/.agent-src/skills/git-workflow/SKILL.md +1 -1
- package/.agent-src/skills/guideline-writing/SKILL.md +5 -5
- package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +4 -4
- package/.agent-src/skills/lint-skills/SKILL.md +3 -3
- package/.agent-src/skills/md-language-check/SKILL.md +2 -2
- package/.agent-src/skills/module-detect-on-the-fly/SKILL.md +138 -0
- package/.agent-src/skills/module-management/SKILL.md +166 -94
- package/.agent-src/skills/override-management/SKILL.md +1 -1
- package/.agent-src/skills/persona-writing/SKILL.md +5 -5
- package/.agent-src/skills/positioning-strategy/SKILL.md +1 -1
- package/.agent-src/skills/project-docs/SKILL.md +6 -4
- package/.agent-src/skills/readme-reviewer/SKILL.md +2 -2
- package/.agent-src/skills/roadmap-management/SKILL.md +13 -1
- package/.agent-src/skills/roadmap-writing/SKILL.md +4 -2
- package/.agent-src/skills/rule-refactor/SKILL.md +5 -5
- package/.agent-src/skills/rule-writing/SKILL.md +18 -18
- package/.agent-src/skills/script-writing/SKILL.md +1 -1
- package/.agent-src/skills/skill-improvement-pipeline/SKILL.md +6 -6
- package/.agent-src/skills/skill-management/SKILL.md +21 -21
- package/.agent-src/skills/skill-reviewer/SKILL.md +2 -2
- package/.agent-src/skills/skill-writing/SKILL.md +8 -8
- package/.agent-src/skills/skill-writing/evals/triggers.json +1 -1
- package/.agent-src/skills/token-optimizer/SKILL.md +4 -4
- package/.agent-src/skills/unit-economics-modeling/SKILL.md +1 -1
- package/.agent-src/skills/upstream-contribute/SKILL.md +17 -17
- package/.agent-src/templates/AGENTS.md +1 -0
- package/.agent-src/templates/agent-settings.md +24 -13
- package/.agent-src/templates/agents/agent-project-settings.example.yml +61 -2
- package/.agent-src/templates/command.md +5 -5
- package/.agent-src/templates/contexts.md +1 -1
- package/.agent-src/templates/copilot-instructions.md +8 -8
- package/.agent-src/templates/features.md +1 -1
- package/.agent-src/templates/hooks/pre-commit-frontmatter +2 -2
- package/.agent-src/templates/hooks/pre-commit-roadmap-progress +3 -3
- package/.agent-src/templates/persona.md +2 -2
- package/.agent-src/templates/roadmaps.md +1 -1
- package/.agent-src/templates/rule.md +13 -13
- package/.agent-src/templates/scripts/memory_lookup.py +1 -1
- package/.agent-src/templates/scripts/memory_status.py +2 -2
- package/.agent-src/templates/scripts/work_engine/_lib/agent_settings.py +195 -1
- package/.agent-src/templates/scripts/work_engine/orchestration.py +1 -1
- package/.agent-src/templates/skill-archive-note.md +5 -5
- package/.agent-src/templates/skill.md +1 -1
- package/.claude-plugin/marketplace.json +4 -4
- package/AGENTS.md +16 -17
- package/CHANGELOG.md +216 -3
- package/CONTRIBUTING.md +31 -12
- package/README.md +21 -12
- package/config/agent-settings.template.yml +22 -2
- package/config/discovery/unassigned-artefacts.yml +24 -24
- package/config/profiles/full.ini +1 -1
- package/dist/cli/agent-config.js +52 -3
- package/dist/cli/agent-config.js.map +1 -1
- package/dist/cli/commands/uiServe.js +9 -0
- package/dist/cli/commands/uiServe.js.map +1 -1
- package/dist/cli/registry.js +2 -1
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +649 -606
- 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 +439 -437
- package/dist/discovery/trust-report.md +5 -5
- package/dist/discovery/workspaces.json +450 -448
- package/dist/install/atomic.js +92 -0
- package/dist/install/atomic.js.map +1 -0
- package/dist/install/conflict.js +196 -0
- package/dist/install/conflict.js.map +1 -0
- package/dist/install/detect.js +218 -0
- package/dist/install/detect.js.map +1 -0
- package/dist/install/paths.js +82 -0
- package/dist/install/paths.js.map +1 -0
- package/dist/install/plan.js +157 -0
- package/dist/install/plan.js.map +1 -0
- package/dist/install/txlog.js +140 -0
- package/dist/install/txlog.js.map +1 -0
- package/dist/install/types.js +19 -0
- package/dist/install/types.js.map +1 -0
- package/dist/install/wizard-plan.js +184 -0
- package/dist/install/wizard-plan.js.map +1 -0
- package/dist/mcp/registry-manifest.json +4 -4
- package/dist/router.json +67 -19
- package/dist/server/app.js +6 -0
- package/dist/server/app.js.map +1 -1
- package/dist/server/routes/install.js +358 -0
- package/dist/server/routes/install.js.map +1 -0
- package/dist/server/routes/wizard.js +468 -32
- package/dist/server/routes/wizard.js.map +1 -1
- package/dist/server/routes/workspace.js +396 -0
- package/dist/server/routes/workspace.js.map +1 -0
- package/dist/server/schemas/settings.js +5 -3
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/ui/assets/index-BDAhhpDV.js +40 -0
- package/dist/ui/assets/index-BDAhhpDV.js.map +1 -0
- package/dist/ui/assets/index-BXZILUxe.css +1 -0
- package/dist/ui/index.html +2 -2
- package/docs/MIGRATION.md +1 -1
- package/docs/adrs/cost/0001-hard-stop-hook.md +1 -1
- package/docs/adrs/router/0001-three-tier-routing.md +4 -4
- package/docs/adrs/schema/0001-json-schema-frontmatter.md +1 -1
- package/docs/adrs/smoke/0001-per-tier-smoke-scripts.md +4 -4
- package/docs/adrs/{caveman → telegraph}/0001-default-off-until-bench.md +9 -9
- package/docs/adrs/telegraph/README.md +9 -0
- package/docs/architecture/augment-projection.md +4 -4
- package/docs/architecture/claude-bundle.md +1 -1
- package/docs/architecture/current-onboard-baseline.md +3 -3
- package/docs/architecture/multi-tool-projection.md +10 -10
- package/docs/architecture/source-projection.md +27 -27
- package/docs/architecture.md +19 -15
- package/docs/archive/CHANGELOG-pre-2.11.0.md +2 -2
- package/docs/archive/CHANGELOG-pre-2.15.0.md +3 -3
- package/docs/archive/CHANGELOG-pre-2.16.0.md +1 -1
- package/docs/archive/CHANGELOG-pre-2.2.0.md +70 -70
- package/docs/archive/CHANGELOG-pre-2.20.0.md +2 -2
- package/docs/archive/CHANGELOG-pre-2.25.0.md +15 -15
- package/docs/archive/CHANGELOG-pre-3.0.0.md +4 -4
- package/docs/archive/CHANGELOG-pre-3.1.0.md +2 -2
- package/docs/archive/CHANGELOG-pre-3.2.0.md +3 -3
- package/docs/benchmark.md +65 -0
- package/docs/benchmarks.md +16 -16
- package/docs/catalog.md +17 -15
- package/docs/contracts/CHANGELOG-conventions.md +1 -1
- package/docs/contracts/STABILITY.md +2 -2
- package/docs/contracts/adoption-signal-floor.md +110 -0
- package/docs/contracts/adr-chat-history-split.md +4 -4
- package/docs/contracts/adr-command-suggestion.md +4 -4
- package/docs/contracts/adr-gtm-context-spine.md +1 -1
- package/docs/contracts/adr-implement-ticket-runtime.md +4 -4
- package/docs/contracts/adr-install-user-type-axis.md +1 -1
- package/docs/contracts/adr-layout.md +2 -2
- package/docs/contracts/adr-product-ui-track.md +10 -10
- package/docs/contracts/adr-user-types-axis.md +3 -3
- package/docs/contracts/adr-wing4-context-spine.md +1 -1
- package/docs/contracts/agent-memory-contract.md +3 -3
- package/docs/contracts/agents-md-tech-stack.md +2 -2
- package/docs/contracts/ai-council-config.md +2 -2
- package/docs/contracts/at-rest-encryption.md +4 -0
- package/docs/contracts/audit-log-v1.md +1 -1
- package/docs/contracts/benchmark-ab-contract.md +101 -0
- package/docs/contracts/benchmark-corpus-spec.md +1 -1
- package/docs/contracts/branch-protection-policy.md +98 -0
- package/docs/contracts/ci-cost-budget.md +106 -0
- package/docs/contracts/ci-green-floor.md +141 -0
- package/docs/contracts/command-clusters.md +6 -6
- package/docs/contracts/command-surface-tiers.md +2 -2
- package/docs/contracts/command-taxonomy.md +2 -2
- package/docs/contracts/{compression-default-kill-criterion.md → condensation-default-kill-criterion.md} +29 -29
- package/docs/contracts/config-presets.md +1 -1
- package/docs/contracts/context-paths.md +3 -3
- package/docs/contracts/context-spine.md +1 -1
- package/docs/contracts/cost-summary-schema.md +12 -12
- package/docs/contracts/cross-wing-handoff.md +4 -4
- package/docs/contracts/daily-workspace.md +4 -0
- package/docs/contracts/decision-trace-v1.md +2 -2
- package/docs/contracts/discovery-manifest.md +4 -4
- package/docs/contracts/explain-modes.md +4 -0
- package/docs/contracts/file-ownership-matrix.json +3493 -3318
- package/docs/contracts/file-ownership-matrix.md +3 -3
- package/docs/contracts/frontmatter-contract.md +4 -4
- package/docs/contracts/ghostwriter-schema.md +3 -3
- package/docs/contracts/gui-wizard.md +110 -97
- package/docs/contracts/harness-expectations.md +123 -0
- package/docs/contracts/host-agent-protocol.md +4 -0
- package/docs/contracts/implement-ticket-flow.md +9 -9
- package/docs/contracts/install-scopes.md +77 -0
- package/docs/contracts/iron-law-overrides.txt +1 -1
- package/docs/contracts/kernel-membership.md +26 -26
- package/docs/contracts/linear-ai-rules-inclusion.md +1 -1
- package/docs/contracts/linter-structural-model.md +2 -2
- package/docs/contracts/load-context-budget-model.md +4 -4
- package/docs/contracts/load-context-schema.md +13 -13
- package/docs/contracts/local-analytics.md +4 -0
- package/docs/contracts/local-knowledge-ingestion.md +1 -1
- package/docs/contracts/mcp-cloud-scope.md +2 -2
- package/docs/contracts/mcp-phase-1-scope.md +3 -3
- package/docs/contracts/measurement-baseline.md +5 -5
- package/docs/contracts/mental-models.md +30 -30
- package/docs/contracts/multi-tool-projection-fidelity.md +4 -4
- package/docs/contracts/namespace.md +4 -4
- package/docs/contracts/orchestration-dsl-v1.md +7 -7
- package/docs/contracts/package-self-orientation.md +12 -12
- package/docs/contracts/persona-schema.md +6 -6
- package/docs/contracts/pilot/language-and-tone.md +1 -1
- package/docs/contracts/plain-language-surface.md +117 -0
- package/docs/contracts/profile-system.md +3 -3
- package/docs/contracts/release-pr-gating.md +103 -0
- package/docs/contracts/role-experience.md +3 -3
- package/docs/contracts/rule-classification.md +13 -13
- package/docs/contracts/rule-interactions.md +4 -4
- package/docs/contracts/rule-interactions.yml +30 -30
- package/docs/contracts/rule-priority-hierarchy.md +13 -13
- package/docs/contracts/rule-router.md +2 -2
- package/docs/contracts/safety-model.md +1 -1
- package/docs/contracts/skill-distribution-channels.md +61 -0
- package/docs/contracts/skill-domains.md +2 -2
- package/docs/contracts/smoke-contracts.md +5 -5
- package/docs/contracts/telegraph-telemetry.md +83 -0
- package/docs/contracts/trust-and-safety.md +5 -5
- package/docs/contracts/ui-stack-extension.md +7 -7
- package/docs/contracts/ui-track-flow.md +9 -9
- package/docs/contracts/user-type-schema.md +4 -4
- package/docs/contracts/workflow-packs.md +4 -4
- package/docs/contracts/workspace-documents.md +4 -0
- package/docs/customization.md +28 -8
- package/docs/decisions/ADR-001-kernel-swap-deferred.md +6 -6
- package/docs/decisions/ADR-002-kernel-bucket-overrides.md +11 -11
- package/docs/decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md +2 -2
- package/docs/decisions/ADR-004-rule-governance-pruning.md +4 -4
- package/docs/decisions/ADR-005-subagent-worktrees.md +7 -7
- package/docs/decisions/ADR-011-domain-pack-readiness.md +6 -6
- package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +3 -3
- package/docs/decisions/ADR-015-discovery-manifest-contract.md +3 -3
- package/docs/decisions/ADR-017-monorepo-physical-layout.md +10 -10
- package/docs/decisions/ADR-018-trust-and-safety-layer.md +6 -6
- package/docs/decisions/ADR-019-router-json-dist-location.md +2 -2
- package/docs/decisions/ADR-020-global-only-consumer-scope.md +2 -2
- package/docs/decisions/ADR-021-deployment-shape.md +3 -3
- package/docs/decisions/ADR-022-daily-workspace-decomposition.md +1 -1
- package/docs/decisions/ADR-027-changelog-machine-vs-manual.md +2 -2
- package/docs/decisions/ADR-028-root-layout.md +7 -7
- package/docs/decisions/ADR-029-multi-workspace-deferred.md +2 -2
- package/docs/decisions/ADR-rule-kernel-and-router.md +5 -5
- package/docs/deploy/connector-setup.md +2 -2
- package/docs/deploy/policy-cookbook.md +2 -2
- package/docs/deploy/team-deployment-posture.md +20 -0
- package/docs/development.md +17 -17
- package/docs/distribution/registries.md +32 -0
- package/docs/distribution/registry-submissions.md +85 -0
- package/docs/distribution/telemetry-schema.md +1 -1
- package/docs/getting-started-by-role.md +45 -3
- package/docs/getting-started.md +2 -2
- package/docs/guidelines/agent-infra/5w2h-analysis.md +3 -3
- package/docs/guidelines/agent-infra/ask-when-uncertain-demos.md +1 -1
- package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +3 -3
- package/docs/guidelines/agent-infra/carve-out-predicates.md +3 -3
- package/docs/guidelines/agent-infra/critical-thinking.md +4 -4
- package/docs/guidelines/agent-infra/direct-answers-demos.md +1 -1
- package/docs/guidelines/agent-infra/first-principles.md +2 -2
- package/docs/guidelines/agent-infra/inversion-thinking.md +5 -5
- package/docs/guidelines/agent-infra/layered-settings.md +56 -2
- package/docs/guidelines/agent-infra/mental-models.md +3 -3
- package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +2 -2
- package/docs/guidelines/agent-infra/rule-type-governance.md +1 -1
- package/docs/guidelines/agent-infra/scqa-framework.md +5 -5
- package/docs/guidelines/agent-infra/self-improvement-pipeline.md +2 -2
- package/docs/guidelines/agent-infra/six-hats.md +3 -3
- package/docs/guidelines/agent-infra/skill-quality-checklist.md +5 -5
- package/docs/guidelines/agent-infra/systems-thinking.md +1 -1
- package/docs/guidelines/agent-infra/verify-before-complete-demos.md +1 -1
- package/docs/guidelines/augment-portability-patterns.md +4 -4
- package/docs/guidelines/cross-role-handoff.md +2 -2
- package/docs/guidelines/php/php-coding-patterns.md +1 -1
- package/docs/guidelines/prompt-templates.md +6 -6
- package/docs/maintainers/dev-mode.md +1 -1
- package/docs/mcp.md +1 -1
- package/docs/parity/bench.json +3 -3
- package/docs/parity/ruflo.md +2 -2
- package/docs/profiles.md +11 -11
- package/docs/quality.md +11 -11
- package/docs/safety.md +3 -3
- package/docs/setup/mcp-client-config.md +1 -1
- package/docs/setup/mcp-r2-bootstrap.md +1 -1
- package/docs/setup/mcp-server-docker.md +3 -3
- package/docs/setup/per-ide/windsurf.md +1 -1
- package/docs/skills-catalog.md +8 -7
- package/docs/troubleshooting.md +1 -1
- package/docs/walkthroughs/daily-workspace-a11y.md +87 -0
- package/llms.txt +7 -6
- package/package.json +1 -1
- package/scripts/__pycache__/validate_frontmatter.cpython-312.pyc +0 -0
- package/scripts/_archive/README.md +2 -2
- package/scripts/_archive/_backfill_skill_domains.py +3 -3
- package/scripts/_archive/_bootstrap_tier_frontmatter.py +3 -3
- package/scripts/_archive/_p43_bodies.py +10 -10
- package/scripts/_archive/{_p43_compress.py → _p43_condense.py} +5 -5
- package/scripts/_archive/_p4_migrate.py +7 -7
- package/scripts/_archive/_phase2_shim_helper.py +1 -1
- package/scripts/_archive/_pilot_council_question.py +5 -5
- package/scripts/_cli/explain_last/inputs.py +1 -1
- package/scripts/_lib/__pycache__/__init__.cpython-312.pyc +0 -0
- package/scripts/_lib/__pycache__/agent_src.cpython-312.pyc +0 -0
- package/scripts/_lib/agent_settings.py +195 -1
- package/scripts/_lib/agent_src.py +19 -19
- package/scripts/_lib/bench_ab_cache.py +162 -0
- package/scripts/_lib/bench_ab_scoring.py +209 -0
- package/scripts/_lib/{bench_caveman.py → bench_telegraph.py} +21 -21
- package/scripts/_lib/{bench_caveman_report.py → bench_telegraph_report.py} +21 -21
- package/scripts/_lib/claude_desktop_bundler.py +5 -5
- package/scripts/_lib/module_detection.py +223 -0
- package/scripts/_lib/scope_guard.sh +162 -0
- package/scripts/_phase4_bucket.py +3 -3
- package/scripts/_pilot_measure.py +4 -4
- package/scripts/_tmp_scan_framework_leakage.py +1 -1
- package/scripts/adoption_report.py +195 -0
- package/scripts/adoption_snapshot.py +219 -0
- package/scripts/adoption_status.py +166 -0
- package/scripts/ai-video/lib/parse-blueprint.sh +1 -1
- package/scripts/ai_council/advisors.py +5 -5
- package/scripts/ai_council/compile_corpus.py +1 -1
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_budget_v2_audit.py +3 -3
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_context_layer_v1_review.py +2 -2
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_inject_quiet_flag.py +1 -1
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_measure_v2.sh +1 -1
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_measure_verbosity.sh +1 -1
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_nondestructive_inline_audit.py +3 -3
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_per_task.sh +1 -1
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_phase6_trigger_jaccard.py +1 -1
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_phase_2a_budget_rebalance.py +6 -6
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_rebalancing_audit.py +1 -1
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_tier_retrofit.py +6 -6
- package/scripts/annotate_discovery.py +13 -13
- package/scripts/apply_modules_config.py +290 -0
- package/scripts/audit_adr_coverage.py +2 -2
- package/scripts/audit_auto_rules.py +2 -2
- package/scripts/audit_cloud_compatibility.py +3 -3
- package/scripts/audit_command_surface.py +9 -9
- package/scripts/audit_likelihood.py +2 -2
- package/scripts/audit_user_type_axis.py +2 -2
- package/scripts/bench_ab_cache_dispatch.py +68 -0
- package/scripts/bench_ab_clone.py +170 -0
- package/scripts/bench_ab_diff.py +227 -0
- package/scripts/bench_ab_integrity.py +143 -0
- package/scripts/bench_ab_run.py +235 -0
- package/scripts/bench_ab_task_runner.py +369 -0
- package/scripts/bench_ab_tracka_run.py +202 -0
- package/scripts/{bench_compress_memory.py → bench_condense_memory.py} +16 -16
- package/scripts/bench_run.py +33 -33
- package/scripts/bench_runner.py +2 -2
- package/scripts/bootstrap.sh +99 -0
- package/scripts/build_cloud_bundle.py +6 -6
- package/scripts/build_discovery_manifest.py +7 -7
- package/scripts/build_linear_digest.py +3 -3
- package/scripts/build_rule_trigger_matrix.py +8 -8
- package/scripts/chat_history.py +5 -5
- package/scripts/check_always_budget.py +11 -5
- package/scripts/check_augment_description_cap.py +3 -3
- package/scripts/check_cluster_patterns.py +2 -2
- package/scripts/check_command_count_messaging.py +3 -3
- package/scripts/{check_compression.py → check_condensation.py} +34 -34
- package/scripts/{check_compressed_paths.py → check_condensed_paths.py} +8 -8
- package/scripts/check_context_paths.py +7 -7
- package/scripts/check_council_layout.py +2 -2
- package/scripts/check_council_references.py +9 -9
- package/scripts/check_iron_law_prominence.py +2 -2
- package/scripts/check_kernel_rule_bundle.py +2 -2
- package/scripts/check_module_management_neutral.py +149 -0
- package/scripts/check_no_roadmap_refs.py +9 -9
- package/scripts/check_portability.py +3 -3
- package/scripts/check_public_catalog_links.py +4 -4
- package/scripts/check_references.py +7 -6
- package/scripts/check_release_pr_shape.py +112 -0
- package/scripts/check_reply_consistency.py +3 -3
- package/scripts/check_safety_floor_untouched.py +1 -1
- package/scripts/check_template_pin_drift.py +5 -5
- package/scripts/check_token_optimizer_freshness.py +3 -3
- package/scripts/ci_status.py +301 -0
- package/scripts/ci_time_ratio.py +1 -1
- package/scripts/cleanup_other_scope.sh +146 -0
- package/scripts/compile_router.py +10 -10
- package/scripts/{compress.py → condense.py} +64 -64
- package/scripts/condense.sh +18 -0
- package/scripts/{compress_memory.py → condense_memory.py} +33 -33
- package/scripts/config/presets.py +2 -2
- package/scripts/config/profiles.py +1 -1
- package/scripts/cost_by_conversation.py +3 -3
- package/scripts/cost_summary.py +7 -7
- package/scripts/count_token_optimizer_usage.sh +1 -1
- package/scripts/gen_discovery_baseline.py +5 -5
- package/scripts/generate_index.py +6 -6
- package/scripts/generate_ownership_matrix.py +10 -10
- package/scripts/generate_pack_manifests.py +1 -1
- package/scripts/ghostwriter_fixture_allowlist.txt +1 -1
- package/scripts/install +3 -3
- package/scripts/install-hooks.sh +6 -6
- package/scripts/install.py +273 -45
- package/scripts/install.sh +187 -1
- package/scripts/inventory_frontmatter.py +2 -2
- package/scripts/iron_law_sha.py +3 -3
- package/scripts/lint_agents_layout.py +14 -7
- package/scripts/lint_agents_md.py +4 -4
- package/scripts/lint_archived_skills.py +3 -3
- package/scripts/lint_artefact_frontmatter.py +2 -2
- package/scripts/lint_bench_ab.py +172 -0
- package/scripts/lint_bench_corpus.py +1 -1
- package/scripts/lint_command_tiers.py +5 -5
- package/scripts/lint_context_spine_usage.py +1 -1
- package/scripts/lint_framework_leakage.py +7 -7
- package/scripts/lint_framework_leakage_allowlist.json +152 -84
- package/scripts/lint_ghostwriter_source.py +3 -3
- package/scripts/lint_handoffs.py +1 -1
- package/scripts/lint_load_context.py +11 -11
- package/scripts/lint_media_policy_linkage.py +5 -5
- package/scripts/lint_namespace.py +1 -1
- package/scripts/lint_no_new_atomic_commands.py +2 -2
- package/scripts/lint_orchestration_dsl.py +1 -1
- package/scripts/lint_pack_boundaries.py +2 -2
- package/scripts/lint_persona_governance.py +4 -4
- package/scripts/lint_role_experiences.py +237 -0
- package/scripts/lint_rule_interactions.py +2 -2
- package/scripts/lint_rule_tiers.py +1 -1
- package/scripts/lint_trust_coherence.py +2 -2
- package/scripts/mcp_registry_submit.sh +187 -0
- package/scripts/mcp_server/tools.py +1 -1
- package/scripts/measure_frugality_savings.py +10 -10
- package/scripts/measure_patterns.py +1 -1
- package/scripts/measure_projection_bytes.py +5 -5
- package/scripts/measure_rule_budget.py +3 -3
- package/scripts/measure_skill_reduction.py +1 -1
- package/scripts/memory_lookup.py +1 -1
- package/scripts/memory_status.py +2 -2
- package/scripts/migrate_command_suggestions.py +3 -3
- package/scripts/mine_session.py +1 -1
- package/scripts/move_artefact.py +3 -3
- package/scripts/new_skill.py +2 -2
- package/scripts/pack_mcp_content.py +9 -9
- package/scripts/plan_physical_move.py +6 -6
- package/scripts/print_required_checks.py +196 -0
- package/scripts/probe_skill_registration.py +413 -0
- package/scripts/propose_modules_config.py +145 -0
- package/scripts/prototype_lint_contradictions.py +1 -1
- package/scripts/recruit_preflight.sh +152 -0
- package/scripts/refine_ticket_detect.py +3 -3
- package/scripts/release.py +20 -0
- package/scripts/render_benchmark_md.py +308 -0
- package/scripts/roadmap_progress_hook.py +1 -1
- package/scripts/run_skill_evals.py +2 -2
- package/scripts/runtime_registry.py +4 -4
- package/scripts/schemas/command.schema.json +4 -4
- package/scripts/schemas/rule.schema.json +5 -5
- package/scripts/schemas/skill.schema.json +3 -3
- package/scripts/schemas/user-type.schema.json +1 -1
- package/scripts/score_skill_selection.py +1 -1
- package/scripts/skill_collision_clusters.py +2 -2
- package/scripts/skill_linter.py +81 -81
- package/scripts/skill_overlap.py +5 -5
- package/scripts/skill_tools/audit_persona_coverage.py +2 -2
- package/scripts/skill_tools/audit_user_type_coverage.py +2 -2
- package/scripts/skill_tools/run_block_d_eval.py +1 -1
- package/scripts/skill_tools/score_skill_relevance.py +1 -1
- package/scripts/skill_tools/suggest_skill_for_task.py +1 -1
- package/scripts/skill_trigger_eval.py +3 -3
- package/scripts/smoke/kernel.sh +7 -1
- package/scripts/smoke/router.sh +5 -5
- package/scripts/smoke/skills.sh +1 -1
- package/scripts/smoke_quickstart.py +1 -1
- package/scripts/snapshot_agent_outputs.py +3 -3
- package/scripts/spotcheck_thin_root.py +1 -1
- package/scripts/{caveman_stats.py → telegraph_stats.py} +18 -18
- package/scripts/update_counts.py +1 -1
- package/scripts/validate_decision_engine.py +1 -1
- package/scripts/validate_frontmatter.py +1 -1
- package/scripts/validate_safe_paths.py +3 -3
- package/scripts/{validate_caveman_carveouts.py → validate_telegraph_carveouts.py} +7 -7
- package/scripts/verify_roadmap_closure.py +6 -6
- package/templates/consumer-settings/ONBOARDING.md +41 -0
- package/.agent-src/commands/install-via-agent.md +0 -129
- package/.agent-src/skills/compress-memory/SKILL.md +0 -131
- package/dist/ui/assets/index-D-DY1ywI.js +0 -35
- package/dist/ui/assets/index-D-DY1ywI.js.map +0 -1
- package/dist/ui/assets/index-Dqfhmg-d.css +0 -1
- package/docs/adrs/caveman/README.md +0 -9
- package/docs/contracts/caveman-telemetry.md +0 -83
- package/scripts/compress.sh +0 -18
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
# Schema:
|
|
9
9
|
# version: integer
|
|
10
10
|
# rules: list of rule slugs that participate in any interaction (each
|
|
11
|
-
# must exist as `.agent-src.
|
|
11
|
+
# must exist as `.agent-src.uncondensed/rules/<slug>.md`)
|
|
12
12
|
# pairs: list of pairwise interactions
|
|
13
13
|
# - id: kebab-case stable identifier
|
|
14
14
|
# rules: [senior, junior] — `senior` wins on conflict
|
|
@@ -49,8 +49,8 @@ pairs:
|
|
|
49
49
|
numbered-options block, wait for explicit user confirmation on
|
|
50
50
|
this turn before proceeding.
|
|
51
51
|
evidence:
|
|
52
|
-
- .agent-src.
|
|
53
|
-
- .agent-src.
|
|
52
|
+
- .agent-src.uncondensed/rules/non-destructive-by-default.md#the-iron-law
|
|
53
|
+
- .agent-src.uncondensed/rules/autonomous-execution.md#hard-floor--see-non-destructive-by-default
|
|
54
54
|
|
|
55
55
|
- id: ndd-x-scope-control
|
|
56
56
|
rules: [non-destructive-by-default, scope-control]
|
|
@@ -64,9 +64,9 @@ pairs:
|
|
|
64
64
|
cannot be weakened by future scope-control edits. On any conflict,
|
|
65
65
|
the floor wins.
|
|
66
66
|
evidence:
|
|
67
|
-
- .agent-src.
|
|
68
|
-
- .agent-src.
|
|
69
|
-
- .agent-src.
|
|
67
|
+
- .agent-src.uncondensed/rules/non-destructive-by-default.md#the-iron-law
|
|
68
|
+
- .agent-src.uncondensed/rules/scope-control.md#git-operations--permission-gated
|
|
69
|
+
- .agent-src.uncondensed/rules/scope-control.md#production-infrastructure-bulk-destructive--hard-floor
|
|
70
70
|
|
|
71
71
|
- id: ndd-x-commit-policy
|
|
72
72
|
rules: [non-destructive-by-default, commit-policy]
|
|
@@ -82,8 +82,8 @@ pairs:
|
|
|
82
82
|
then commit. The four exceptions cover *whether* commits happen;
|
|
83
83
|
the floor covers *which diffs* still need a separate confirmation.
|
|
84
84
|
evidence:
|
|
85
|
-
- .agent-src.
|
|
86
|
-
- .agent-src.
|
|
85
|
+
- .agent-src.uncondensed/rules/non-destructive-by-default.md#the-iron-law
|
|
86
|
+
- .agent-src.uncondensed/rules/commit-policy.md#hard-floor-still-applies--bulk-deletions-and-infra-changes
|
|
87
87
|
|
|
88
88
|
- id: ndd-x-ask-when-uncertain
|
|
89
89
|
rules: [non-destructive-by-default, ask-when-uncertain]
|
|
@@ -97,8 +97,8 @@ pairs:
|
|
|
97
97
|
provides the question shape (one numbered-options block, blocking).
|
|
98
98
|
No conflict; both fire harmoniously.
|
|
99
99
|
evidence:
|
|
100
|
-
- .agent-src.
|
|
101
|
-
- .agent-src.
|
|
100
|
+
- .agent-src.uncondensed/rules/non-destructive-by-default.md#failure-modes
|
|
101
|
+
- .agent-src.uncondensed/rules/ask-when-uncertain.md#vague-request-triggers--must-ask
|
|
102
102
|
|
|
103
103
|
- id: ndd-x-verify-before-complete
|
|
104
104
|
rules: [non-destructive-by-default, verify-before-complete]
|
|
@@ -112,8 +112,8 @@ pairs:
|
|
|
112
112
|
verification evidence in the same message. Skipping either is a
|
|
113
113
|
rule violation.
|
|
114
114
|
evidence:
|
|
115
|
-
- .agent-src.
|
|
116
|
-
- .agent-src.
|
|
115
|
+
- .agent-src.uncondensed/rules/non-destructive-by-default.md#the-iron-law
|
|
116
|
+
- .agent-src.uncondensed/rules/verify-before-complete.md#the-iron-law
|
|
117
117
|
|
|
118
118
|
- id: autonomy-x-scope-control
|
|
119
119
|
rules: [scope-control, autonomous-execution]
|
|
@@ -127,8 +127,8 @@ pairs:
|
|
|
127
127
|
suppresses *trivial* questions only; git-shape decisions are
|
|
128
128
|
blocking. Stop and ask.
|
|
129
129
|
evidence:
|
|
130
|
-
- .agent-src.
|
|
131
|
-
- .agent-src.
|
|
130
|
+
- .agent-src.uncondensed/rules/scope-control.md#git-operations--permission-gated
|
|
131
|
+
- .agent-src.uncondensed/rules/autonomous-execution.md#blocking--still-ask-regardless-of-personalautonomy
|
|
132
132
|
|
|
133
133
|
- id: autonomy-x-commit-policy
|
|
134
134
|
rules: [commit-policy, autonomous-execution]
|
|
@@ -141,8 +141,8 @@ pairs:
|
|
|
141
141
|
committing unless one of the four exceptions applies. Autonomy
|
|
142
142
|
does not add a fifth exception.
|
|
143
143
|
evidence:
|
|
144
|
-
- .agent-src.
|
|
145
|
-
- .agent-src.
|
|
144
|
+
- .agent-src.uncondensed/rules/commit-policy.md#the-iron-law
|
|
145
|
+
- .agent-src.uncondensed/rules/autonomous-execution.md#commit-policy--see-commit-policy
|
|
146
146
|
|
|
147
147
|
- id: authority-x-ndd
|
|
148
148
|
rules: [agent-authority, non-destructive-by-default]
|
|
@@ -155,8 +155,8 @@ pairs:
|
|
|
155
155
|
Floor's Iron Law lives verbatim in `non-destructive-by-default`
|
|
156
156
|
and wins every conflict. The index points; it never restates.
|
|
157
157
|
evidence:
|
|
158
|
-
- .agent-src.
|
|
159
|
-
- .agent-src.
|
|
158
|
+
- .agent-src.uncondensed/rules/agent-authority.md#index-rules
|
|
159
|
+
- .agent-src.uncondensed/rules/non-destructive-by-default.md#the-iron-law
|
|
160
160
|
|
|
161
161
|
- id: authority-x-scope-control
|
|
162
162
|
rules: [agent-authority, scope-control]
|
|
@@ -169,8 +169,8 @@ pairs:
|
|
|
169
169
|
scope-expansion decisions. Index never narrows or weakens the
|
|
170
170
|
gate; canonical rule wins on any wording divergence.
|
|
171
171
|
evidence:
|
|
172
|
-
- .agent-src.
|
|
173
|
-
- .agent-src.
|
|
172
|
+
- .agent-src.uncondensed/rules/agent-authority.md#index-rules
|
|
173
|
+
- .agent-src.uncondensed/rules/scope-control.md#git-operations--permission-gated
|
|
174
174
|
|
|
175
175
|
- id: authority-x-commit-policy
|
|
176
176
|
rules: [agent-authority, commit-policy]
|
|
@@ -184,8 +184,8 @@ pairs:
|
|
|
184
184
|
edits to commit-policy do not require Index updates unless the
|
|
185
185
|
band ordering changes.
|
|
186
186
|
evidence:
|
|
187
|
-
- .agent-src.
|
|
188
|
-
- .agent-src.
|
|
187
|
+
- .agent-src.uncondensed/rules/agent-authority.md#index-rules
|
|
188
|
+
- .agent-src.uncondensed/rules/commit-policy.md#exceptions--when-committing-is-allowed
|
|
189
189
|
|
|
190
190
|
- id: scope-x-commit-policy
|
|
191
191
|
rules: [scope-control, commit-policy]
|
|
@@ -201,8 +201,8 @@ pairs:
|
|
|
201
201
|
tag operations. On commit specifics, defer to `commit-policy`;
|
|
202
202
|
on other git ops, defer to `scope-control`.
|
|
203
203
|
evidence:
|
|
204
|
-
- .agent-src.
|
|
205
|
-
- .agent-src.
|
|
204
|
+
- .agent-src.uncondensed/rules/scope-control.md#git-operations--permission-gated
|
|
205
|
+
- .agent-src.uncondensed/rules/commit-policy.md#the-iron-law
|
|
206
206
|
|
|
207
207
|
- id: ask-x-direct-answers
|
|
208
208
|
rules: [ask-when-uncertain, direct-answers]
|
|
@@ -218,8 +218,8 @@ pairs:
|
|
|
218
218
|
`direct-answers` shapes *how* the question reads — no flattery,
|
|
219
219
|
no padding, shortest form that fully states the choice.
|
|
220
220
|
evidence:
|
|
221
|
-
- .agent-src.
|
|
222
|
-
- .agent-src.
|
|
221
|
+
- .agent-src.uncondensed/rules/ask-when-uncertain.md#iron-law--one-question-per-turn-always
|
|
222
|
+
- .agent-src.uncondensed/rules/direct-answers.md#iron-law-3--brevity-by-default
|
|
223
223
|
|
|
224
224
|
- id: scope-x-verify-before-complete
|
|
225
225
|
rules: [verify-before-complete, scope-control]
|
|
@@ -240,8 +240,8 @@ pairs:
|
|
|
240
240
|
Skipping either is a rule violation; satisfying one does not
|
|
241
241
|
satisfy the other.
|
|
242
242
|
evidence:
|
|
243
|
-
- .agent-src.
|
|
244
|
-
- .agent-src.
|
|
243
|
+
- .agent-src.uncondensed/rules/verify-before-complete.md#the-iron-law
|
|
244
|
+
- .agent-src.uncondensed/rules/scope-control.md#git-operations--permission-gated
|
|
245
245
|
|
|
246
246
|
- id: language-x-direct-answers
|
|
247
247
|
rules: [language-and-tone, direct-answers]
|
|
@@ -256,5 +256,5 @@ pairs:
|
|
|
256
256
|
flattery-free reply in the user's language. Neither weakens the
|
|
257
257
|
other.
|
|
258
258
|
evidence:
|
|
259
|
-
- .agent-src.
|
|
260
|
-
- .agent-src.
|
|
259
|
+
- .agent-src.uncondensed/rules/language-and-tone.md#iron-law--mirror-the-users-language-always
|
|
260
|
+
- .agent-src.uncondensed/rules/direct-answers.md#iron-law-1--no-flattery
|
|
@@ -5,7 +5,7 @@ keep-beta-until: 2026-08-12
|
|
|
5
5
|
|
|
6
6
|
# Rule Priority Hierarchy
|
|
7
7
|
|
|
8
|
-
> **Audience:** anyone reading or editing `.agent-src.
|
|
8
|
+
> **Audience:** anyone reading or editing `.agent-src.uncondensed/rules/*.md`,
|
|
9
9
|
> or trying to predict which rule wins when several fire on the same turn.
|
|
10
10
|
> **Machine-readable counterpart:** [`rule-interactions.yml`](rule-interactions.yml)
|
|
11
11
|
> (linted by `scripts/lint_rule_interactions.py`).
|
|
@@ -32,15 +32,15 @@ fires — that band's canonical rule decides the turn.
|
|
|
32
32
|
|
|
33
33
|
| Band | Rule | What it gates | Lifts under |
|
|
34
34
|
|---|---|---|---|
|
|
35
|
-
| 1 | [`non-destructive-by-default`](../../.agent-src.
|
|
36
|
-
| 2 | [`security-sensitive-stop`](../../.agent-src.
|
|
37
|
-
| 3 | [`scope-control`](../../.agent-src.
|
|
38
|
-
| 4 | [`ask-when-uncertain`](../../.agent-src.
|
|
39
|
-
| 5 | [`commit-policy`](../../.agent-src.
|
|
40
|
-
| 6 | [`verify-before-complete`](../../.agent-src.
|
|
41
|
-
| 7 | [`autonomous-execution`](../../.agent-src.
|
|
42
|
-
| 8 | [`command-suggestion-policy`](../../.agent-src.
|
|
43
|
-
| 9 | [`language-and-tone`](../../.agent-src.
|
|
35
|
+
| 1 | [`non-destructive-by-default`](../../.agent-src.uncondensed/rules/non-destructive-by-default.md) | Prod-trunk merge · deploy · push · prod data/infra · whimsical bulk deletion · bulk-deletion or infra commit | **Never.** Explicit user confirmation *this turn* only. |
|
|
36
|
+
| 2 | [`security-sensitive-stop`](../../.agent-src.uncondensed/rules/security-sensitive-stop.md) | Auth · billing · tenant boundaries · secrets · file uploads · webhooks · public endpoints | Threat-model pass completed and recorded *before* the edit. |
|
|
37
|
+
| 3 | [`scope-control`](../../.agent-src.uncondensed/rules/scope-control.md) | Git ops (branch · PR · tag · push · merge · rebase) · architectural changes · new libraries · scope expansion | Explicit user permission *this turn* or unrevoked standing instruction. |
|
|
38
|
+
| 4 | [`ask-when-uncertain`](../../.agent-src.uncondensed/rules/ask-when-uncertain.md) | Ambiguous requirements · vague-request triggers · fenced steps | Concrete evidence resolves the ambiguity, **or** user answers the single question. |
|
|
39
|
+
| 5 | [`commit-policy`](../../.agent-src.uncondensed/rules/commit-policy.md) | Any `git commit` | Four exceptions only — explicit "commit now", standing instruction, `/commit*` invocation, roadmap authorization. |
|
|
40
|
+
| 6 | [`verify-before-complete`](../../.agent-src.uncondensed/rules/verify-before-complete.md) | "Done" / "complete" claims · suggestions to commit, push, or PR | Fresh verification evidence in *this* message. |
|
|
41
|
+
| 7 | [`autonomous-execution`](../../.agent-src.uncondensed/rules/autonomous-execution.md) | Trivial-vs-blocking classification · autonomy opt-in detection | Per-step decision; never above bands 1–6. |
|
|
42
|
+
| 8 | [`command-suggestion-policy`](../../.agent-src.uncondensed/rules/command-suggestion-policy.md) | Surfacing slash-command matches as numbered options | User always picks; nothing auto-executes. |
|
|
43
|
+
| 9 | [`language-and-tone`](../../.agent-src.uncondensed/rules/language-and-tone.md) | First-token language of every reply · `.md` always English | Mirror the user's last chat message — no momentum exception. |
|
|
44
44
|
|
|
45
45
|
**Read direction:** top-to-bottom is *priority on conflict*, not chronology.
|
|
46
46
|
A turn typically touches several bands at once; the hierarchy decides
|
|
@@ -55,9 +55,9 @@ which one's Iron Law gets the final say.
|
|
|
55
55
|
canonical rule files. This hierarchy points; it does not paraphrase.
|
|
56
56
|
- **Bands 1–2 are *Hard Floors*.** No autonomy setting, no roadmap step,
|
|
57
57
|
no standing instruction lifts them. See
|
|
58
|
-
[`agent-authority`](../../.agent-src.
|
|
58
|
+
[`agent-authority`](../../.agent-src.uncondensed/rules/agent-authority.md)
|
|
59
59
|
§ Index rules for the matching authority statement.
|
|
60
|
-
- **Unsure → ask.** [`ask-when-uncertain`](../../.agent-src.
|
|
60
|
+
- **Unsure → ask.** [`ask-when-uncertain`](../../.agent-src.uncondensed/rules/ask-when-uncertain.md)
|
|
61
61
|
is the universal escape hatch when the band is unclear.
|
|
62
62
|
|
|
63
63
|
## Worked examples
|
|
@@ -73,7 +73,7 @@ which one's Iron Law gets the final say.
|
|
|
73
73
|
|
|
74
74
|
## Cross-references
|
|
75
75
|
|
|
76
|
-
- [`agent-authority`](../../.agent-src.
|
|
76
|
+
- [`agent-authority`](../../.agent-src.uncondensed/rules/agent-authority.md) — the four-band authority router (bands 1–3 + 7 of this hierarchy).
|
|
77
77
|
- [`rule-interactions.md`](rule-interactions.md) — pairwise interaction narrative + Mermaid diagram.
|
|
78
78
|
- [`rule-interactions.yml`](rule-interactions.yml) — machine-readable, CI-linted matrix.
|
|
79
79
|
- [`STABILITY.md`](STABILITY.md) — what the `stability: beta` tag means for breaking changes.
|
|
@@ -71,9 +71,9 @@ resolves to the target file under:
|
|
|
71
71
|
|
|
72
72
|
| kind | path |
|
|
73
73
|
|---|---|
|
|
74
|
-
| `skill` | `.agent-src.
|
|
74
|
+
| `skill` | `.agent-src.uncondensed/skills/<id>/SKILL.md` |
|
|
75
75
|
| `guideline` | `docs/guidelines/<id>.md` |
|
|
76
|
-
| `command` | `.agent-src.
|
|
76
|
+
| `command` | `.agent-src.uncondensed/commands/<id>.md` |
|
|
77
77
|
| `contract` | `docs/contracts/<id>.md` |
|
|
78
78
|
|
|
79
79
|
Linter checks each target exists. `command` is for procedural rules
|
|
@@ -34,7 +34,7 @@ listed there cannot be set to `allow` here.
|
|
|
34
34
|
## Schema
|
|
35
35
|
|
|
36
36
|
```yaml
|
|
37
|
-
# .agent-src.
|
|
37
|
+
# .agent-src.uncondensed/profiles/<id>.yml — new top-level key
|
|
38
38
|
profile:
|
|
39
39
|
id: <profile.id>
|
|
40
40
|
# ... existing fields ...
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Skill Distribution Channels — canonical per AI tool
|
|
2
|
+
|
|
3
|
+
**Status:** Active (locked 2026-05-25 via Phase A of `road-to-clean-skill-distribution-channels.md`)
|
|
4
|
+
**Owner:** maintainer-team
|
|
5
|
+
**Inputs:** [`agents/evidence/audits/2026-05-distribution-channels/`](../../agents/evidence/audits/2026-05-distribution-channels/) (audits 01 + 02), AI Council convergence `agents/runtime/council/responses/2026-05-25-canonical-channel.json` (claude-sonnet-4-5 + gpt-4o, 2026-05-25)
|
|
6
|
+
|
|
7
|
+
## Rule
|
|
8
|
+
|
|
9
|
+
For every AI tool the package supports, **exactly one channel** is the canonical registration surface used by the consumer installer. The other channel (where one exists at the upstream tool level) is either:
|
|
10
|
+
|
|
11
|
+
- not projected into the consumer install at all (default), or
|
|
12
|
+
- projected behind the `--legacy-both` opt-in flag for users on older harnesses.
|
|
13
|
+
|
|
14
|
+
## Per-tool matrix
|
|
15
|
+
|
|
16
|
+
| Tool | Channels supported by host | Canonical (consumer install) | Other channel behaviour | Rationale |
|
|
17
|
+
|---|---|---|---|---|
|
|
18
|
+
| **Claude Code** | Plugin manifest (`.claude-plugin/marketplace.json`) + filesystem (`.claude/skills/`) | **filesystem** | Manifest not projected by default; use `--legacy-both` to opt in | Cross-tool consistency. Filesystem is the only channel all six tools share. The package's own `.claude-plugin/marketplace.json` stays at the source repo for users who run `claude plugin install <name>` directly. |
|
|
19
|
+
| **Augment** | Manifest with `source: "."` (`.augment-plugin/marketplace.json`) + filesystem (`.augment/`) | **filesystem** | Manifest stays — it is metadata-only, not a second registry. No `--legacy-both` needed. | The manifest points at the same directory the harness scans; one source of truth on disk. |
|
|
20
|
+
| **Cursor** | Filesystem only (`.cursor/rules/*.mdc`) | **filesystem** | n/a — no second channel exists | No host-level alternative. |
|
|
21
|
+
| **Cline** | Filesystem only (`.clinerules/`) | **filesystem** | n/a | No host-level alternative. |
|
|
22
|
+
| **Windsurf** | Filesystem only (`.windsurf/rules/`, `.windsurf/workflows/`) | **filesystem** | n/a | No host-level alternative. |
|
|
23
|
+
| **Copilot** | Single file (`.github/copilot-instructions.md` or root `copilot-instructions.md`) | **filesystem** | n/a | Single file, not a registry. |
|
|
24
|
+
|
|
25
|
+
## Decision drivers
|
|
26
|
+
|
|
27
|
+
1. **Cross-tool consistency.** Four of six tools have only a filesystem channel. Picking filesystem for the other two makes one rule cover everything.
|
|
28
|
+
2. **Same-install dual-registration is closed by default.** If `scripts/install.sh` does not project the Claude plugin manifest into the consumer install, the harness has only the filesystem to scan, so the manifest+filesystem double-register risk is eliminated regardless of how the host harness deduplicates.
|
|
29
|
+
3. **Cross-scope drift is orthogonal.** The canonical-channel decision does NOT solve the actual 2026-05-25 bug (cross-scope user-global + project-local with different frontmatter). Phase B installer guard + Phase C runtime probe close that path. They are companions to this contract, not substitutes for it.
|
|
30
|
+
4. **Publication surface preserved.** The source repo continues to ship `.claude-plugin/marketplace.json` for users who want to install via `claude plugin install <event4u/agent-config>`. Removing the manifest from the **consumer install** does not affect that path.
|
|
31
|
+
5. **`--legacy-both` is opt-in only.** Users on harness versions that genuinely require both channels can request the legacy projection. Default is single-channel.
|
|
32
|
+
|
|
33
|
+
## Council convergence (2026-05-25)
|
|
34
|
+
|
|
35
|
+
Two-round debate on whether filesystem or plugin should be canonical for Claude. The transparently-merged verdict:
|
|
36
|
+
|
|
37
|
+
- **Anthropic (R2):** "MIXED leaning DISAGREE on the proposal **as written**" — pointed out that the proposal does not address cross-scope drift by itself, and that the canonical-channel decision only matters if the Claude harness double-registers on same-install. Test scenarios surfaced as critical path before locking. Conclusion: if Claude does ambient filesystem discovery (it does, in practice), **filesystem becomes canonical not by choice but because manifest adds a second registration mechanism with no isolation benefit**.
|
|
38
|
+
- **OpenAI (R2):** Endorsed filesystem-canonical with a fail-loud Phase C probe. Suggested user research on `--legacy-both` adoption.
|
|
39
|
+
|
|
40
|
+
Both members agreed the decision is structurally correct **conditional on** the cross-scope drift fix landing in Phase B and the probe being fail-loud in Phase C. This contract is published with those follow-up commitments.
|
|
41
|
+
|
|
42
|
+
## Acceptance criteria for follow-up phases
|
|
43
|
+
|
|
44
|
+
Phase B and Phase C of `road-to-clean-skill-distribution-channels.md` MUST:
|
|
45
|
+
|
|
46
|
+
- (Phase B) Add a pre-install guard that detects existing installs at the other scope and either refuses, warns, or upgrades — surfaced via numbered options.
|
|
47
|
+
- (Phase C) Run a probe at `agent-config setup` time AND from `scripts/install.sh --strict` that fails the install on cross-scope drift findings (per the council convergence — fail-loud, not informational).
|
|
48
|
+
- (Phase A Step 4) Update `scripts/install.sh` and `task generate-tools` so the canonical channel above is what lands in the consumer install. Document `--legacy-both` for opt-in.
|
|
49
|
+
|
|
50
|
+
## Out of scope
|
|
51
|
+
|
|
52
|
+
- Manifest format changes upstream (Claude Code's marketplace shape) — host-controlled.
|
|
53
|
+
- Alternative install paths (vendored copies, git submodules, npm `--prefix`) — package's npm install is the supported path.
|
|
54
|
+
- Re-litigating the channel pick after this lock — reopened only on a new audit that surfaces a structurally different shape (e.g. a host change that removes ambient filesystem discovery).
|
|
55
|
+
|
|
56
|
+
## See also
|
|
57
|
+
|
|
58
|
+
- [`docs/contracts/install-scopes.md`](install-scopes.md) — companion contract for cross-scope behaviour (authored in Phase B).
|
|
59
|
+
- [`docs/contracts/harness-expectations.md`](harness-expectations.md) — Phase D companion documenting host-side behaviours that look like package bugs but are not.
|
|
60
|
+
- [`agents/evidence/audits/2026-05-distribution-channels/`](../../agents/evidence/audits/2026-05-distribution-channels/) — the underlying audits (01 Claude, 02 Augment, 03 installer flow).
|
|
61
|
+
- [`README.md § Installation`](../../README.md) — consumer-facing install path.
|
|
@@ -10,7 +10,7 @@ keep-beta-until: 2026-08-12
|
|
|
10
10
|
> · **Schema:** `scripts/schemas/skill.schema.json` § `domain`
|
|
11
11
|
|
|
12
12
|
Locks the canonical 6-domain taxonomy that classifies every skill in
|
|
13
|
-
`.agent-src.
|
|
13
|
+
`.agent-src.uncondensed/skills/`. Each skill MUST declare exactly one
|
|
14
14
|
`domain:` value from the allow-list below in its `SKILL.md` frontmatter.
|
|
15
15
|
|
|
16
16
|
## § 1 — Allow-list
|
|
@@ -139,6 +139,6 @@ release notes.
|
|
|
139
139
|
|
|
140
140
|
## See also
|
|
141
141
|
|
|
142
|
-
- [`skill-quality`](../../.agent-src.
|
|
142
|
+
- [`skill-quality`](../../.agent-src.uncondensed/rules/skill-quality.md) — frontmatter contract for skills
|
|
143
143
|
- [`rule-classification`](rule-classification.md) — sister taxonomy for rules (kernel vs auto)
|
|
144
144
|
- `road-to-better-skills-and-profiles.md` — Block B (taxonomy lock + back-fill + folder reorg)
|
|
@@ -34,10 +34,10 @@ the paths touched in the PR:
|
|
|
34
34
|
|
|
35
35
|
| Tier | Globs that trigger | Script |
|
|
36
36
|
|---|---|---|
|
|
37
|
-
| kernel | `.agent-src.
|
|
38
|
-
| router | `dist/router.json`, `.agent-src.
|
|
39
|
-
| schema | `.agent-src.
|
|
40
|
-
| skills | `.agent-src.
|
|
37
|
+
| kernel | `.agent-src.uncondensed/rules/**`, `.agent-src/rules/**`, `dist/router.json`, `scripts/measure_rule_budget.py` | `scripts/smoke/kernel.sh` |
|
|
38
|
+
| router | `dist/router.json`, `.agent-src.uncondensed/rules/**`, `.agent-src.uncondensed/skills/**`, `docs/contracts/**`, `docs/guidelines/**` | `scripts/smoke/router.sh` |
|
|
39
|
+
| schema | `.agent-src.uncondensed/skills/**`, `.agent-src.uncondensed/rules/**`, `scripts/schemas/**`, `scripts/skill_linter.py`, `scripts/validate_frontmatter.py` | `scripts/smoke/schema.sh` |
|
|
40
|
+
| skills | `.agent-src.uncondensed/skills/**` | `scripts/smoke/skills.sh` |
|
|
41
41
|
|
|
42
42
|
`task smoke` runs all four locally regardless of paths.
|
|
43
43
|
|
|
@@ -107,7 +107,7 @@ constant in the script body and the row below.
|
|
|
107
107
|
```
|
|
108
108
|
|
|
109
109
|
- **5 random skills** picked deterministically (seed = epoch day) from
|
|
110
|
-
`.agent-src.
|
|
110
|
+
`.agent-src.uncondensed/skills/*/SKILL.md` and re-validated via
|
|
111
111
|
`scripts/validate_frontmatter.py`. `agent-config explain skill` is
|
|
112
112
|
**not** invoked — `explain` only supports `{config,rule,route}` today
|
|
113
113
|
([`scripts/agent-config/cmd_explain.py`](../../scripts/agent-config/cmd_explain.py));
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
stability: beta
|
|
3
|
+
keep-beta-until: 2026-08-15
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# telegraph telemetry — multiplier contract
|
|
7
|
+
|
|
8
|
+
> **Status:** suspended (kill-criterion not met in `telegraph-v1`).
|
|
9
|
+
> Telemetry surface records `telegraph_delta_tokens = 0` until a v2 bench
|
|
10
|
+
> proves a positive multiplier on the load-bearing `vs_terse` arm.
|
|
11
|
+
|
|
12
|
+
## Constant
|
|
13
|
+
|
|
14
|
+
| Key | Value | Provenance |
|
|
15
|
+
|---|---|---|
|
|
16
|
+
| `telegraph_multiplier_version` | `v1` | Tied to `internal/bench/reports/telegraph-v1.{json,md}` |
|
|
17
|
+
| `telegraph_multiplier_value` | `0.9155` | `median(terse_control_tokens / condensed_tokens)` over the 10-prompt v1 corpus |
|
|
18
|
+
| `telegraph_multiplier_p10` | `0.4506` | 10th percentile (worst-case carve-out-tax prompts) |
|
|
19
|
+
| `telegraph_multiplier_p90` | `2.3664` | 90th percentile (pure-prose prompts where telegraph wins) |
|
|
20
|
+
| `telegraph_multiplier_active` | `false` | **Suspended** — kill-criterion not met (`vs_terse` median −9.27 %) |
|
|
21
|
+
|
|
22
|
+
The **active** flag gates whether the multiplier is applied to runtime
|
|
23
|
+
telemetry. While `false`, `scripts/telegraph_stats.py` reports
|
|
24
|
+
`telegraph_delta_tokens = 0` regardless of `speak_scope` setting.
|
|
25
|
+
|
|
26
|
+
## How the multiplier is interpreted
|
|
27
|
+
|
|
28
|
+
`telegraph_estimated_uncondensed_tokens = telegraph_condensed_tokens × M`,
|
|
29
|
+
where `M = telegraph_multiplier_value`.
|
|
30
|
+
|
|
31
|
+
`telegraph_delta_tokens = telegraph_estimated_uncondensed_tokens − telegraph_condensed_tokens`.
|
|
32
|
+
|
|
33
|
+
- `M > 1.0` → telegraph condenses; `delta` is **positive** (saving).
|
|
34
|
+
- `M = 1.0` → break-even; no delta surfaced.
|
|
35
|
+
- `M < 1.0` → telegraph costs more than the terse baseline; `delta` is
|
|
36
|
+
**negative**. Surfacing a negative saving is misleading for the
|
|
37
|
+
user (looks like a bug), so the contract is to **suspend the
|
|
38
|
+
multiplier** and record `delta = 0` until a v2 bench lifts `M`
|
|
39
|
+
above `1.0` on the load-bearing arm.
|
|
40
|
+
|
|
41
|
+
## Why suspended after v1
|
|
42
|
+
|
|
43
|
+
The `telegraph-v1` bench (`internal/bench/reports/telegraph-v1.md`, 30 calls,
|
|
44
|
+
2026-05-16) found:
|
|
45
|
+
|
|
46
|
+
- Median savings vs raw uncondensed: **+23.51 %** (inflated by the
|
|
47
|
+
carve-out-tax-free pure-prose prompts).
|
|
48
|
+
- Median savings vs terse-control: **−9.27 %** (load-bearing).
|
|
49
|
+
- Carve-out-heavy prompts (path-list −108 %, mode-marker −123 %)
|
|
50
|
+
drag the median negative.
|
|
51
|
+
|
|
52
|
+
The terse-control arm is the kill-criterion baseline per
|
|
53
|
+
[`condensation-default-kill-criterion.md`](condensation-default-kill-criterion.md).
|
|
54
|
+
Until a v2 bench (broader corpus or a re-tuned dialect) lifts the
|
|
55
|
+
`vs_terse` median to ≥ 0 %, the multiplier stays suspended.
|
|
56
|
+
|
|
57
|
+
## How to lift the suspension
|
|
58
|
+
|
|
59
|
+
1. Run an extended bench against a broader corpus (Phase 3+ work).
|
|
60
|
+
2. If `median(savings_vs_terse) ≥ 0` (and ideally ≥ 30 % to flip the
|
|
61
|
+
rule default), recompute `telegraph_multiplier_value`.
|
|
62
|
+
3. Update this contract: bump `telegraph_multiplier_version` to `v2`,
|
|
63
|
+
set `telegraph_multiplier_active = true`, cite the new bench file.
|
|
64
|
+
4. The change is reversible — drop back to `v1` if a regression
|
|
65
|
+
appears.
|
|
66
|
+
|
|
67
|
+
## Consumers
|
|
68
|
+
|
|
69
|
+
- [`scripts/telegraph_stats.py`](../../scripts/telegraph_stats.py) — reads
|
|
70
|
+
this constant, computes per-session / per-conversation / lifetime
|
|
71
|
+
deltas from `agents/cost-tracking/sessions.jsonl`.
|
|
72
|
+
- [`scripts/cost_summary.py`](../../scripts/cost_summary.py) — emits
|
|
73
|
+
the stable JSON contract for inter-tool consumption per
|
|
74
|
+
[`cost-summary-schema.md`](cost-summary-schema.md).
|
|
75
|
+
- `agent-status` skill — surfaces the per-session delta in the
|
|
76
|
+
status report under the `[telegraph: …]` widget.
|
|
77
|
+
|
|
78
|
+
## See also
|
|
79
|
+
|
|
80
|
+
- [`condensation-default-kill-criterion.md`](condensation-default-kill-criterion.md) — the rule-default-flip gate; this multiplier is gated on the same `vs_terse` arm.
|
|
81
|
+
- [`internal/bench/reports/telegraph-v1.md`](../../bench/reports/telegraph-v1.md) — provenance for the `v1` value.
|
|
82
|
+
- [`internal/bench/reports/telegraph-v2.md`](../../bench/reports/telegraph-v2.md) — input-side (orthogonal); does NOT feed this multiplier (this multiplier is output-side).
|
|
83
|
+
- [`telegraph-speak`](../../.agent-src.uncondensed/rules/telegraph-speak.md) — runtime rule the multiplier measures.
|
|
@@ -11,7 +11,7 @@ keep-beta-until: 2026-08-21
|
|
|
11
11
|
Phase 1 stamped every artefact with `trust.level`,
|
|
12
12
|
`trust.confidence`, and `trust.human_review_required`. Phase 5
|
|
13
13
|
**enforces** those fields: the installer surfaces them at selection
|
|
14
|
-
time, the
|
|
14
|
+
time, the condenseor injects banners into compiled output, the
|
|
15
15
|
runtime gates `human_review_required: true` artefacts before final
|
|
16
16
|
output, and a lint catches drift. This contract is what those four
|
|
17
17
|
consumers depend on.
|
|
@@ -37,7 +37,7 @@ demand review on its specific surface.
|
|
|
37
37
|
|
|
38
38
|
## § 2 — HRR banner
|
|
39
39
|
|
|
40
|
-
The
|
|
40
|
+
The condenseor (`scripts/condense.py`) prepends every artefact whose
|
|
41
41
|
frontmatter declares `trust.human_review_required: true` with:
|
|
42
42
|
|
|
43
43
|
```text
|
|
@@ -48,9 +48,9 @@ frontmatter declares `trust.human_review_required: true` with:
|
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
- The HTML comment is the parser-stable marker
|
|
51
|
-
(`_HRR_BANNER_MARKER` in `scripts/
|
|
51
|
+
(`_HRR_BANNER_MARKER` in `scripts/condense.py`). Runtime detection
|
|
52
52
|
greps for this string, never the prose line.
|
|
53
|
-
- Idempotent: re-
|
|
53
|
+
- Idempotent: re-condensing a file that already carries the marker
|
|
54
54
|
leaves it unchanged.
|
|
55
55
|
- `<domain>` is the first pack id that ships the artefact (e.g.
|
|
56
56
|
`finance-basic`, `founder-strategy`); falls back to `core` for
|
|
@@ -135,7 +135,7 @@ Exits 0 clean, 1 on any violation. Tests in
|
|
|
135
135
|
## § 7 — References
|
|
136
136
|
|
|
137
137
|
- ADR: [`ADR-018 — Trust & Safety Layer`](../decisions/ADR-018-trust-and-safety-layer.md)
|
|
138
|
-
-
|
|
138
|
+
- Condenseor implementation: [`scripts/condense.py`](../../scripts/condense.py)
|
|
139
139
|
(`_inject_hrr_banner`, `_HRR_BANNER_MARKER`)
|
|
140
140
|
- Installer implementation: [`packages/core/installer/src/trust-escalation.ts`](../../packages/core/installer/src/trust-escalation.ts)
|
|
141
141
|
- Lint implementation: [`scripts/lint_trust_coherence.py`](../../scripts/lint_trust_coherence.py)
|
|
@@ -24,10 +24,10 @@ change.
|
|
|
24
24
|
|
|
25
25
|
| Artefact | File | Change |
|
|
26
26
|
|---|---|---|
|
|
27
|
-
| Stack label | [`scripts/work_engine/stack/detect.py`](../../.agent-src.
|
|
28
|
-
| Apply skill | `.agent-src.
|
|
29
|
-
| Review skill | `.agent-src.
|
|
30
|
-
| Polish skill | `.agent-src.
|
|
27
|
+
| Stack label | [`scripts/work_engine/stack/detect.py`](../../.agent-src.uncondensed/templates/scripts/work_engine/stack/detect.py) | New entry in `KNOWN_STACKS` + a heuristic in `detect_stack` |
|
|
28
|
+
| Apply skill | `.agent-src.uncondensed/skills/ui-apply-<stack>/SKILL.md` | New skill bundle |
|
|
29
|
+
| Review skill | `.agent-src.uncondensed/skills/ui-design-review-<stack>/SKILL.md` | New skill bundle |
|
|
30
|
+
| Polish skill | `.agent-src.uncondensed/skills/ui-polish-<stack>/SKILL.md` | New skill bundle |
|
|
31
31
|
| Dispatch tables | `directives/ui/{apply,review,polish}.py` | New row in each `STACK_DIRECTIVES` map |
|
|
32
32
|
| Golden fixture | `tests/golden/sandbox/recipes/gt_u<NN>_<stack>_*.py` | One happy-path baseline at minimum |
|
|
33
33
|
|
|
@@ -131,9 +131,9 @@ the skill does **not** check the ceiling itself but must respect
|
|
|
131
131
|
## Step 4 — wire dispatch tables
|
|
132
132
|
|
|
133
133
|
Three identical edits in
|
|
134
|
-
[`directives/ui/apply.py`](../../.agent-src.
|
|
135
|
-
[`directives/ui/review.py`](../../.agent-src.
|
|
136
|
-
and [`directives/ui/polish.py`](../../.agent-src.
|
|
134
|
+
[`directives/ui/apply.py`](../../.agent-src.uncondensed/templates/scripts/work_engine/directives/ui/apply.py),
|
|
135
|
+
[`directives/ui/review.py`](../../.agent-src.uncondensed/templates/scripts/work_engine/directives/ui/review.py),
|
|
136
|
+
and [`directives/ui/polish.py`](../../.agent-src.uncondensed/templates/scripts/work_engine/directives/ui/polish.py):
|
|
137
137
|
|
|
138
138
|
```python
|
|
139
139
|
STACK_DIRECTIVES: dict[str, str] = {
|
|
@@ -13,7 +13,7 @@ keep-beta-until: 2026-08-12
|
|
|
13
13
|
> - **Created:** 2026-05-01
|
|
14
14
|
> - **Status:** Phase 1–6 shipped — audit / design / apply / review /
|
|
15
15
|
> polish handlers live under
|
|
16
|
-
> [`.agent-src.
|
|
16
|
+
> [`.agent-src.uncondensed/templates/scripts/work_engine/directives/ui/`](../../.agent-src.uncondensed/templates/scripts/work_engine/directives/ui/).
|
|
17
17
|
> Mixed under `directives/mixed/`. `ui-trivial` under
|
|
18
18
|
> `directives/ui_trivial/`. R4 (Visual Review Loop) added the
|
|
19
19
|
> a11y gate, the preview envelope, and a polish-termination rewrite
|
|
@@ -56,9 +56,9 @@ exists so the dispatcher's completeness check is satisfied; no logic
|
|
|
56
56
|
runs and no state is touched.
|
|
57
57
|
|
|
58
58
|
Source of truth for slot wiring:
|
|
59
|
-
[`directives/ui/__init__.py`](../../.agent-src.
|
|
60
|
-
[`directives/mixed/__init__.py`](../../.agent-src.
|
|
61
|
-
[`directives/ui_trivial/__init__.py`](../../.agent-src.
|
|
59
|
+
[`directives/ui/__init__.py`](../../.agent-src.uncondensed/templates/scripts/work_engine/directives/ui/__init__.py),
|
|
60
|
+
[`directives/mixed/__init__.py`](../../.agent-src.uncondensed/templates/scripts/work_engine/directives/mixed/__init__.py),
|
|
61
|
+
[`directives/ui_trivial/__init__.py`](../../.agent-src.uncondensed/templates/scripts/work_engine/directives/ui_trivial/__init__.py).
|
|
62
62
|
|
|
63
63
|
## The `ui` set — slot-by-slot
|
|
64
64
|
|
|
@@ -75,7 +75,7 @@ Mandatory pre-step. Routes on `state.ui_audit` shape:
|
|
|
75
75
|
| Anything else populated | `BLOCKED` numbered options | User picks candidate to extend (or "build new"); records `audit_path = "ambiguous"` + `candidate_pick` |
|
|
76
76
|
|
|
77
77
|
Constants live in
|
|
78
|
-
[`directives/ui/audit.py`](../../.agent-src.
|
|
78
|
+
[`directives/ui/audit.py`](../../.agent-src.uncondensed/templates/scripts/work_engine/directives/ui/audit.py):
|
|
79
79
|
`STRONG_SIMILARITY = 0.7`, `TIE_GAP = 0.05`,
|
|
80
80
|
`TESTED_AGAINST_SHADCN_MAJOR = 2`. Idempotent re-entry: once
|
|
81
81
|
`audit_path` is set the step round-trips through `SUCCESS` without
|
|
@@ -199,7 +199,7 @@ Stack-directive table mirrors apply / review with prefix
|
|
|
199
199
|
### `report` → backend renderer
|
|
200
200
|
|
|
201
201
|
Re-export of
|
|
202
|
-
[`directives.backend.report.run`](../../.agent-src.
|
|
202
|
+
[`directives.backend.report.run`](../../.agent-src.uncondensed/templates/scripts/work_engine/directives/backend/report.py).
|
|
203
203
|
The renderer is pure and state-driven; the same Markdown contract
|
|
204
204
|
serves both tracks.
|
|
205
205
|
|
|
@@ -234,7 +234,7 @@ adjustment). Phase-1 intent classifier writes
|
|
|
234
234
|
`directive_set = "ui-trivial"`.
|
|
235
235
|
|
|
236
236
|
Hard preconditions in
|
|
237
|
-
[`directives/ui_trivial/apply.py`](../../.agent-src.
|
|
237
|
+
[`directives/ui_trivial/apply.py`](../../.agent-src.uncondensed/templates/scripts/work_engine/directives/ui_trivial/apply.py):
|
|
238
238
|
|
|
239
239
|
- `MAX_FILES = 1` — exactly one file touched.
|
|
240
240
|
- `MAX_LINES_CHANGED = 5` — diff stays under five changed lines.
|
|
@@ -323,7 +323,7 @@ suite asserts every `BLOCKED` path has a matching declaration.
|
|
|
323
323
|
- [`adr-product-ui-track.md`](adr-product-ui-track.md) — locked
|
|
324
324
|
decisions for the UI track (R3) and the visual-review-loop
|
|
325
325
|
amendment (R4: a11y gate, preview envelope, polish-termination).
|
|
326
|
-
- [`existing-ui-audit` SKILL](../../.agent-src.
|
|
326
|
+
- [`existing-ui-audit` SKILL](../../.agent-src.uncondensed/skills/existing-ui-audit/SKILL.md)
|
|
327
327
|
— producer of `state.ui_audit`.
|
|
328
|
-
- [`ui-audit-gate` rule](../../.agent-src.
|
|
328
|
+
- [`ui-audit-gate` rule](../../.agent-src.uncondensed/rules/ui-audit-gate.md)
|
|
329
329
|
— the always-on rule that mirrors the audit gate at the agent layer.
|
|
@@ -7,7 +7,7 @@ keep-beta-until: 2026-08-14
|
|
|
7
7
|
|
|
8
8
|
> **Status:** active · **Stability:** beta · **Owner:** step-6-user-types-axis
|
|
9
9
|
> · **Linter:** `scripts/skill_linter.py § lint_usertype`
|
|
10
|
-
> · **Source-of-truth dir:** `.agent-src.
|
|
10
|
+
> · **Source-of-truth dir:** `.agent-src.uncondensed/user-types/`
|
|
11
11
|
> · **Sibling axis (distinct):** install-time `user-types/` (package root) — see [`adr-install-user-type-axis`](adr-install-user-type-axis.md)
|
|
12
12
|
> · **ADR:** [`adr-user-types-axis`](adr-user-types-axis.md)
|
|
13
13
|
|
|
@@ -127,7 +127,7 @@ The linter (`scripts/skill_linter.py § lint_usertype`) enforces:
|
|
|
127
127
|
- description ≤ 160 chars
|
|
128
128
|
|
|
129
129
|
Authors must use the template at
|
|
130
|
-
`.agent-src.
|
|
130
|
+
`.agent-src.uncondensed/user-types/_template/user-type.md`.
|
|
131
131
|
|
|
132
132
|
## § 7 — Versioning
|
|
133
133
|
|
|
@@ -142,5 +142,5 @@ version bump and a separate ADR.
|
|
|
142
142
|
- [`persona-schema`](persona-schema.md) — sister axis (methodology vs end-user)
|
|
143
143
|
- [`adr-user-types-axis`](adr-user-types-axis.md) — why the axis split exists
|
|
144
144
|
- [`adr-install-user-type-axis`](adr-install-user-type-axis.md) — the install-time `user_type` axis (distinct layer, same vocabulary)
|
|
145
|
-
- `.agent-src.
|
|
146
|
-
- `.agent-src.
|
|
145
|
+
- `.agent-src.uncondensed/user-types/README.md` — authoring entry point
|
|
146
|
+
- `.agent-src.uncondensed/user-types/_template/user-type.md` — template starter
|
|
@@ -21,7 +21,7 @@ gates.
|
|
|
21
21
|
## Schema
|
|
22
22
|
|
|
23
23
|
```yaml
|
|
24
|
-
# .agent-src.
|
|
24
|
+
# .agent-src.uncondensed/packs/<pack-id>.yml
|
|
25
25
|
pack:
|
|
26
26
|
id: <pack-id> # kebab-case, file name without .yml
|
|
27
27
|
audience:
|
|
@@ -52,7 +52,7 @@ pack:
|
|
|
52
52
|
| `composition.preset_id` | string | yes | Override applied to the chain documented in [`config-presets`](config-presets.md). Same opt-in semantics. |
|
|
53
53
|
| `surface.commands_allowed` | list[string] | yes | Cap = **12**. Items must appear in [`command-clusters`](command-clusters.md). The pack does **not** disable other commands — the cap is for the wizard's first-screen rendering, not enforcement. |
|
|
54
54
|
| `surface.skills_allowed` | list[string] | yes | Cap = **15**. Items must appear in `docs/skills-catalog.md`. Same render-only semantics. |
|
|
55
|
-
| `surface.personas` | list[string] | yes | Cap = **4**. Items must appear in `.agent-src.
|
|
55
|
+
| `surface.personas` | list[string] | yes | Cap = **4**. Items must appear in `.agent-src.uncondensed/personas/`. |
|
|
56
56
|
| `rationale.*` | string | yes | Forces every pack to justify its composition in plain prose; reviewed at PR time, not at runtime. |
|
|
57
57
|
|
|
58
58
|
## Resolution chain
|
|
@@ -95,7 +95,7 @@ this schema.
|
|
|
95
95
|
- **Do not** declare new commands. Use [`command-clusters`](command-clusters.md).
|
|
96
96
|
- **Do not** modify rules. Use the kernel-rule edit process.
|
|
97
97
|
- **Do not** override safety floors. Domain-safety rules
|
|
98
|
-
(`.agent-src.
|
|
98
|
+
(`.agent-src.uncondensed/rules/domain-safety-*.md`) apply
|
|
99
99
|
unconditionally — packs cannot widen the deny-list.
|
|
100
100
|
- **Do not** ship telemetry or usage hints. Packs are pure composition.
|
|
101
101
|
|
|
@@ -109,7 +109,7 @@ Three packs ship at Phase 2 Item 7 close:
|
|
|
109
109
|
| `content-engine` | `content_creator` | `balanced` | Editorial calendar, brand voice, and ghostwriter on one loop. |
|
|
110
110
|
| `agency-delivery` | `agency` | `strict` | Multi-client refine → estimate → deliver with audit-grade trace. |
|
|
111
111
|
|
|
112
|
-
Each pack lives at `.agent-src.
|
|
112
|
+
Each pack lives at `.agent-src.uncondensed/packs/<id>.yml` and is
|
|
113
113
|
covered by the validation rules above.
|
|
114
114
|
|
|
115
115
|
## See also
|