@event4u/agent-config 3.3.0 → 4.1.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 +181 -3
- package/CONTRIBUTING.md +31 -12
- package/README.md +18 -10
- 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/apply.js +238 -0
- package/dist/install/apply.js.map +1 -0
- package/dist/install/atomic.js +92 -0
- package/dist/install/atomic.js.map +1 -0
- package/dist/install/bridges/augment.js +20 -0
- package/dist/install/bridges/augment.js.map +1 -0
- package/dist/install/bridges/claude.js +44 -0
- package/dist/install/bridges/claude.js.map +1 -0
- package/dist/install/bridges/cline.js +69 -0
- package/dist/install/bridges/cline.js.map +1 -0
- package/dist/install/bridges/copilot.js +28 -0
- package/dist/install/bridges/copilot.js.map +1 -0
- package/dist/install/bridges/cursor.js +34 -0
- package/dist/install/bridges/cursor.js.map +1 -0
- package/dist/install/bridges/gemini.js +39 -0
- package/dist/install/bridges/gemini.js.map +1 -0
- package/dist/install/bridges/index.js +88 -0
- package/dist/install/bridges/index.js.map +1 -0
- package/dist/install/bridges/marker-content.js +153 -0
- package/dist/install/bridges/marker-content.js.map +1 -0
- package/dist/install/bridges/markers.js +42 -0
- package/dist/install/bridges/markers.js.map +1 -0
- package/dist/install/bridges/types.js +31 -0
- package/dist/install/bridges/types.js.map +1 -0
- package/dist/install/bridges/vscode.js +26 -0
- package/dist/install/bridges/vscode.js.map +1 -0
- package/dist/install/bridges/windsurf.js +35 -0
- package/dist/install/bridges/windsurf.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 +547 -0
- package/dist/server/routes/install.js.map +1 -0
- package/dist/server/routes/wizard.js +301 -6
- 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 +4 -3
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/ui/assets/index-BXZILUxe.css +1 -0
- package/dist/ui/assets/index-DLEuEW1V.js +35 -0
- package/dist/ui/assets/index-DLEuEW1V.js.map +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 +1 -1
- 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 +1 -1
- 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/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 +76 -11
- 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 +144 -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
|
@@ -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
|
package/docs/customization.md
CHANGED
|
@@ -66,7 +66,7 @@ ide
|
|
|
66
66
|
cost_profile
|
|
67
67
|
personal.bot_icon
|
|
68
68
|
personal.autonomy
|
|
69
|
-
|
|
69
|
+
telegraph.speak_scope
|
|
70
70
|
```
|
|
71
71
|
|
|
72
72
|
**Merge order** (lowest → highest precedence; every layer optional):
|
|
@@ -179,7 +179,7 @@ is recovered on the next server boot.
|
|
|
179
179
|
| `chat_history.enabled` | `true` | Persistent JSONL log at `agents/runtime/.agent-chat-history` for crash recovery. |
|
|
180
180
|
| `chat_history.frequency` | per profile | Logging granularity: `per_turn`, `per_phase`, or `per_tool` (see matrix below). |
|
|
181
181
|
| `chat_history.max_size_kb` | per profile | Max file size before overflow handling (see matrix below). |
|
|
182
|
-
| `chat_history.on_overflow` | per profile | `rotate` drops oldest, `
|
|
182
|
+
| `chat_history.on_overflow` | per profile | `rotate` drops oldest, `condense` marks for summarization (see matrix below). |
|
|
183
183
|
| `onboarding.onboarded` | `false` | Whether the setup wizard has run. The `onboarding-gate` rule prompts for `agent-config setup` while this is `false`. |
|
|
184
184
|
| `ai_council.enabled` | `false` | Master switch for the `/council` command. Even when enabled, every consultation asks before spending tokens. |
|
|
185
185
|
| `ai_council.members.<provider>.enabled` | `false` | Per-provider opt-in (`anthropic`, `openai`). Tokens live in `~/.event4u/agent-config/<provider>.key` (mode 0600), never in this file. Legacy `~/.config/agent-config/<provider>.key` is read as a fallback. |
|
|
@@ -226,7 +226,7 @@ to `false` in `.agent-settings.yml` to silence post-task analysis without
|
|
|
226
226
|
changing the profile.
|
|
227
227
|
|
|
228
228
|
The authoritative matrix of all matrix-controlled settings lives in
|
|
229
|
-
[`.agent-src.
|
|
229
|
+
[`.agent-src.uncondensed/templates/agent-settings.md`](../.agent-src.uncondensed/templates/agent-settings.md).
|
|
230
230
|
|
|
231
231
|
### Chat-history defaults per profile
|
|
232
232
|
|
|
@@ -240,13 +240,13 @@ behavior — the per-profile table is just the initial default.
|
|
|
240
240
|
| `chat_history.enabled` | `true` | `true` | `true` |
|
|
241
241
|
| `chat_history.frequency` | `per_turn` | `per_phase` | `per_tool` |
|
|
242
242
|
| `chat_history.max_size_kb` | `128` | `256` | `512` |
|
|
243
|
-
| `chat_history.on_overflow` | `rotate` | `rotate` | `
|
|
243
|
+
| `chat_history.on_overflow` | `rotate` | `rotate` | `condense` |
|
|
244
244
|
|
|
245
245
|
`custom` ignores these defaults — set every value explicitly.
|
|
246
246
|
|
|
247
247
|
### Verbosity
|
|
248
248
|
|
|
249
|
-
The `verbosity:` block and `
|
|
249
|
+
The `verbosity:` block and `telegraph.speak_scope` control how much narration
|
|
250
250
|
the agent emits around routine actions. Defaults are tuned for token
|
|
251
251
|
frugality — flip values to `true` (or higher tier) to restore legacy verbose
|
|
252
252
|
output. Iron-Law gates (`commit-policy`, `scope-control` git-ops,
|
|
@@ -261,10 +261,10 @@ output. Iron-Law gates (`commit-policy`, `scope-control` git-ops,
|
|
|
261
261
|
| `verbosity.intent_announcements` | `true`, `false` | `false` | Intent announcements ("Let me check…", "Now I will…", "Found it") in skill bodies. `false` = act and emit the result. |
|
|
262
262
|
| `verbosity.script_output` | `silent`, `minimal`, `verbose` | `minimal` | Stdout chatter from `scripts/*.py`, `scripts/*.sh`, and `.augment/scripts/`. `silent` = stderr only; `minimal` = one summary line per script; `verbose` = pre-Phase-10 per-step prints. Iron-Law surfaces (release confirms, install secrets prompts, error markers) ignore this key. |
|
|
263
263
|
| `verbosity.taskfile_command_echo` | `true`, `false` | `false` | Suppress the `task: [name] cmd...` echo Taskfile prints before each task body. `true` = echoes preserved (legacy behaviour); `false` = `silent: true` is set on every Phase-10 safe task. |
|
|
264
|
-
| `
|
|
264
|
+
| `telegraph.speak_scope` | `off`, `prose_only`, `aggressive` | `prose_only` | How widely telegraph-speak grammar applies in chat. `off` = no telegraph; `prose_only` = telegraph in body prose, numbered options + Iron-Law-literal blocks stay full prose; `aggressive` = telegraph everywhere except Iron-Law literals. |
|
|
265
265
|
|
|
266
266
|
The cross-rule index for these defaults lives in
|
|
267
|
-
[`.agent-src.
|
|
267
|
+
[`.agent-src.uncondensed/contexts/contracts/frugality-charter.md`](../.agent-src.uncondensed/contexts/contracts/frugality-charter.md).
|
|
268
268
|
Writer skills (`skill-writing`, `rule-writing`, `command-writing`,
|
|
269
269
|
`guideline-writing`, `roadmap-writing`, `persona-writing`,
|
|
270
270
|
`agent-docs-writing`, `context-authoring`, `conventional-commits-writing`,
|
|
@@ -394,7 +394,7 @@ tarball and is the source of truth consumed by:
|
|
|
394
394
|
> When you read "the Laravel pack", picture a filter over the shared
|
|
395
395
|
> artefact tree — not a separate npm package. The day ADR-011's
|
|
396
396
|
> extraction trigger flips, the same scan output drives the split;
|
|
397
|
-
> until then, every artefact lives under `.agent-src.
|
|
397
|
+
> until then, every artefact lives under `.agent-src.uncondensed/`.
|
|
398
398
|
|
|
399
399
|
Alongside the JSON manifest, the scanner writes
|
|
400
400
|
`dist/discovery/discovery-manifest.json.sha256` — a sidecar hash that
|
|
@@ -502,6 +502,26 @@ in `.agent-settings.yml`; the command then exits 0 with a one-line
|
|
|
502
502
|
notice instead of producing a trace. Exit codes: `0` rendered or
|
|
503
503
|
disabled · `1` no recent run found · `2` invocation error.
|
|
504
504
|
|
|
505
|
+
## Troubleshooting
|
|
506
|
+
|
|
507
|
+
### A skill appears twice in my AI tool
|
|
508
|
+
|
|
509
|
+
Most common cause: cross-scope drift between a user-global install (e.g.
|
|
510
|
+
`~/.claude/skills/`) and a project-local install (e.g. `./.claude/skills/`).
|
|
511
|
+
Run the probe to confirm:
|
|
512
|
+
|
|
513
|
+
```bash
|
|
514
|
+
task probe:skills
|
|
515
|
+
# or directly: python3 scripts/probe_skill_registration.py
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
The probe lists every registration across all six tools and flags
|
|
519
|
+
`DUPLICATE` (same skill in ≥ 2 sources) and `DRIFT` (same skill, different
|
|
520
|
+
descriptions or versions — the actual 2026-05-25 failure mode). To clean a
|
|
521
|
+
stale install at the other scope: `bash scripts/cleanup_other_scope.sh --confirm`.
|
|
522
|
+
Background: [`docs/contracts/skill-distribution-channels.md`](contracts/skill-distribution-channels.md)
|
|
523
|
+
+ [`docs/contracts/install-scopes.md`](contracts/install-scopes.md).
|
|
524
|
+
|
|
505
525
|
---
|
|
506
526
|
|
|
507
527
|
← [Back to README](../README.md)
|
|
@@ -37,7 +37,7 @@ landed in `kernel-membership.md` § 5.2:
|
|
|
37
37
|
**Variant (a) — status quo through P2.2 + P3.1.**
|
|
38
38
|
|
|
39
39
|
- Keep `agent-authority` in the kernel.
|
|
40
|
-
- Keep `autonomous-execution` in `
|
|
40
|
+
- Keep `autonomous-execution` in `condense-and-keep` (auto-tier) per
|
|
41
41
|
`docs/contracts/rule-classification.md` § 3.2.
|
|
42
42
|
- Re-evaluate the swap as a P3.2 ADR after the router schema and
|
|
43
43
|
compiler ship.
|
|
@@ -47,7 +47,7 @@ landed in `kernel-membership.md` § 5.2:
|
|
|
47
47
|
### Accepted
|
|
48
48
|
|
|
49
49
|
- 25k hard cap stays intact (no governance erosion via cap-raise).
|
|
50
|
-
- 2 Iron-Law-override ADRs land in P2.2 if post-
|
|
50
|
+
- 2 Iron-Law-override ADRs land in P2.2 if post-condensation
|
|
51
51
|
measurement confirms overage (`direct-answers`, `language-and-tone`).
|
|
52
52
|
- The 9-rule set carried into P2.2 is the locked § 4 list.
|
|
53
53
|
|
|
@@ -78,7 +78,7 @@ precedence at build time. At that point:
|
|
|
78
78
|
(`docs/guidelines/agent-authority.md`) as documentation of the
|
|
79
79
|
band model.
|
|
80
80
|
- `autonomous-execution` can be promoted into the kernel under a
|
|
81
|
-
new ADR (ADR-N) that replaces this one, *if* its post-
|
|
81
|
+
new ADR (ADR-N) that replaces this one, *if* its post-condensation
|
|
82
82
|
size fits the cap with no further demotion.
|
|
83
83
|
|
|
84
84
|
This deferral is **not** indefinite: P3.2 ships the router compiler;
|
|
@@ -90,7 +90,7 @@ migrations) so the migration plan reflects the final kernel set.
|
|
|
90
90
|
- **Variant (b) — swap + raise cap to 27k.** Rejected. Raising the
|
|
91
91
|
hard cap mid-roadmap weakens the original 25k contract that the
|
|
92
92
|
whole roadmap is built around. If 27k turns out to be the real
|
|
93
|
-
ceiling, that is a separate ADR after
|
|
93
|
+
ceiling, that is a separate ADR after condensation measurement
|
|
94
94
|
proves the band, not a pre-emptive concession.
|
|
95
95
|
- **Variant (c) — swap + demote `verify-before-complete`.**
|
|
96
96
|
Rejected. `verify-before-complete` carries criterion #1 (Iron
|
|
@@ -105,5 +105,5 @@ migrations) so the migration plan reflects the final kernel set.
|
|
|
105
105
|
- `docs/contracts/kernel-membership.md` § 4, § 5.2
|
|
106
106
|
- `agents/runtime/council/sessions/20260506T044941Z-phase1-cross-check-r2.json` <!-- council-ref-allowed: ADR decision trace -->
|
|
107
107
|
- `agents/roadmaps/road-to-kernel-and-router.md` § Decisions, § Phase 2
|
|
108
|
-
- `.agent-src.
|
|
109
|
-
- `.agent-src.
|
|
108
|
+
- `.agent-src.uncondensed/rules/agent-authority.md` (subject)
|
|
109
|
+
- `.agent-src.uncondensed/rules/autonomous-execution.md` (proposed promotion)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# ADR-002 — Kernel-Bucket Cap Raise (25k → 26k) and Per-Rule Iron-Law Overrides
|
|
2
2
|
|
|
3
3
|
- **Status:** Accepted (2026-05-06)
|
|
4
|
-
- **Phase:** Road to Rule Kernel and Router · P2.2 (Heavy
|
|
4
|
+
- **Phase:** Road to Rule Kernel and Router · P2.2 (Heavy Condensation)
|
|
5
5
|
- **Supersedes:** none — extends the Council R2 amendments locked in
|
|
6
6
|
`docs/contracts/kernel-membership.md` § 5.1 (median r=0.712, per-rule cap 2.5k,
|
|
7
7
|
kernel-bucket 25k).
|
|
@@ -10,27 +10,27 @@
|
|
|
10
10
|
|
|
11
11
|
## Context
|
|
12
12
|
|
|
13
|
-
P1.3 projected the post-
|
|
13
|
+
P1.3 projected the post-condensation kernel bucket at **23 071 chars** using
|
|
14
14
|
the median pilot ratio r=0.712 (3 pilots: agent-authority, direct-answers,
|
|
15
15
|
language-and-tone). Pilot rules were **short to medium** (1.0k–2.5k baseline).
|
|
16
16
|
|
|
17
|
-
P2.2 applied the same
|
|
17
|
+
P2.2 applied the same condensation discipline to the remaining 6 kernel rules
|
|
18
18
|
(ask-when-uncertain, commit-policy, no-cheap-questions,
|
|
19
19
|
non-destructive-by-default, scope-control, plus the verify-before-complete
|
|
20
20
|
auto-tier rule kept by ADR-001). Iron-Law SHA preservation verified for
|
|
21
21
|
all 8 rules with Iron-Law fences (`scripts/iron_law_sha.py`).
|
|
22
22
|
|
|
23
|
-
**Empirical post-
|
|
23
|
+
**Empirical post-condensation measurements (2026-05-06):**
|
|
24
24
|
|
|
25
25
|
| metric | projected | actual |
|
|
26
26
|
|---|---:|---:|
|
|
27
27
|
| kernel bucket sum | 23 071 | **25 590** |
|
|
28
|
-
|
|
|
28
|
+
| condensation ratio r (kernel-wide) | 0.712 (median pilot) | **0.795** |
|
|
29
29
|
| rules > 2.5k cap | 2 (pilots) | 6 |
|
|
30
30
|
| rules > 4.0k ceiling | 0 | 0 |
|
|
31
31
|
|
|
32
32
|
The actual ratio (0.795) is worse than the pilot median (0.712) because
|
|
33
|
-
**longer rules
|
|
33
|
+
**longer rules condense less efficiently than short ones**: each Iron-Law
|
|
34
34
|
rule has a fixed payload of frontmatter, Iron-Law fence, exception
|
|
35
35
|
enumeration, see-also list — shrinkage is bounded by what cannot leave
|
|
36
36
|
the rule without breaking the rule's contract. The 5 longest source rules
|
|
@@ -61,7 +61,7 @@ enumeration + pre-send self-check + decline/fence semantics).
|
|
|
61
61
|
| `direct-answers` | 2 841 | +341 | ✓ |
|
|
62
62
|
|
|
63
63
|
3. **Cap stays sticky.** Future kernel additions or rule-body growth must
|
|
64
|
-
either (a)
|
|
64
|
+
either (a) condense within the 26k bucket, (b) externalise to a
|
|
65
65
|
`contexts/authority/*` companion, or (c) require a follow-up ADR.
|
|
66
66
|
|
|
67
67
|
## Rationale
|
|
@@ -92,23 +92,23 @@ place.
|
|
|
92
92
|
The `commit-policy` rule was trimmed below 2.5k (2 354 chars) by removing
|
|
93
93
|
a redundant cross-reference line, demonstrating that aggressive trimming
|
|
94
94
|
is possible where the rule does not carry an enumeration. The 6 overrides
|
|
95
|
-
are the rules where further
|
|
95
|
+
are the rules where further condensation would force semantic loss.
|
|
96
96
|
|
|
97
97
|
## Consequences
|
|
98
98
|
|
|
99
99
|
- **Pro:** Iron-Law fidelity preserved — every fence still byte-identical
|
|
100
100
|
to baseline (verified by `iron_law_sha.py --all-kernel`).
|
|
101
|
-
- **Pro:** Empirical
|
|
101
|
+
- **Pro:** Empirical condensation r=0.795 documented; future kernel work
|
|
102
102
|
uses this as the realistic ratio (not 0.712, which was a pilot-skewed
|
|
103
103
|
optimum).
|
|
104
104
|
- **Pro:** Override ceiling (4 000) untouched — no rule grows
|
|
105
105
|
unboundedly; the 4k cap remains the next checkpoint.
|
|
106
106
|
- **Con:** 25 590 / 26 000 = 98.4 % bucket utilisation. Adding any
|
|
107
|
-
10th kernel rule would require either
|
|
107
|
+
10th kernel rule would require either condensation of an existing rule
|
|
108
108
|
or a further cap raise.
|
|
109
109
|
- **Con:** ratio 0.795 means future "always" promotions cost more than
|
|
110
110
|
Phase 1 estimated. Phase 4 token-budget measurements should treat
|
|
111
|
-
0.795 as the reference
|
|
111
|
+
0.795 as the reference condensation rate.
|
|
112
112
|
|
|
113
113
|
## Rollback
|
|
114
114
|
|
|
@@ -120,7 +120,7 @@ ceiling.
|
|
|
120
120
|
|
|
121
121
|
- [`docs/contracts/command-clusters.md`](../contracts/command-clusters.md)
|
|
122
122
|
— locked cluster set + sub-command naming contract.
|
|
123
|
-
- [`.agent-src.
|
|
123
|
+
- [`.agent-src.uncondensed/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md`](../../.agent-src.uncondensed/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md)
|
|
124
124
|
— runtime routing semantics and the colon-canonical rule.
|
|
125
|
-
- [`.agent-src.
|
|
125
|
+
- [`.agent-src.uncondensed/contexts/execution/roadmap-process-loop.md`](../../.agent-src.uncondensed/contexts/execution/roadmap-process-loop.md)
|
|
126
126
|
— the shared mechanics that motivated the cluster shape.
|
|
@@ -234,7 +234,7 @@ documentation rewrite for marginal additional savings.
|
|
|
234
234
|
(Phase 5.4 R3 raw debate)
|
|
235
235
|
- `docs/decisions/ADR-rule-kernel-and-router.md` (kernel-membership
|
|
236
236
|
contract — Phase 5 changes leave kernel untouched per Lever C lock)
|
|
237
|
-
- `.agent-src.
|
|
238
|
-
- `.agent-src.
|
|
239
|
-
- `.agent-src.
|
|
240
|
-
- `.agent-src.
|
|
237
|
+
- `.agent-src.uncondensed/rules/guidelines.md` (deprecated subject)
|
|
238
|
+
- `.agent-src.uncondensed/rules/size-enforcement.md` (merged subject)
|
|
239
|
+
- `.agent-src.uncondensed/rules/package-ci-checks.md` (demoted subject)
|
|
240
|
+
- `.agent-src.uncondensed/rules/analysis-skill-routing.md` (demoted subject)
|