@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
|
@@ -19,7 +19,7 @@ This contract defines the **schema** of the file-ownership matrix: the
|
|
|
19
19
|
machine-readable JSON at `docs/contracts/file-ownership-matrix.json` and
|
|
20
20
|
the human-readable mirror at
|
|
21
21
|
`agents/settings/contexts/structural/file-ownership-matrix.md`. Both are
|
|
22
|
-
regenerated from `.agent-src.
|
|
22
|
+
regenerated from `.agent-src.uncondensed/` by the generator and locked
|
|
23
23
|
by CI.
|
|
24
24
|
|
|
25
25
|
**Status:** internal-locked (`stability: beta`). Schema bumps require a
|
|
@@ -49,7 +49,7 @@ The JSON document is a single object:
|
|
|
49
49
|
{
|
|
50
50
|
"version": 1,
|
|
51
51
|
"generated_by": "scripts/generate_ownership_matrix.py",
|
|
52
|
-
"source_of_truth": ".agent-src.
|
|
52
|
+
"source_of_truth": ".agent-src.uncondensed/",
|
|
53
53
|
"files": {
|
|
54
54
|
"<repo-root-relative path>": {
|
|
55
55
|
"kind": "rule | skill | command | context | persona",
|
|
@@ -111,7 +111,7 @@ backstop; the consistency gate fails if regeneration drifts.
|
|
|
111
111
|
## Scope notes (v1)
|
|
112
112
|
|
|
113
113
|
- **Greppable surface:** `rules/`, `skills/`, `commands/`, `contexts/`,
|
|
114
|
-
`personas/` under `.agent-src.
|
|
114
|
+
`personas/` under `.agent-src.uncondensed/`. Generated tool
|
|
115
115
|
projections (`.augment/`, `.claude/`, `.cursor/`, …) are intentionally
|
|
116
116
|
ignored — they are downstream of the source of truth.
|
|
117
117
|
- **`skill:` frontmatter in rules** (named in roadmap 0.1.2) is reserved.
|
|
@@ -10,7 +10,7 @@ keep-beta-until: 2026-08-19
|
|
|
10
10
|
> ADR is the decision; this file is the worked-example reference linters,
|
|
11
11
|
> installer, and contributors cite at runtime.
|
|
12
12
|
|
|
13
|
-
Every `.md` artefact under `.agent-src.
|
|
13
|
+
Every `.md` artefact under `.agent-src.uncondensed/` MUST declare the five
|
|
14
14
|
ADR-013 discovery keys. The release-time manifest builder
|
|
15
15
|
(`scripts/build_discovery_manifest.py`) derives all workspace/pack assignment
|
|
16
16
|
from these alone — **no manual workspace or pack list is ever maintained**.
|
|
@@ -118,7 +118,7 @@ the linter rejects that collision.
|
|
|
118
118
|
| Surface | What runs | When |
|
|
119
119
|
|---|---|---|
|
|
120
120
|
| Local | `task lint-artefact-frontmatter` | manual / pre-commit |
|
|
121
|
-
| Pre-commit | `pre-commit-roadmap-progress` template | when `.agent-src.
|
|
121
|
+
| Pre-commit | `pre-commit-roadmap-progress` template | when `.agent-src.uncondensed/*.md`, `config/discovery/*.yml`, or the linter itself is staged |
|
|
122
122
|
| CI | `task ci` → `lint-artefact-frontmatter` | every push / PR |
|
|
123
123
|
|
|
124
124
|
Install the pre-commit hook with:
|
|
@@ -133,8 +133,8 @@ are staged.
|
|
|
133
133
|
|
|
134
134
|
## Roundtrip invariant
|
|
135
135
|
|
|
136
|
-
Frontmatter survives the `task sync`
|
|
136
|
+
Frontmatter survives the `task sync` condensation pipeline. Path-bearing
|
|
137
137
|
keys (`load_context`) may be rewritten relative to the projected location,
|
|
138
138
|
but the five Phase-1 keys above are byte-stable between
|
|
139
|
-
`.agent-src.
|
|
139
|
+
`.agent-src.uncondensed/`, `.agent-src/`, and `.augment/`. Enforced by
|
|
140
140
|
`tests/test_frontmatter_roundtrip.py`.
|
|
@@ -25,7 +25,7 @@ explicit `accept` step on `/ghostwriter:fetch` re-runs.
|
|
|
25
25
|
profiles live here. **Gitignored by default** via the package-managed
|
|
26
26
|
`.gitignore` block. A `--shared` opt-in to commit profiles is
|
|
27
27
|
deferred to v2; only the doc note lands in v1.
|
|
28
|
-
- **Package source** — `.agent-src.
|
|
28
|
+
- **Package source** — `.agent-src.uncondensed/ghostwriter/` ships
|
|
29
29
|
the README, this schema doc, and `fictional: true` fixtures only.
|
|
30
30
|
**Zero real-person profiles ever ship with the OSS package.** A CI
|
|
31
31
|
lint (`task lint-ghostwriter-source`) enforces this rule by failing
|
|
@@ -181,7 +181,7 @@ attribution stays deterministic.
|
|
|
181
181
|
fixtures are schema examples for a single canonical name; aliases are a
|
|
182
182
|
consumer-only deployment feature. The package-source lint
|
|
183
183
|
(`task lint-ghostwriter-source`) fails on `aliases:` in
|
|
184
|
-
`.agent-src.
|
|
184
|
+
`.agent-src.uncondensed/ghostwriter/`.
|
|
185
185
|
|
|
186
186
|
### Settings toggle (consumer-only)
|
|
187
187
|
|
|
@@ -293,7 +293,7 @@ instead of merging.
|
|
|
293
293
|
|
|
294
294
|
The lint runs in `task ci` and fails on:
|
|
295
295
|
|
|
296
|
-
1. Any file under `.agent-src.
|
|
296
|
+
1. Any file under `.agent-src.uncondensed/ghostwriter/` whose stem is
|
|
297
297
|
**not** on the fixture allowlist (`scripts/ghostwriter_fixture_allowlist.txt`).
|
|
298
298
|
2. Any allowlisted file missing `fictional: true` in frontmatter.
|
|
299
299
|
3. Any package-source file (`fictional: true`) carrying an `aliases:`
|
|
@@ -135,7 +135,7 @@ tracked under the Phase 6 follow-ups.
|
|
|
135
135
|
|
|
136
136
|
`/api/apply` accepts a discriminated-union body keyed on
|
|
137
137
|
`schema_version`. The full JSON Schema lives at
|
|
138
|
-
[`schemas/wizard-apply-payload.schema.json`](../../schemas/wizard-apply-payload.schema.json).
|
|
138
|
+
[`internal/schemas/wizard-apply-payload.schema.json`](../../internal/schemas/wizard-apply-payload.schema.json).
|
|
139
139
|
|
|
140
140
|
| `schema_version` | Variant | Shape |
|
|
141
141
|
|---|---|---|
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Harness Expectations — when AI tool behaviour looks like a package bug but isn't
|
|
2
|
+
|
|
3
|
+
**Status:** Active (Phase D of `road-to-clean-skill-distribution-channels.md`)
|
|
4
|
+
**Owner:** maintainer-team
|
|
5
|
+
**Inputs:** Phase D roadmap steps + the 2026-05-25 misdiagnosis chat session that opened this track.
|
|
6
|
+
|
|
7
|
+
## The case for this document
|
|
8
|
+
|
|
9
|
+
On 2026-05-25 a Claude Code session surfaced three behaviours that looked like `event4u/agent-config` bugs. Two of the three turned out to be **host-harness behaviour** the package has no control over. The third (cross-scope skill drift) was a real package-side bug fixed in Phases A–C. This document captures the host-side three so the next agent / onboarding session / opened issue does not re-run the misdiagnosis loop.
|
|
10
|
+
|
|
11
|
+
## Class A — Plugin-namespaced peer skills
|
|
12
|
+
|
|
13
|
+
### Symptom
|
|
14
|
+
|
|
15
|
+
The session shows skills under namespaces like `codex:`, `cc-gemini-plugin:`, or another `<vendor>:` prefix:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
- codex:setup
|
|
19
|
+
- cc-gemini-plugin:gemini-agent
|
|
20
|
+
- codex:rescue
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
These names do NOT appear in `event4u/agent-config`'s skill catalog, the README, or the contracts.
|
|
24
|
+
|
|
25
|
+
### What's actually happening
|
|
26
|
+
|
|
27
|
+
Claude Code (and similar harnesses) supports **sibling plugins** in addition to the primary `event4u/agent-config` install. Each sibling plugin owns its own skills, namespaced by the plugin id. The harness surfaces every loaded plugin's skills in the same `<available_skills>` list during the session.
|
|
28
|
+
|
|
29
|
+
- `codex:*` skills come from a sibling plugin that wraps the Codex CLI.
|
|
30
|
+
- `cc-gemini-plugin:*` skills come from a sibling plugin that wraps Gemini-CLI integration.
|
|
31
|
+
|
|
32
|
+
`event4u/agent-config` does not ship, control, or update these plugins. They are independent installs by independent maintainers.
|
|
33
|
+
|
|
34
|
+
### What the package can do
|
|
35
|
+
|
|
36
|
+
Nothing — sibling plugins are out of scope by construction. The user can:
|
|
37
|
+
|
|
38
|
+
- Remove the sibling plugin if it is unwanted (via the harness's plugin management — outside this package).
|
|
39
|
+
- Ignore the namespaced names; they will not collide with this package's skill IDs because the prefix differs.
|
|
40
|
+
|
|
41
|
+
### Where to look for the true source
|
|
42
|
+
|
|
43
|
+
Per Claude Code: `claude plugin list` (or equivalent) shows every loaded plugin. Each `<vendor>:` namespace traces back to a plugin row in that listing. Bug reports for those skills go to the respective plugin maintainer.
|
|
44
|
+
|
|
45
|
+
## Class B — Deferred tools that need ToolSearch
|
|
46
|
+
|
|
47
|
+
### Symptom
|
|
48
|
+
|
|
49
|
+
A session sees a `<system-reminder>` block like:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
The following deferred tools are now available via ToolSearch.
|
|
53
|
+
Their schemas are NOT loaded — calling them directly will fail with
|
|
54
|
+
InputValidationError. Use ToolSearch with query "select:<name>[,<name>...]"
|
|
55
|
+
to load tool schemas before calling them:
|
|
56
|
+
TaskCreate
|
|
57
|
+
WebFetch
|
|
58
|
+
Monitor
|
|
59
|
+
mcp__claude_ai_Linear__authenticate
|
|
60
|
+
...
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
The named tools are real — they show up in the harness's runtime — but the agent cannot call them directly because the tool **schema** isn't loaded yet.
|
|
64
|
+
|
|
65
|
+
### What's actually happening
|
|
66
|
+
|
|
67
|
+
Claude Code's tool-loading is **context-budgeted**. The full tool registry (TaskCreate, WebFetch, every MCP tool from every registered server, etc.) can be many kilobytes of JSON-schema. Loading every schema on every turn would blow the context budget for routine reads. The harness solves this by registering tool **names** up-front and deferring schema load until `ToolSearch` is called — that's the on-ramp.
|
|
68
|
+
|
|
69
|
+
This is not a package issue, and `event4u/agent-config` cannot pre-load these schemas — the harness owns the budget.
|
|
70
|
+
|
|
71
|
+
### What the package can do
|
|
72
|
+
|
|
73
|
+
Nothing — the loading strategy is the harness's contract with the model. Skills that want to use a deferred tool must:
|
|
74
|
+
|
|
75
|
+
1. Run `ToolSearch` with `select:<name>` to load the schema.
|
|
76
|
+
2. Call the tool with the now-known parameters.
|
|
77
|
+
|
|
78
|
+
Skills in this package that need deferred tools document the load step explicitly (see `agents-md-thin-root` § Tool loading for the pattern).
|
|
79
|
+
|
|
80
|
+
### Where to look for the true source
|
|
81
|
+
|
|
82
|
+
Per Claude Code's documentation on tool surfaces and the `ToolSearch` primitive. The package does not own this behaviour.
|
|
83
|
+
|
|
84
|
+
## Class C — Duplicate skill registration (real package bug, fixed in Phases A–C)
|
|
85
|
+
|
|
86
|
+
### Symptom
|
|
87
|
+
|
|
88
|
+
The same skill appears twice in `<available_skills>` with different `description:` strings, or behaves inconsistently across calls.
|
|
89
|
+
|
|
90
|
+
### What's actually happening
|
|
91
|
+
|
|
92
|
+
A user-global install (e.g. `~/.claude/skills/`) and a project-local install (`./.claude/skills/`) coexist at **different versions**. The harness loads both. The earlier register wins the description in some calls, the later in others.
|
|
93
|
+
|
|
94
|
+
Unlike Classes A and B, this is a real package-side issue.
|
|
95
|
+
|
|
96
|
+
### What the package does
|
|
97
|
+
|
|
98
|
+
1. **Default install is filesystem-only** ([`skill-distribution-channels.md`](skill-distribution-channels.md)).
|
|
99
|
+
2. **Pre-flight scope guard** refuses installs that would create cross-scope drift ([`install-scopes.md`](install-scopes.md)).
|
|
100
|
+
3. **Post-install probe** surfaces any remaining drift after install (`task probe:skills`).
|
|
101
|
+
4. **Cleanup script** for stale other-scope installs (`bash scripts/cleanup_other_scope.sh --confirm`).
|
|
102
|
+
|
|
103
|
+
### Where to look for the true source
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
task probe:skills
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
The probe lists every duplicate / drift finding with the exact source paths so the cause is visible in one read.
|
|
110
|
+
|
|
111
|
+
## When in doubt — diagnostic sequence
|
|
112
|
+
|
|
113
|
+
1. Run `task probe:skills` — rules out Class C.
|
|
114
|
+
2. If the suspicious skill carries a `<vendor>:` prefix you don't recognise → Class A. Check `claude plugin list`.
|
|
115
|
+
3. If the harness logs `deferred tools … available via ToolSearch` → Class B. The skill needs an explicit `ToolSearch` step.
|
|
116
|
+
4. None of the above → file an issue at https://github.com/event4u-app/agent-config with the output of `task probe:skills` attached.
|
|
117
|
+
|
|
118
|
+
## See also
|
|
119
|
+
|
|
120
|
+
- [`skill-distribution-channels.md`](skill-distribution-channels.md) — canonical channel per tool.
|
|
121
|
+
- [`install-scopes.md`](install-scopes.md) — scope guard contract.
|
|
122
|
+
- [`agents/evidence/audits/2026-05-distribution-channels/`](../../agents/evidence/audits/2026-05-distribution-channels/) — the underlying audits.
|
|
123
|
+
- [`README.md` § Harness expectations](../../README.md#harness-expectations) — front-of-house pointer to this contract.
|
|
@@ -12,7 +12,7 @@ keep-beta-until: 2026-08-12
|
|
|
12
12
|
> - **Created:** 2026-04-22
|
|
13
13
|
> - **Status:** Phase 1 shipped 2026-04-23 — `DeliveryState` +
|
|
14
14
|
> dispatcher live under
|
|
15
|
-
> [`.agent-src.
|
|
15
|
+
> [`.agent-src.uncondensed/templates/scripts/implement_ticket/`](../../.agent-src.uncondensed/templates/scripts/implement_ticket/).
|
|
16
16
|
> Step wiring (Phase 2) still open. Schema **v1** envelope
|
|
17
17
|
> (`work_engine.state` / `work_engine.migration.v0_to_v1`) shipped
|
|
18
18
|
> 2026-04-27 as R1 Phase 2 — see [State schema v1](#state-schema-v1)
|
|
@@ -265,7 +265,7 @@ Bounded per the top-level roadmap rule:
|
|
|
265
265
|
- **Four allowed types:** `domain-invariants`,
|
|
266
266
|
`architecture-decisions`, `incident-learnings`,
|
|
267
267
|
`historical-patterns`. All four exist in the
|
|
268
|
-
[templates directory](../../.agent-src.
|
|
268
|
+
[templates directory](../../.agent-src.uncondensed/templates/agents/memory/).
|
|
269
269
|
- **Keys:** files touched by the plan, symbols referenced by the
|
|
270
270
|
ticket.
|
|
271
271
|
- **Decision-change rule:** a memory hit that did not change an
|
|
@@ -278,7 +278,7 @@ Bounded per the top-level roadmap rule:
|
|
|
278
278
|
|
|
279
279
|
Read from `.agent-settings.yml` `roles.active_role` and resolved
|
|
280
280
|
via `resolve_policy()` in
|
|
281
|
-
[`persona_policy.py`](../../.agent-src.
|
|
281
|
+
[`persona_policy.py`](../../.agent-src.uncondensed/templates/scripts/implement_ticket/persona_policy.py).
|
|
282
282
|
Policies live alongside the dispatcher so the flow can consume
|
|
283
283
|
them directly; the shared
|
|
284
284
|
[`role-contracts`](../../docs/guidelines/agent-infra/role-contracts.md)
|
|
@@ -319,7 +319,7 @@ skill.
|
|
|
319
319
|
When a step returns `blocked`, the orchestrator:
|
|
320
320
|
|
|
321
321
|
1. Emits the numbered questions per
|
|
322
|
-
[`user-interaction`](../../.agent-src.
|
|
322
|
+
[`user-interaction`](../../.agent-src.uncondensed/rules/user-interaction.md).
|
|
323
323
|
2. Writes a partial report up to the last successful step.
|
|
324
324
|
3. Exits with a `blocked` status — no guess, no fallback.
|
|
325
325
|
|
|
@@ -332,7 +332,7 @@ the context. V1 explicitly does **not** attempt resumable sessions.
|
|
|
332
332
|
Every step declares — in code — the conditions under which it
|
|
333
333
|
can return `blocked`. The declarations live as module-level
|
|
334
334
|
`AMBIGUITIES` tuples (see
|
|
335
|
-
[`directives/backend/__init__.py`](../../.agent-src.
|
|
335
|
+
[`directives/backend/__init__.py`](../../.agent-src.uncondensed/templates/scripts/work_engine/directives/backend/__init__.py)
|
|
336
336
|
`.all_ambiguities()`). The
|
|
337
337
|
[`test_ambiguity_coverage.py`](../../tests/implement_ticket/test_ambiguity_coverage.py)
|
|
338
338
|
suite locks the contract: adding a new `blocked` path without
|
|
@@ -377,7 +377,7 @@ empty, but all headings are present unless explicitly marked
|
|
|
377
377
|
because nothing was changed.
|
|
378
378
|
|
|
379
379
|
Implementation: see
|
|
380
|
-
[`directives/backend/report.py`](../../.agent-src.
|
|
380
|
+
[`directives/backend/report.py`](../../.agent-src.uncondensed/templates/scripts/work_engine/directives/backend/report.py).
|
|
381
381
|
Section renderers are pure and deterministic; consumers can rely
|
|
382
382
|
on the heading order and on each section either rendering with
|
|
383
383
|
content or being omitted per the rules above.
|
|
@@ -621,6 +621,6 @@ are blocked by `freeze-guard.yml::manifest-integrity` at PR time.
|
|
|
621
621
|
- [`../../.github/workflows/freeze-guard.yml`](../../.github/workflows/freeze-guard.yml) — manifest-integrity + live-replay gates
|
|
622
622
|
- [`agent-memory-contract.md`](agent-memory-contract.md)
|
|
623
623
|
- [`../../docs/guidelines/agent-infra/role-contracts.md`](../../docs/guidelines/agent-infra/role-contracts.md)
|
|
624
|
-
- [`../../.agent-src.
|
|
625
|
-
- [`../../.agent-src.
|
|
626
|
-
- [`../../.agent-src.
|
|
624
|
+
- [`../../.agent-src.uncondensed/rules/user-interaction.md`](../../.agent-src.uncondensed/rules/user-interaction.md)
|
|
625
|
+
- [`../../.agent-src.uncondensed/rules/scope-control.md`](../../.agent-src.uncondensed/rules/scope-control.md)
|
|
626
|
+
- [`../../.agent-src.uncondensed/rules/minimal-safe-diff.md`](../../.agent-src.uncondensed/rules/minimal-safe-diff.md)
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Install Scopes — user-global vs project-local
|
|
2
|
+
|
|
3
|
+
**Status:** Active (locked 2026-05-25 via Phase B of `road-to-clean-skill-distribution-channels.md`)
|
|
4
|
+
**Owner:** maintainer-team
|
|
5
|
+
**Inputs:** [`docs/contracts/skill-distribution-channels.md`](skill-distribution-channels.md), [`agents/evidence/audits/2026-05-distribution-channels/03-installer-scope-flow.md`](../../agents/evidence/audits/2026-05-distribution-channels/03-installer-scope-flow.md)
|
|
6
|
+
|
|
7
|
+
## Rule
|
|
8
|
+
|
|
9
|
+
`event4u/agent-config` may be installed at **one** of two scopes per developer machine:
|
|
10
|
+
|
|
11
|
+
| Scope | Lives at | Default for | Rationale |
|
|
12
|
+
|---|---|---|---|
|
|
13
|
+
| **project-local** | `<project-root>/.augment/`, `<project-root>/.claude/skills/`, … | Application repos | The skills, rules, and personas are pinned alongside the code they serve. The install is reproducible from the repo. |
|
|
14
|
+
| **user-global** | `~/.augment/`, `~/.claude/skills/`, … | Tooling repos / dotfiles | The same skills follow the developer across every project they touch. Useful when no specific repo "owns" the install. |
|
|
15
|
+
|
|
16
|
+
Installing at **both** scopes simultaneously is the failure mode the canonical-channel contract prevents — the host harness loads both registrations, and any version drift surfaces as duplicate skills with stale frontmatter (the 2026-05-25 bug).
|
|
17
|
+
|
|
18
|
+
## The installer enforces this
|
|
19
|
+
|
|
20
|
+
`scripts/install.sh` runs `scripts/_lib/scope_guard.sh` before any file write:
|
|
21
|
+
|
|
22
|
+
1. **`OK`** — no install at the other scope. Proceed.
|
|
23
|
+
2. **`WARN`** — install at the other scope, same version. Same content; duplicate registration but no drift. Surface a warning, proceed.
|
|
24
|
+
3. **`DRIFT`** — install at the other scope, different version. Block with a numbered-options prompt:
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
1. Abort install — fix drift first (recommended)
|
|
28
|
+
2. Upgrade the OTHER scope first
|
|
29
|
+
3. Force install at this scope — accept drift (set SCOPE_GUARD_BYPASS=1)
|
|
30
|
+
4. Clean the other scope (bash scripts/cleanup_other_scope.sh --confirm)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Non-interactive shells default to **abort**. CI runs and the orchestrator set `SCOPE_GUARD_BYPASS=1` to skip the gate.
|
|
34
|
+
|
|
35
|
+
The `agent-config setup` wizard exposes the same check at `GET /api/v1/wizard/scope-guard` (extended-mode endpoint). The first wizard step renders the verdict before the user picks an install scope.
|
|
36
|
+
|
|
37
|
+
## How to clean a stale other-scope install
|
|
38
|
+
|
|
39
|
+
Use the companion script:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Dry-run (default) — list what would be removed
|
|
43
|
+
bash scripts/cleanup_other_scope.sh --user
|
|
44
|
+
|
|
45
|
+
# Confirm and delete
|
|
46
|
+
bash scripts/cleanup_other_scope.sh --user --confirm
|
|
47
|
+
|
|
48
|
+
# Narrow to a single tool
|
|
49
|
+
bash scripts/cleanup_other_scope.sh --user --confirm --tools=claude-code
|
|
50
|
+
|
|
51
|
+
# Remove from a specific project root
|
|
52
|
+
bash scripts/cleanup_other_scope.sh --project /path/to/proj --confirm
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
The script refuses to delete anything without `--confirm` per `non-destructive-by-default`. It only touches the tool-scoped paths the contract names (`.claude/skills/`, `.augment/`, `.cursor/rules/`, `.clinerules/`, `.windsurf/rules/`, `.github/copilot-instructions.md`); the rest of the scope root is never modified.
|
|
56
|
+
|
|
57
|
+
## When to pick which scope
|
|
58
|
+
|
|
59
|
+
- **App repo** (Laravel, Next.js, monorepo) → project-local. The skills/rules ship with the code; CI installs them deterministically.
|
|
60
|
+
- **Tooling repo** (dotfiles, personal sandbox) → user-global. The install follows the developer.
|
|
61
|
+
- **Both apply** (a tooling repo that also has project-specific overrides) → project-local for the overrides, no user-global install. The override mechanism at `agents/overrides/` covers the divergence.
|
|
62
|
+
|
|
63
|
+
The scope guard does **not** make the picking decision; it enforces "one scope per machine at one version".
|
|
64
|
+
|
|
65
|
+
## Failure modes the guard catches
|
|
66
|
+
|
|
67
|
+
- A user installed `event4u/agent-config` globally a year ago, then `npx`d a recent project that pulled v3.x into `./.claude/skills/`. Same skill ID, different frontmatter on disk. Without the guard, the Claude session sees both registrations and the agent reasons against the wrong description.
|
|
68
|
+
- A maintainer ran `scripts/install.sh --target=$HOME` for a quick test and forgot to clean up. The next project install at the same scope spawns a drift the user has no easy way to debug.
|
|
69
|
+
- A CI run on a worker that previously cached `~/.claude/skills/` from a stale prior job. `CI=true` skips the gate, but the probe (Phase C) catches it post-install.
|
|
70
|
+
|
|
71
|
+
## See also
|
|
72
|
+
|
|
73
|
+
- [`docs/contracts/skill-distribution-channels.md`](skill-distribution-channels.md) — per-tool canonical channel.
|
|
74
|
+
- [`scripts/_lib/scope_guard.sh`](../../scripts/_lib/scope_guard.sh) — guard implementation.
|
|
75
|
+
- [`scripts/cleanup_other_scope.sh`](../../scripts/cleanup_other_scope.sh) — companion cleanup.
|
|
76
|
+
- [`tests/test_cleanup_other_scope.py`](../../tests/test_cleanup_other_scope.py) — safety regression.
|
|
77
|
+
- [`README.md` § Installation](../../README.md) — consumer-facing install path.
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
# ADR-002 (2026-05-06) — kernel-bucket cap raise + per-rule overrides.
|
|
16
16
|
# Source: docs/decisions/ADR-002-kernel-bucket-overrides.md
|
|
17
17
|
# Empirical r_actual=0.795 vs r_projected=0.712. The 6 rules below carry
|
|
18
|
-
# Iron-Law fences + non-externalisable enumerations; further
|
|
18
|
+
# Iron-Law fences + non-externalisable enumerations; further condensation
|
|
19
19
|
# would force semantic loss. All sit ≤ 4 000-char override ceiling.
|
|
20
20
|
ask-when-uncertain
|
|
21
21
|
direct-answers
|
|
@@ -10,7 +10,7 @@ keep-beta-until: 2026-08-12
|
|
|
10
10
|
> · **Source of truth:** `docs/contracts/rule-classification.md` § 3.1
|
|
11
11
|
> · **Pilot artifacts:** `docs/contracts/pilot/`
|
|
12
12
|
|
|
13
|
-
Locks the kernel set and the empirical
|
|
13
|
+
Locks the kernel set and the empirical condensation rate `r` derived
|
|
14
14
|
from the P1.3 pilot. Phase 2.2 executes against this contract.
|
|
15
15
|
|
|
16
16
|
## § 1 — Inclusion criteria (kernel-only)
|
|
@@ -37,7 +37,7 @@ A rule belongs in the kernel iff it satisfies **all** of:
|
|
|
37
37
|
`no-cheap-questions` are first-class kernel members even though
|
|
38
38
|
they fire during deliberation, not strictly pre-send.)*
|
|
39
39
|
|
|
40
|
-
All other rules → `
|
|
40
|
+
All other rules → `condense-and-keep` (auto-tier) or migrate to
|
|
41
41
|
skill / guideline per `rule-classification.md`.
|
|
42
42
|
|
|
43
43
|
> **Council amendment (P1.4).** Criterion #3 originally read "must be
|
|
@@ -49,12 +49,12 @@ skill / guideline per `rule-classification.md`.
|
|
|
49
49
|
> existing 9-rule kernel set. See
|
|
50
50
|
> `agents/runtime/council/sessions/20260506T044941Z-phase1-cross-check-r2.json`. <!-- council-ref-allowed: contract decision trace -->
|
|
51
51
|
|
|
52
|
-
## § 2 — Empirical
|
|
52
|
+
## § 2 — Empirical condensation rate (pilot)
|
|
53
53
|
|
|
54
54
|
Pilot picks (per P1.3 algorithm: shortest / median / longest of the 9
|
|
55
55
|
always-rules in `rule-classification.md` § 3.1):
|
|
56
56
|
|
|
57
|
-
| pilot | original |
|
|
57
|
+
| pilot | original | condensed | r | per-rule cap (2.5k) | Iron-Law SHA |
|
|
58
58
|
|---|---:|---:|---:|---|---|
|
|
59
59
|
| agent-authority | 1217 | 1020 | 0.838 | OK | match (`e3b0c442…`) |
|
|
60
60
|
| direct-answers | 3991 | 2841 | 0.712 | +341 over | match (`ef438530…`) |
|
|
@@ -65,21 +65,21 @@ always-rules in `rule-classification.md` § 3.1):
|
|
|
65
65
|
| mean r (outlier-skewed by lean pilot) | 0.742 |
|
|
66
66
|
| **median r** (locked for projection) | **0.712** |
|
|
67
67
|
| max r (already-lean floor) | 0.838 |
|
|
68
|
-
| min r (most
|
|
68
|
+
| min r (most condensable) | 0.677 |
|
|
69
69
|
|
|
70
70
|
Locked `r = 0.712` (median) for P2.2 projection. Council amendment
|
|
71
71
|
(P1.4) — the original lock was the **mean** (0.742), but Sonnet 4.5
|
|
72
72
|
flagged outlier skew: `agent-authority` at 1217 chars pre-pilot was
|
|
73
|
-
already near the
|
|
73
|
+
already near the condensation floor (`r = 0.838`), pulling the mean
|
|
74
74
|
above the typical band. Median (0.712) is robust to the lean
|
|
75
75
|
outlier and sits inside the roadmap-stated 0.6–0.75 band. Risk
|
|
76
|
-
asymmetry confirms the choice: under-estimating
|
|
76
|
+
asymmetry confirms the choice: under-estimating condensed size
|
|
77
77
|
blows the 25k cap mid-P2.2 (no abort path); over-estimating just
|
|
78
78
|
yields headroom. GPT-4o concurred. Source:
|
|
79
79
|
`agents/runtime/council/sessions/20260506T044941Z-phase1-cross-check-r2.json`. <!-- council-ref-allowed: contract decision trace -->
|
|
80
80
|
|
|
81
81
|
**Pilot caveat — already-lean floor.** `agent-authority` (1217 chars
|
|
82
|
-
pre-pilot) yielded only `r = 0.838`. Pre-
|
|
82
|
+
pre-pilot) yielded only `r = 0.838`. Pre-condensed rules give less
|
|
83
83
|
back; rules > 3k chars give more back. Future kernel additions
|
|
84
84
|
≤ 1.5k chars should not assume the median — they may already be at
|
|
85
85
|
floor.
|
|
@@ -117,7 +117,7 @@ absorbs pilot variance for the 6 untested rules.
|
|
|
117
117
|
|
|
118
118
|
### § 4.1 — Post-P2.2 locked kernel (empirical, 2026-05-06)
|
|
119
119
|
|
|
120
|
-
P2.2 applied
|
|
120
|
+
P2.2 applied condensation (imperative rewrite, examples → guidelines,
|
|
121
121
|
rationale → contexts) + verified Iron-Law fence preservation.
|
|
122
122
|
Empirical r=0.795 (vs 0.712 projected). Bucket cap raised 25k → 26k
|
|
123
123
|
via `docs/decisions/ADR-002-kernel-bucket-overrides.md`. Six rules
|
|
@@ -164,7 +164,7 @@ until the next kernel re-measurement.
|
|
|
164
164
|
|
|
165
165
|
† **agent-authority swap candidate (P1.4 ADR).** Sonnet 4.5 argues
|
|
166
166
|
this is a routing index (zero Iron Law fences, dispatches to other
|
|
167
|
-
kernel rules) and should be `
|
|
167
|
+
kernel rules) and should be `condense-and-keep` (auto-tier-3),
|
|
168
168
|
freeing 867 projected chars. The Council also recommends promoting
|
|
169
169
|
`autonomous-execution` (5631 → 4009 projected) into kernel as a
|
|
170
170
|
mode-independent Band-4 authority. Net effect: 23071 − 867 + 4009 =
|
|
@@ -191,10 +191,10 @@ Both Council members concurred — the original 1.5k figure forced 8 of
|
|
|
191
191
|
The 2.5k cap fits 7 of 9 rules without ADR; only the two largest
|
|
192
192
|
remain as legitimate Iron-Law-density exceptions.
|
|
193
193
|
|
|
194
|
-
Rules that land **above the 2.5k per-rule cap** even after
|
|
194
|
+
Rules that land **above the 2.5k per-rule cap** even after condensation
|
|
195
195
|
and Iron-Law preservation:
|
|
196
196
|
|
|
197
|
-
| rule | post-
|
|
197
|
+
| rule | post-condensation chars | over-cap (2.5k) | reason cap cannot be hit |
|
|
198
198
|
|---|---:|---:|---|
|
|
199
199
|
| direct-answers | 2842 | +342 | Three Iron-Law fences (≈ 470 chars) + severity-tiered claim table required for invented-facts gate |
|
|
200
200
|
| language-and-tone | 3786 | +1286 | Iron-Law fence + exhaustive user-visible-prose catalog + pre-send gate are co-load-bearing |
|
|
@@ -204,12 +204,12 @@ and Iron-Law preservation:
|
|
|
204
204
|
ADR (see § 5.2).
|
|
205
205
|
|
|
206
206
|
Per roadmap § "Iron-Law over budget = ADR exception, not auto-
|
|
207
|
-
|
|
207
|
+
condense" — these surface as `iron-law-override` exceptions for P2.1
|
|
208
208
|
to gate behind ADRs in `docs/decisions/`.
|
|
209
209
|
|
|
210
210
|
The remaining 6 always-rules project to 1669–2916 chars post-
|
|
211
|
-
|
|
212
|
-
measures the real post-
|
|
211
|
+
condensation — all under the 2.5k cap with no ADR needed. P2.2
|
|
212
|
+
measures the real post-condensation sizes; if any breach the cap, an
|
|
213
213
|
ADR lands per-rule.
|
|
214
214
|
|
|
215
215
|
### § 5.2 — Kernel-set swap ADR (agent-authority ↔ autonomous-execution)
|
|
@@ -236,19 +236,19 @@ clearing the way for the swap under a fresh ADR.
|
|
|
236
236
|
|
|
237
237
|
## § 6 — Abort criteria for P2.2
|
|
238
238
|
|
|
239
|
-
**Council amendment (P1.4).** Sonnet 4.5 flagged that P2.2
|
|
239
|
+
**Council amendment (P1.4).** Sonnet 4.5 flagged that P2.2 condenses
|
|
240
240
|
in place with no defined abort path. The following triggers force
|
|
241
241
|
revert + re-projection rather than mid-phase scramble:
|
|
242
242
|
|
|
243
243
|
- **Iron-Law drift.** Any kernel rule loses Iron-Law SHA equivalence
|
|
244
|
-
after
|
|
245
|
-
content). Single occurrence aborts the rule's
|
|
246
|
-
- **Bucket overflow.** Kernel sum post-
|
|
244
|
+
after condensation (whitespace-normalised, case-folded fence-block
|
|
245
|
+
content). Single occurrence aborts the rule's condensation.
|
|
246
|
+
- **Bucket overflow.** Kernel sum post-condensation > 27 500 chars
|
|
247
247
|
(10 % over hard cap). Aborts the entire P2.2 phase.
|
|
248
|
-
- **Single-rule runaway.** Any kernel rule post-
|
|
249
|
-
> 4 000 chars. Aborts that rule's
|
|
248
|
+
- **Single-rule runaway.** Any kernel rule post-condensation
|
|
249
|
+
> 4 000 chars. Aborts that rule's condensation; flag for ADR.
|
|
250
250
|
- **Empirical r drift.** Median of measured r across the first 4
|
|
251
|
-
|
|
251
|
+
condensed rules deviates > 0.10 from the locked 0.712 (i.e.,
|
|
252
252
|
measured median outside [0.612, 0.812]). P2.2 pauses, re-locks r,
|
|
253
253
|
re-runs § 3 projection.
|
|
254
254
|
|
|
@@ -266,10 +266,10 @@ with the trigger-relaxed parameter, lock new value, re-attempt.
|
|
|
266
266
|
|
|
267
267
|
## § 8 — What this contract does NOT do
|
|
268
268
|
|
|
269
|
-
- It does **not** edit any source rule. P2.2 ships
|
|
270
|
-
`.agent-src.
|
|
269
|
+
- It does **not** edit any source rule. P2.2 ships condensation to
|
|
270
|
+
`.agent-src.uncondensed/rules/`.
|
|
271
271
|
- It does **not** lock per-rule `chars` (only the bucket sum). Per-
|
|
272
|
-
rule values are projections; P2.2 measures real post-
|
|
272
|
+
rule values are projections; P2.2 measures real post-condensation.
|
|
273
273
|
- It does **not** decide kernel additions. Adding a rule to the
|
|
274
274
|
kernel requires an ADR per roadmap § "Sequencing-drift time-box"
|
|
275
275
|
and re-runs P1.3 with the new candidate.
|
|
@@ -288,4 +288,4 @@ with the trigger-relaxed parameter, lock new value, re-attempt.
|
|
|
288
288
|
| 2026-05-06 | `agents/runtime/council/sessions/20260506T044821Z-phase1-cross-check.json` | Council R1 (truncated at 1024 tokens) | <!-- council-ref-allowed: contract decision trace -->
|
|
289
289
|
| 2026-05-06 | `agents/runtime/council/sessions/20260506T044941Z-phase1-cross-check-r2.json` | Council R2 (3500 tokens) — locks median r, splits criterion #3, adds criterion #5, raises per-rule cap to 2.5k, defines abort criteria | <!-- council-ref-allowed: contract decision trace -->
|
|
290
290
|
| 2026-05-06 | this file | kernel set locked: 9 rules, projected 23 071 chars (median r = 0.712) |
|
|
291
|
-
| 2026-05-06 | P2.2
|
|
291
|
+
| 2026-05-06 | P2.2 condensation + `scripts/iron_law_sha.py --all-kernel` | empirical: 25 590 chars (r_actual = 0.795 across kernel; longer rules condense less than the pilot median) — see `docs/decisions/ADR-002-kernel-bucket-overrides.md` (KERNEL_HARD raised 25k → 26k, 6 per-rule overrides ≤ 4k ceiling, all Iron-Law SHAs preserved) |
|
|
@@ -130,7 +130,7 @@ persistence on cloud platforms; the rule is a no-op.
|
|
|
130
130
|
partitions workspace / team / personal. Step 3 only needs to
|
|
131
131
|
document the three-layer rationale for the README.
|
|
132
132
|
- Re-classify on every audit run; if a rule is added to
|
|
133
|
-
`.agent-src.
|
|
133
|
+
`.agent-src.uncondensed/rules/`, this document MUST gain a row.
|
|
134
134
|
|
|
135
135
|
## Source of tier data
|
|
136
136
|
|
|
@@ -88,7 +88,7 @@ procedure → no warning under the new model. ✓ roadmap success criterion.
|
|
|
88
88
|
success criterion.
|
|
89
89
|
|
|
90
90
|
Of 13 commands ≥ 1000 words, only **2** lack a delegation signal —
|
|
91
|
-
both are candidates for Phase 4.1 review (`
|
|
91
|
+
both are candidates for Phase 4.1 review (`condense.md`,
|
|
92
92
|
`project-analyze.md`; the latter has density 0.86, exempt under the
|
|
93
93
|
density-AND-delegation gate).
|
|
94
94
|
|
|
@@ -115,7 +115,7 @@ Calibration sweep on the 2026-05-08 corpus (310 artifacts):
|
|
|
115
115
|
Pass rate: 186 → 209 (`pass`); 124 → 101 (`pass_with_warnings`); 0
|
|
116
116
|
errors. Each remaining warning is a genuine structural defect:
|
|
117
117
|
|
|
118
|
-
- `
|
|
118
|
+
- `condense.md` (1569 words, density 0.58, no delegation signal) —
|
|
119
119
|
inlined logic in a non-orchestrator command.
|
|
120
120
|
- `artifact-drafting-protocol.md` rule (65 lines, density 0.37, no
|
|
121
121
|
Iron-Law block) — prose-dominant long rule.
|
|
@@ -44,10 +44,10 @@ Where:
|
|
|
44
44
|
(per [`load-context-schema.md`](load-context-schema.md)).
|
|
45
45
|
- `transitive_closure` walks `load_context:` declarations on
|
|
46
46
|
context files **up to depth 2** — see § Nesting cap below.
|
|
47
|
-
- `RawSize` is the byte size of the
|
|
47
|
+
- `RawSize` is the byte size of the condensed file
|
|
48
48
|
(`.agent-src/...`), measured by `os.path.getsize()`. The
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
uncondensed source paths in frontmatter are mapped to their
|
|
50
|
+
condensed counterparts before sizing.
|
|
51
51
|
- A context loaded by N always-rules counts **N times** (once per
|
|
52
52
|
loading rule). Rationale: the always-budget protects context-window
|
|
53
53
|
utilization at activation time; if rule A and rule B both fire on
|
|
@@ -138,7 +138,7 @@ the full `RawSize(X)` under Model (b). No `chars(X) / N` discount.
|
|
|
138
138
|
has no measurable upside.
|
|
139
139
|
- Phase 4c (shared-context discount) becomes a no-op under 3a.
|
|
140
140
|
Phase 4 leverage shifts to 4a (demote), 4b (merge), and 4d
|
|
141
|
-
(hard-
|
|
141
|
+
(hard-condense) — see `road-to-context-layer-maturity` Phase 4
|
|
142
142
|
inputs gate.
|
|
143
143
|
|
|
144
144
|
**Reopener:** if a future inventory shows ≥ 3 shared-context loaders
|