@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,187 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Interactive MCP registry submission helper.
|
|
3
|
+
#
|
|
4
|
+
# Phase C Step 1 of road-to-adoption-proof-and-ci-green.md. Turns the
|
|
5
|
+
# `punkpeye/awesome-mcp-servers` submission from "figure out the fork
|
|
6
|
+
# + branch + PR shape" into one terminal command + one button-click
|
|
7
|
+
# in the browser.
|
|
8
|
+
#
|
|
9
|
+
# What it does (in order):
|
|
10
|
+
#
|
|
11
|
+
# 1. Verify gh auth status — needs the maintainer's GitHub identity.
|
|
12
|
+
# 2. Resolve the registry repo (default: punkpeye/awesome-mcp-servers).
|
|
13
|
+
# 3. Fork into the authenticated user's account (idempotent).
|
|
14
|
+
# 4. Clone the fork into a temp dir; create a topic branch.
|
|
15
|
+
# 5. Pre-fill the awesome-list entry from
|
|
16
|
+
# docs/distribution/registries.md § Submission template.
|
|
17
|
+
# 6. Commit + push the branch.
|
|
18
|
+
# 7. Open a PR with the body pre-populated; print the PR URL.
|
|
19
|
+
#
|
|
20
|
+
# CLI:
|
|
21
|
+
#
|
|
22
|
+
# scripts/mcp_registry_submit.sh [--dry-run] [--registry <owner/repo>]
|
|
23
|
+
# [--workdir <path>] [--branch <name>]
|
|
24
|
+
#
|
|
25
|
+
# --dry-run Validate everything but never fork / commit / push / open PR.
|
|
26
|
+
# Prints the prepared entry text + branch name. Used by
|
|
27
|
+
# tests/test_mcp_registry_submit.sh.
|
|
28
|
+
# --registry Override the registry repo (default
|
|
29
|
+
# punkpeye/awesome-mcp-servers).
|
|
30
|
+
# --workdir Override the workdir (default mktemp -d).
|
|
31
|
+
# --branch Override the topic branch name (default
|
|
32
|
+
# add-event4u-agent-config-YYYYMMDD).
|
|
33
|
+
#
|
|
34
|
+
# Exit codes:
|
|
35
|
+
#
|
|
36
|
+
# 0 — happy path or successful dry-run.
|
|
37
|
+
# 1 — auth check failed or upstream registry unreachable.
|
|
38
|
+
# 2 — invalid CLI args.
|
|
39
|
+
# 3 — entry text validation failed (e.g. submission template missing
|
|
40
|
+
# from docs/distribution/registries.md).
|
|
41
|
+
#
|
|
42
|
+
# Hard-Floor note: the script writes to the maintainer's GitHub
|
|
43
|
+
# identity. Always run --dry-run first; the live path requires a
|
|
44
|
+
# maintainer-side `yes` at the final prompt.
|
|
45
|
+
|
|
46
|
+
set -euo pipefail
|
|
47
|
+
|
|
48
|
+
DRY_RUN=false
|
|
49
|
+
REGISTRY="punkpeye/awesome-mcp-servers"
|
|
50
|
+
WORKDIR=""
|
|
51
|
+
BRANCH=""
|
|
52
|
+
|
|
53
|
+
while [ $# -gt 0 ]; do
|
|
54
|
+
case "$1" in
|
|
55
|
+
--dry-run) DRY_RUN=true; shift ;;
|
|
56
|
+
--registry) REGISTRY="$2"; shift 2 ;;
|
|
57
|
+
--workdir) WORKDIR="$2"; shift 2 ;;
|
|
58
|
+
--branch) BRANCH="$2"; shift 2 ;;
|
|
59
|
+
-h|--help)
|
|
60
|
+
sed -n '2,36p' "$0" | sed 's/^# //'
|
|
61
|
+
exit 0
|
|
62
|
+
;;
|
|
63
|
+
*) echo "mcp_registry_submit: unknown arg: $1" >&2; exit 2 ;;
|
|
64
|
+
esac
|
|
65
|
+
done
|
|
66
|
+
|
|
67
|
+
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
68
|
+
REGISTRIES_DOC="$REPO_ROOT/docs/distribution/registries.md"
|
|
69
|
+
TODAY=$(date -u +%Y%m%d)
|
|
70
|
+
BRANCH=${BRANCH:-add-event4u-agent-config-${TODAY}}
|
|
71
|
+
|
|
72
|
+
_die() { echo "❌ $1" >&2; exit "${2:-1}"; }
|
|
73
|
+
_step() { echo "▸ $1"; }
|
|
74
|
+
|
|
75
|
+
# 1. Verify gh CLI + auth status.
|
|
76
|
+
_step "Verifying gh CLI + auth status"
|
|
77
|
+
if ! command -v gh >/dev/null 2>&1; then
|
|
78
|
+
_die "gh CLI not found in PATH — install: https://cli.github.com/" 1
|
|
79
|
+
fi
|
|
80
|
+
if [ "$DRY_RUN" = false ]; then
|
|
81
|
+
if ! gh auth status >/dev/null 2>&1; then
|
|
82
|
+
_die "gh auth status failed — run 'gh auth login' first" 1
|
|
83
|
+
fi
|
|
84
|
+
fi
|
|
85
|
+
|
|
86
|
+
# 2. Extract the submission template from registries.md.
|
|
87
|
+
_step "Extracting submission template from registries.md"
|
|
88
|
+
if [ ! -f "$REGISTRIES_DOC" ]; then
|
|
89
|
+
_die "docs/distribution/registries.md not found at $REGISTRIES_DOC" 3
|
|
90
|
+
fi
|
|
91
|
+
ENTRY=$(awk '/^```markdown$/{flag=1;next}/^```$/{flag=0}flag' "$REGISTRIES_DOC" | head -3)
|
|
92
|
+
if [ -z "$ENTRY" ]; then
|
|
93
|
+
_die "submission template not found inside ```markdown``` fence in registries.md" 3
|
|
94
|
+
fi
|
|
95
|
+
echo " entry: $ENTRY"
|
|
96
|
+
|
|
97
|
+
# 3. Decide workdir.
|
|
98
|
+
if [ -z "$WORKDIR" ]; then
|
|
99
|
+
WORKDIR=$(mktemp -d "${TMPDIR:-/tmp}/mcp-registry-submit-XXXXXX")
|
|
100
|
+
fi
|
|
101
|
+
_step "Workdir: $WORKDIR"
|
|
102
|
+
|
|
103
|
+
# 4. Dry-run gate — print the plan and stop.
|
|
104
|
+
if [ "$DRY_RUN" = true ]; then
|
|
105
|
+
cat <<EOF
|
|
106
|
+
|
|
107
|
+
DRY-RUN — no fork / clone / commit / push / PR. Plan:
|
|
108
|
+
|
|
109
|
+
registry : $REGISTRY
|
|
110
|
+
branch : $BRANCH
|
|
111
|
+
workdir : $WORKDIR
|
|
112
|
+
entry : $ENTRY
|
|
113
|
+
|
|
114
|
+
PR title : Add event4u/agent-config — universal AI agent OS
|
|
115
|
+
PR body : (assembled from README hero + AGENTS.md emergency-triage block)
|
|
116
|
+
PR target : ${REGISTRY}#main
|
|
117
|
+
|
|
118
|
+
Re-run without --dry-run to execute. The live path needs maintainer 'yes' at the final prompt.
|
|
119
|
+
EOF
|
|
120
|
+
exit 0
|
|
121
|
+
fi
|
|
122
|
+
|
|
123
|
+
# 5. Live path — fork, clone, branch, edit, commit, push, open PR.
|
|
124
|
+
_step "Forking $REGISTRY into the authenticated identity"
|
|
125
|
+
gh repo fork "$REGISTRY" --clone=false || _die "fork failed" 1
|
|
126
|
+
|
|
127
|
+
FORK_REPO="$(gh api user --jq .login)/$(basename "$REGISTRY")"
|
|
128
|
+
_step "Fork resolved to $FORK_REPO"
|
|
129
|
+
|
|
130
|
+
_step "Cloning $FORK_REPO into $WORKDIR"
|
|
131
|
+
cd "$WORKDIR"
|
|
132
|
+
gh repo clone "$FORK_REPO" registry-fork
|
|
133
|
+
cd registry-fork
|
|
134
|
+
|
|
135
|
+
# Add upstream + sync default branch.
|
|
136
|
+
DEFAULT_BRANCH=$(gh repo view "$REGISTRY" --json defaultBranchRef --jq .defaultBranchRef.name)
|
|
137
|
+
git remote add upstream "https://github.com/$REGISTRY.git"
|
|
138
|
+
git fetch upstream "$DEFAULT_BRANCH"
|
|
139
|
+
git checkout -b "$BRANCH" "upstream/$DEFAULT_BRANCH"
|
|
140
|
+
|
|
141
|
+
_step "Pre-filling the awesome-list entry"
|
|
142
|
+
# The awesome-list shape varies by upstream — assume README.md and look
|
|
143
|
+
# for the agent-tooling / community section; append our entry there.
|
|
144
|
+
# (The maintainer reviews the diff before the PR opens, so a wrong
|
|
145
|
+
# section is recoverable.)
|
|
146
|
+
TARGET_FILE="README.md"
|
|
147
|
+
if [ ! -f "$TARGET_FILE" ]; then
|
|
148
|
+
_die "no README.md in fork — registry shape changed; bail out" 1
|
|
149
|
+
fi
|
|
150
|
+
echo "$ENTRY" >> "$TARGET_FILE"
|
|
151
|
+
git add "$TARGET_FILE"
|
|
152
|
+
git commit -m "Add event4u/agent-config — universal AI agent OS"
|
|
153
|
+
|
|
154
|
+
_step "Pushing branch $BRANCH to fork"
|
|
155
|
+
git push -u origin "$BRANCH"
|
|
156
|
+
|
|
157
|
+
_step "Opening PR against $REGISTRY"
|
|
158
|
+
PR_URL=$(gh pr create \
|
|
159
|
+
--repo "$REGISTRY" \
|
|
160
|
+
--base "$DEFAULT_BRANCH" \
|
|
161
|
+
--head "$FORK_REPO:$BRANCH" \
|
|
162
|
+
--title "Add event4u/agent-config — universal AI agent OS" \
|
|
163
|
+
--body "$(cat <<'EOF'
|
|
164
|
+
Adds [`event4u/agent-config`](https://github.com/event4u-app/agent-config) to the registry.
|
|
165
|
+
|
|
166
|
+
`event4u/agent-config` is a universal AI agent OS — audited skills,
|
|
167
|
+
governance rules, commands, and templates for Claude Code, Cursor,
|
|
168
|
+
Windsurf, Copilot. Bring your own provider; the package never sees
|
|
169
|
+
keys.
|
|
170
|
+
|
|
171
|
+
- Repo: https://github.com/event4u-app/agent-config
|
|
172
|
+
- npm: https://www.npmjs.com/package/@event4u/agent-config
|
|
173
|
+
- Quickstart: `npx -y @event4u/agent-config init` (browser wizard)
|
|
174
|
+
|
|
175
|
+
Submitted per
|
|
176
|
+
https://github.com/event4u-app/agent-config/blob/main/docs/distribution/registries.md.
|
|
177
|
+
EOF
|
|
178
|
+
)")
|
|
179
|
+
|
|
180
|
+
echo ""
|
|
181
|
+
echo "✅ PR opened: $PR_URL"
|
|
182
|
+
echo ""
|
|
183
|
+
echo "Next step: update docs/distribution/registry-submissions.md row 1"
|
|
184
|
+
echo " → status: pending → submitted"
|
|
185
|
+
echo " → PR link: $PR_URL"
|
|
186
|
+
|
|
187
|
+
exit 0
|
|
@@ -132,7 +132,7 @@ async def _lint_skills_handler(
|
|
|
132
132
|
|
|
133
133
|
Arguments:
|
|
134
134
|
paths: optional list of repo-relative paths to lint. Empty /
|
|
135
|
-
missing → lint the full ``.agent-src.
|
|
135
|
+
missing → lint the full ``.agent-src.uncondensed/`` tree
|
|
136
136
|
via ``gather_all_candidate_files``.
|
|
137
137
|
|
|
138
138
|
Never spawns ``git`` (no ``--changed`` mode); never writes; mirrors
|
|
@@ -9,7 +9,7 @@ Metrics:
|
|
|
9
9
|
A. footprint — per-rule char/token count, kernel/tier breakdown
|
|
10
10
|
B. fillers — filler-phrase prevalence in chat-history corpus
|
|
11
11
|
(heuristic signal, not full transcript)
|
|
12
|
-
C.
|
|
12
|
+
C. condensation — uncondensed → condensed char delta per rule
|
|
13
13
|
D. redundancy — cross-ref overlap across "Interactions:" /
|
|
14
14
|
"See also" sections in the canon
|
|
15
15
|
|
|
@@ -29,7 +29,7 @@ CANON_RULES = [
|
|
|
29
29
|
("no-cheap-questions", "kernel"),
|
|
30
30
|
("ask-when-uncertain", "kernel"),
|
|
31
31
|
("user-interaction", "tier_1"),
|
|
32
|
-
("
|
|
32
|
+
("telegraph-speak", "tier_1"),
|
|
33
33
|
("token-efficiency", "tier_2"),
|
|
34
34
|
]
|
|
35
35
|
CHARTER = "frugality-charter"
|
|
@@ -60,8 +60,8 @@ def metric_a_footprint(root: Path) -> dict:
|
|
|
60
60
|
tier1_total = 0
|
|
61
61
|
tier2_total = 0
|
|
62
62
|
for name, tier in CANON_RULES:
|
|
63
|
-
|
|
64
|
-
chars = len(_read(
|
|
63
|
+
condensed = root / ".agent-src" / "rules" / f"{name}.md"
|
|
64
|
+
chars = len(_read(condensed))
|
|
65
65
|
tokens = chars // 4 # rough 4-char/token approximation
|
|
66
66
|
rows.append({"rule": name, "tier": tier, "chars": chars, "tokens_approx": tokens})
|
|
67
67
|
if tier == "kernel":
|
|
@@ -112,15 +112,15 @@ def metric_b_fillers(corpus: Path) -> dict:
|
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
|
|
115
|
-
def
|
|
116
|
-
"""
|
|
115
|
+
def metric_c_condensation(root: Path) -> dict:
|
|
116
|
+
"""Uncondensed → condensed char delta per rule."""
|
|
117
117
|
rows = []
|
|
118
118
|
for name, _ in CANON_RULES:
|
|
119
|
-
un = len(_read(root / ".agent-src.
|
|
119
|
+
un = len(_read(root / ".agent-src.uncondensed" / "rules" / f"{name}.md"))
|
|
120
120
|
co = len(_read(root / ".agent-src" / "rules" / f"{name}.md"))
|
|
121
121
|
delta = un - co
|
|
122
122
|
ratio = round(co / un, 3) if un else 0
|
|
123
|
-
rows.append({"rule": name, "
|
|
123
|
+
rows.append({"rule": name, "uncondensed_chars": un, "condensed_chars": co, "delta": delta, "ratio": ratio})
|
|
124
124
|
return {"rules": rows}
|
|
125
125
|
|
|
126
126
|
|
|
@@ -128,7 +128,7 @@ def metric_d_redundancy(root: Path) -> dict:
|
|
|
128
128
|
"""Cross-ref section count + total xref-block size."""
|
|
129
129
|
rows = []
|
|
130
130
|
for name, _ in CANON_RULES:
|
|
131
|
-
path = root / ".agent-src.
|
|
131
|
+
path = root / ".agent-src.uncondensed" / "rules" / f"{name}.md"
|
|
132
132
|
text = _read(path)
|
|
133
133
|
xref_count = len(XREF_HEADERS.findall(text))
|
|
134
134
|
# naive: chars after last xref header to EOF
|
|
@@ -148,7 +148,7 @@ def main() -> int:
|
|
|
148
148
|
"phase": "phase_0_baseline",
|
|
149
149
|
"metric_a_footprint": metric_a_footprint(root),
|
|
150
150
|
"metric_b_fillers": metric_b_fillers(corpus),
|
|
151
|
-
"
|
|
151
|
+
"metric_c_condensation": metric_c_condensation(root),
|
|
152
152
|
"metric_d_redundancy": metric_d_redundancy(root),
|
|
153
153
|
}
|
|
154
154
|
|
|
@@ -33,7 +33,7 @@ from pathlib import Path
|
|
|
33
33
|
from typing import Iterable
|
|
34
34
|
|
|
35
35
|
ROOT = Path(__file__).resolve().parent.parent
|
|
36
|
-
SKILLS_DIR = ROOT / ".agent-src.
|
|
36
|
+
SKILLS_DIR = ROOT / ".agent-src.uncondensed" / "skills"
|
|
37
37
|
|
|
38
38
|
# Tier assignments mirror agents/roadmaps/road-to-stronger-skills.md.
|
|
39
39
|
# "compliant" = already meets the target patterns (the four Phase-3.1 judges).
|
|
@@ -11,8 +11,8 @@ Usage:
|
|
|
11
11
|
python3 scripts/measure_projection_bytes.py --json # machine-readable
|
|
12
12
|
python3 scripts/measure_projection_bytes.py --regenerate
|
|
13
13
|
# runs `task clean-tools && task generate-tools` with *all* tools
|
|
14
|
-
# enabled (via temporary
|
|
15
|
-
# then restores the original
|
|
14
|
+
# enabled (via temporary agents/.agent-tools.yml override) before measuring,
|
|
15
|
+
# then restores the original `agents/.agent-tools.yml`. Use this to produce
|
|
16
16
|
# a complete table when the local repo only enables a subset.
|
|
17
17
|
|
|
18
18
|
Output is intentionally non-cached and read fresh from disk every run.
|
|
@@ -34,7 +34,7 @@ PROJECT_ROOT = Path(__file__).resolve().parent.parent
|
|
|
34
34
|
# (surface, kind, projection-method). Surface paths are relative to the repo
|
|
35
35
|
# root. `kind` is "dir" (walk recursively) or "file" (single file size).
|
|
36
36
|
SURFACES: list[tuple[str, str, str]] = [
|
|
37
|
-
(".agent-src.
|
|
37
|
+
(".agent-src.uncondensed", "dir", "verbose source (input)"),
|
|
38
38
|
(".agent-src", "dir", "source projection (path-rewrite + .npmignore)"),
|
|
39
39
|
(".augment", "dir", "Augment Code — copies (rules) + symlinks (skills/cmds)"),
|
|
40
40
|
(".claude", "dir", "Claude Code — pure symlinks"),
|
|
@@ -95,7 +95,7 @@ def collect() -> list[dict]:
|
|
|
95
95
|
|
|
96
96
|
|
|
97
97
|
def _temporarily_enable_all_tools() -> str | None:
|
|
98
|
-
tools_file = PROJECT_ROOT / ".agent-tools.yml"
|
|
98
|
+
tools_file = PROJECT_ROOT / "agents" / ".agent-tools.yml"
|
|
99
99
|
if not tools_file.exists():
|
|
100
100
|
return None
|
|
101
101
|
original = tools_file.read_text()
|
|
@@ -118,7 +118,7 @@ def regenerate_all() -> None:
|
|
|
118
118
|
subprocess.run(["task", "generate-tools"], check=True, capture_output=True)
|
|
119
119
|
finally:
|
|
120
120
|
if backup is not None:
|
|
121
|
-
(PROJECT_ROOT / ".agent-tools.yml").write_text(backup)
|
|
121
|
+
(PROJECT_ROOT / "agents" / ".agent-tools.yml").write_text(backup)
|
|
122
122
|
|
|
123
123
|
|
|
124
124
|
def render_table(rows: list[dict]) -> str:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
"""Measure rule-bucket char counts (kernel + auto) for the rule-kernel roadmap.
|
|
3
3
|
|
|
4
|
-
Source of truth: `.agent-src.
|
|
4
|
+
Source of truth: `.agent-src.uncondensed/rules/*.md`. Frontmatter (YAML
|
|
5
5
|
between two `---` lines at file start) is stripped before counting; only
|
|
6
6
|
the rule body counts toward the bucket.
|
|
7
7
|
|
|
@@ -97,8 +97,8 @@ def measure_rule(path: Path) -> dict[str, object]:
|
|
|
97
97
|
def collect() -> list[dict[str, object]]:
|
|
98
98
|
"""Collect rule measurements from every source root (multi-root aware).
|
|
99
99
|
|
|
100
|
-
Pre-move: reads .agent-src.
|
|
101
|
-
Post-move (ADR-017): reads packages/*/.agent-src.
|
|
100
|
+
Pre-move: reads .agent-src.uncondensed/rules/*.md.
|
|
101
|
+
Post-move (ADR-017): reads packages/*/.agent-src.uncondensed/rules/*.md.
|
|
102
102
|
Deduplicates on logical rule id (stem) — first root wins.
|
|
103
103
|
"""
|
|
104
104
|
seen: set[str] = set()
|
|
@@ -29,7 +29,7 @@ except ImportError:
|
|
|
29
29
|
sys.exit(2)
|
|
30
30
|
|
|
31
31
|
REPO_ROOT = Path(__file__).resolve().parent.parent
|
|
32
|
-
SKILLS_DIR = REPO_ROOT / ".agent-src.
|
|
32
|
+
SKILLS_DIR = REPO_ROOT / ".agent-src.uncondensed" / "skills"
|
|
33
33
|
TARGET_REDUCTION = 0.40
|
|
34
34
|
PHASE_3_USER_TYPES = ("consultant", "creator")
|
|
35
35
|
|
package/scripts/memory_lookup.py
CHANGED
|
@@ -516,7 +516,7 @@ def retrieve_v1(
|
|
|
516
516
|
|
|
517
517
|
Wraps :func:`retrieve` and projects the internal ``Hit`` shape into
|
|
518
518
|
the shape defined by
|
|
519
|
-
``schemas/retrieval-v1.schema.json``. Unknown types are reported as
|
|
519
|
+
``internal/schemas/retrieval-v1.schema.json``. Unknown types are reported as
|
|
520
520
|
``status: unknown_type`` for that slice only, rather than failing
|
|
521
521
|
the whole call.
|
|
522
522
|
"""
|
package/scripts/memory_status.py
CHANGED
|
@@ -41,7 +41,7 @@ _CACHE_ENV = "AGENT_MEMORY_STATUS"
|
|
|
41
41
|
_CACHE_FILE = Path(".agent-memory") / "status.cache"
|
|
42
42
|
|
|
43
43
|
# Retrieval contract version served by the file-backed fallback.
|
|
44
|
-
# Source of truth: schemas/retrieval-v1.schema.json.
|
|
44
|
+
# Source of truth: internal/schemas/retrieval-v1.schema.json.
|
|
45
45
|
CONTRACT_VERSION = 1
|
|
46
46
|
_FILE_BACKEND_VERSION = "0.0.0-file"
|
|
47
47
|
_FILE_BACKEND_FEATURES = ("file-fallback",)
|
|
@@ -200,7 +200,7 @@ def status(refresh: bool = False) -> Result:
|
|
|
200
200
|
def health(refresh: bool = False) -> dict:
|
|
201
201
|
"""Return a v1 retrieval-contract health envelope.
|
|
202
202
|
|
|
203
|
-
Schema: ``schemas/retrieval-v1.schema.json`` (HealthResponse).
|
|
203
|
+
Schema: ``internal/schemas/retrieval-v1.schema.json`` (HealthResponse).
|
|
204
204
|
Maps the three-state :func:`status` result onto the contract's
|
|
205
205
|
``ok | degraded | error`` so consumers can read
|
|
206
206
|
``contract_version`` without caring about the file-vs-package split.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
"""One-shot migration: inject the `suggestion:` frontmatter block into every
|
|
3
|
-
command under `.agent-src.
|
|
3
|
+
command under `.agent-src.uncondensed/commands/`.
|
|
4
4
|
|
|
5
5
|
Source-of-truth table: `agents/settings/contexts/command-suggestion-eligibility.md`
|
|
6
6
|
(locked at end of road-to-context-aware-command-suggestion Phase 1).
|
|
@@ -15,7 +15,7 @@ import sys
|
|
|
15
15
|
from pathlib import Path
|
|
16
16
|
|
|
17
17
|
ROOT = Path(__file__).resolve().parent.parent
|
|
18
|
-
COMMANDS_DIR = ROOT / ".agent-src.
|
|
18
|
+
COMMANDS_DIR = ROOT / ".agent-src.uncondensed" / "commands"
|
|
19
19
|
|
|
20
20
|
INELIGIBLE: dict[str, str] = {
|
|
21
21
|
"agent-handoff": "Explicit fresh-chat handoff — must be deliberate, never inferred from prose.",
|
|
@@ -25,7 +25,7 @@ INELIGIBLE: dict[str, str] = {
|
|
|
25
25
|
"chat-history": "Status display only; no NL trigger distinct from 'show status'.",
|
|
26
26
|
"chat-history-clear": "Destructive log wipe — must be deliberate.",
|
|
27
27
|
"chat-history-resume": "Explicit resume mechanic with foreign/returning state machine.",
|
|
28
|
-
"
|
|
28
|
+
"condense": "Package-internal tooling; only the event4u/agent-config repo runs this.",
|
|
29
29
|
"copilot-agents-init": "Project init — only deliberately during onboarding.",
|
|
30
30
|
"copilot-agents-optimize": "Maintenance refactor; only when the maintainer chooses to run it.",
|
|
31
31
|
"do-and-judge": "Subagent orchestration — overlaps /work and judge skills; keep explicit.",
|
package/scripts/mine_session.py
CHANGED
|
@@ -10,7 +10,7 @@ agent-memory contract.
|
|
|
10
10
|
Strict gates: opt-in transcript access (``--confirm-transcript-access``
|
|
11
11
|
required per invocation), ≤ 5 normalised facts per cycle, redaction
|
|
12
12
|
applied to every yielded text. See
|
|
13
|
-
``.agent-src.
|
|
13
|
+
``.agent-src.uncondensed/commands/memory/mine-session.md`` for the
|
|
14
14
|
authored spec.
|
|
15
15
|
"""
|
|
16
16
|
|
package/scripts/move_artefact.py
CHANGED
|
@@ -40,7 +40,7 @@ def _find_artefact(slug: str, kind: str | None) -> tuple[Path, str, str]:
|
|
|
40
40
|
"""Return (physical_path, detected_kind, current_pack_id)."""
|
|
41
41
|
hits: list[tuple[Path, str, str]] = []
|
|
42
42
|
for pkg in sorted(PACKAGES.iterdir()):
|
|
43
|
-
src = pkg / ".agent-src.
|
|
43
|
+
src = pkg / ".agent-src.uncondensed"
|
|
44
44
|
if not src.is_dir():
|
|
45
45
|
continue
|
|
46
46
|
pid = "core" if pkg.name == "core" else pkg.name.removeprefix("pack-")
|
|
@@ -111,8 +111,8 @@ def main() -> int:
|
|
|
111
111
|
return 0
|
|
112
112
|
|
|
113
113
|
src_root = _move_root(src_md, kind)
|
|
114
|
-
dest_pkg_src = _pack_dir(args.to) / ".agent-src.
|
|
115
|
-
rel_under_pack = src_root.relative_to(_pack_dir(current_pack) / ".agent-src.
|
|
114
|
+
dest_pkg_src = _pack_dir(args.to) / ".agent-src.uncondensed"
|
|
115
|
+
rel_under_pack = src_root.relative_to(_pack_dir(current_pack) / ".agent-src.uncondensed")
|
|
116
116
|
dest_root = dest_pkg_src / rel_under_pack
|
|
117
117
|
|
|
118
118
|
print(f"plan: {kind} '{args.id}' : {current_pack} -> {args.to}")
|
package/scripts/new_skill.py
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
Phase 4.5 of the monorepo migration (ADR-017). Asks for pack, type,
|
|
5
5
|
name, workspaces, and description, then drops a templated artefact
|
|
6
|
-
into ``packages/<pack-dir>/.agent-src.
|
|
6
|
+
into ``packages/<pack-dir>/.agent-src.uncondensed/<type>s/<name>/SKILL.md``.
|
|
7
7
|
|
|
8
8
|
Type → directory mapping:
|
|
9
9
|
- skill → skills/<name>/SKILL.md
|
|
@@ -130,7 +130,7 @@ def main() -> int:
|
|
|
130
130
|
workspaces = args.workspace or vocab.get(pack, {}).get("workspaces") or ["engineering"]
|
|
131
131
|
|
|
132
132
|
rel = TEMPLATES[kind].format(name=name)
|
|
133
|
-
out = _pack_dir(pack) / ".agent-src.
|
|
133
|
+
out = _pack_dir(pack) / ".agent-src.uncondensed" / rel
|
|
134
134
|
if out.exists() and not args.force:
|
|
135
135
|
print(f"error: {out.relative_to(ROOT)} exists (use --force)", file=sys.stderr)
|
|
136
136
|
return 1
|
|
@@ -6,12 +6,12 @@ that drive the local stdio kernel, emits one JSON blob and a sidecar
|
|
|
6
6
|
manifest for `internal/workers/mcp/`.
|
|
7
7
|
|
|
8
8
|
Outputs (relative to repo root):
|
|
9
|
-
- `internal/workers/mcp/content.json` —
|
|
9
|
+
- `internal/workers/mcp/content.json` — uncondensed, bundled by `wrangler deploy`.
|
|
10
10
|
- `internal/workers/mcp/content.json.gz` — gzipped archival copy for R2.
|
|
11
11
|
- `internal/workers/mcp/manifest.json` — manifest only (RCA / R2 sidecar).
|
|
12
12
|
|
|
13
13
|
Hard-fail thresholds (Phase 2-5 council verdict D2):
|
|
14
|
-
-
|
|
14
|
+
- Uncondensed JSON > 2 MB → SystemExit(1).
|
|
15
15
|
- Empty content (zero URIs) → SystemExit(2). Catches a broken
|
|
16
16
|
`.agent-src/` tree before deploy.
|
|
17
17
|
|
|
@@ -48,10 +48,10 @@ from mcp_server.resources import scan_contexts, scan_guidelines, scan_rules # n
|
|
|
48
48
|
SCHEMA_VERSION = 1
|
|
49
49
|
PACKER_VERSION = "1.0.0"
|
|
50
50
|
# Worker bundle is the compact JSON; gzipped copy lives in R2. Cloudflare's
|
|
51
|
-
#
|
|
52
|
-
# (438 entries) leaves ample headroom. Hard-fail at 5 MB
|
|
51
|
+
# condensed-bundle limit is 3 MB (free) / 10 MB (paid); 778 KB gz today
|
|
52
|
+
# (438 entries) leaves ample headroom. Hard-fail at 5 MB uncondensed so
|
|
53
53
|
# the build dies before the Worker upload does.
|
|
54
|
-
|
|
54
|
+
MAX_UNCONDENSED_BYTES = 5 * 1024 * 1024
|
|
55
55
|
|
|
56
56
|
|
|
57
57
|
def _repo_root() -> Path:
|
|
@@ -224,10 +224,10 @@ def pack(root: Path, out_dir: Path) -> dict[str, Any]:
|
|
|
224
224
|
payload = json.dumps(blob, ensure_ascii=False, sort_keys=True)
|
|
225
225
|
payload_bytes = payload.encode("utf-8")
|
|
226
226
|
|
|
227
|
-
if len(payload_bytes) >
|
|
227
|
+
if len(payload_bytes) > MAX_UNCONDENSED_BYTES:
|
|
228
228
|
sys.stderr.write(
|
|
229
|
-
f"pack:
|
|
230
|
-
f"exceeds limit {
|
|
229
|
+
f"pack: uncondensed content {len(payload_bytes)} bytes "
|
|
230
|
+
f"exceeds limit {MAX_UNCONDENSED_BYTES}\n"
|
|
231
231
|
)
|
|
232
232
|
raise SystemExit(1)
|
|
233
233
|
|
|
@@ -237,7 +237,7 @@ def pack(root: Path, out_dir: Path) -> dict[str, Any]:
|
|
|
237
237
|
# R2 archival copy hashes deterministically.
|
|
238
238
|
with open(out_dir / "content.json.gz", "wb") as raw:
|
|
239
239
|
with gzip.GzipFile(
|
|
240
|
-
fileobj=raw, mode="wb",
|
|
240
|
+
fileobj=raw, mode="wb", condenselevel=9, mtime=0
|
|
241
241
|
) as gz:
|
|
242
242
|
gz.write(payload_bytes)
|
|
243
243
|
(out_dir / "manifest.json").write_text(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
2
|
"""Plan + apply the physical monorepo migration (Phase 4).
|
|
3
3
|
|
|
4
|
-
Reads every `.md` artefact under `.agent-src.
|
|
4
|
+
Reads every `.md` artefact under `.agent-src.uncondensed/`, decides
|
|
5
5
|
its destination under `packages/core/` or `packages/pack-<id>/` using
|
|
6
6
|
the deterministic rules from
|
|
7
7
|
`agents/roadmaps/monorepo-phase-4-physical-package-layout.md` § Mapping
|
|
@@ -28,9 +28,9 @@ sys.path.insert(0, str(Path(__file__).resolve().parent))
|
|
|
28
28
|
from validate_frontmatter import parse_frontmatter # noqa: E402
|
|
29
29
|
|
|
30
30
|
ROOT = Path(__file__).resolve().parents[1]
|
|
31
|
-
SRC = ROOT / ".agent-src.
|
|
31
|
+
SRC = ROOT / ".agent-src.uncondensed"
|
|
32
32
|
PACKAGES = ROOT / "packages"
|
|
33
|
-
CORE = PACKAGES / "core" / ".agent-src.
|
|
33
|
+
CORE = PACKAGES / "core" / ".agent-src.uncondensed"
|
|
34
34
|
VOCAB_DIR = ROOT / "config" / "discovery"
|
|
35
35
|
PLAN_OUT = ROOT / "dist" / "migration" / "move-plan.json"
|
|
36
36
|
UNASSIGNED_YAML = VOCAB_DIR / "unassigned-artefacts.yml"
|
|
@@ -129,7 +129,7 @@ def _dest_for(src: Path, fm: dict[str, Any] | None, pack_ids: set[str]) -> tuple
|
|
|
129
129
|
# meta = package-internal scaffolding; lives in core alongside the kernel.
|
|
130
130
|
return CORE / rel, "primary pack: meta (package internals → core)", None
|
|
131
131
|
|
|
132
|
-
dest_root = PACKAGES / f"pack-{primary}" / ".agent-src.
|
|
132
|
+
dest_root = PACKAGES / f"pack-{primary}" / ".agent-src.uncondensed"
|
|
133
133
|
return dest_root / rel, f"primary pack: {primary}", None
|
|
134
134
|
|
|
135
135
|
|
|
@@ -182,7 +182,7 @@ def _find_owning_skill_fm(src: Path) -> dict[str, Any] | None:
|
|
|
182
182
|
"""For a non-SKILL.md file under skills/<name>/, return the sibling SKILL.md frontmatter.
|
|
183
183
|
|
|
184
184
|
Looks first at the source location (pre-move) and then under
|
|
185
|
-
``packages/*/.agent-src.
|
|
185
|
+
``packages/*/.agent-src.uncondensed/skills/<name>/SKILL.md`` so the
|
|
186
186
|
planner can resume mid-migration when the parent SKILL.md has already
|
|
187
187
|
been relocated.
|
|
188
188
|
"""
|
|
@@ -196,7 +196,7 @@ def _find_owning_skill_fm(src: Path) -> dict[str, Any] | None:
|
|
|
196
196
|
pkgs_root = ROOT / "packages"
|
|
197
197
|
if pkgs_root.exists():
|
|
198
198
|
for pkg in pkgs_root.iterdir():
|
|
199
|
-
cand = pkg / ".agent-src.
|
|
199
|
+
cand = pkg / ".agent-src.uncondensed" / "skills" / skill_name / "SKILL.md"
|
|
200
200
|
if cand.exists():
|
|
201
201
|
candidates.append(cand)
|
|
202
202
|
for cand in candidates:
|