@event4u/agent-config 7.4.0 → 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +11 -1
- package/AGENTS.md +9 -9
- package/CHANGELOG.md +373 -0
- package/README.md +35 -5
- package/dist/agent-src/commands/analytics/prune.md +1 -1
- package/dist/agent-src/commands/analytics/show.md +1 -1
- package/dist/agent-src/commands/analyze/decision.md +2 -2
- package/dist/agent-src/commands/analyze/incident.md +2 -2
- package/dist/agent-src/commands/analyze/near-miss.md +2 -2
- package/dist/agent-src/commands/analyze/postmortem.md +2 -2
- package/dist/agent-src/commands/analyze/premortem.md +2 -2
- package/dist/agent-src/commands/cost-report.md +25 -0
- package/dist/agent-src/commands/evals/analyze.json +30 -0
- package/dist/agent-src/commands/evals/mission-upgrade.json +30 -0
- package/dist/agent-src/commands/implement-ticket.md +1 -1
- package/dist/agent-src/commands/knowledge/forget.md +1 -1
- package/dist/agent-src/commands/knowledge/ingest.md +1 -1
- package/dist/agent-src/commands/knowledge/list.md +1 -1
- package/dist/agent-src/commands/memory/load.md +12 -11
- package/dist/agent-src/commands/memory/promote.md +30 -0
- package/dist/agent-src/commands/memory/propose.md +16 -2
- package/dist/agent-src/commands/mission/upgrade.md +1 -1
- package/dist/agent-src/commands/module/explore.md +11 -7
- package/dist/agent-src/commands/optimize-project.md +243 -0
- package/dist/agent-src/commands/optimize.md +5 -0
- package/dist/agent-src/commands/pr/create.md +37 -8
- package/dist/agent-src/commands/prediction-pool.md +2 -2
- package/dist/agent-src/commands/profile/activate.md +3 -3
- package/dist/agent-src/commands/profile/deactivate.md +2 -2
- package/dist/agent-src/commands/profile/show.md +3 -3
- package/dist/agent-src/commands/research/deep.md +5 -0
- package/dist/agent-src/commands/research/report.md +2 -1
- package/dist/agent-src/commands/review-changes.md +14 -7
- package/dist/agent-src/commands/roadmap/create.md +88 -10
- package/dist/agent-src/commands/roadmap/materialize.md +1 -1
- package/dist/agent-src/commands/roadmap/process-full.md +15 -2
- package/dist/agent-src/commands/roadmap/process-phase.md +18 -6
- package/dist/agent-src/commands/roadmap/process-step.md +4 -0
- package/dist/agent-src/commands/roadmap.md +1 -1
- package/dist/agent-src/commands/security-audit-config.md +1 -1
- package/dist/agent-src/commands/sync-agent-settings.md +1 -1
- package/dist/agent-src/commands/sync-gitignore/fix.md +42 -6
- package/dist/agent-src/commands/team-knowledge/bootstrap.md +106 -0
- package/dist/agent-src/commands/team-knowledge/consolidate.md +105 -0
- package/dist/agent-src/commands/team-knowledge.md +64 -0
- package/dist/agent-src/contexts/authority/commit-mechanics.md +8 -0
- package/dist/agent-src/contexts/authority/destructive-mechanics.md +11 -0
- package/dist/agent-src/contexts/authority/scope-mechanics.md +25 -0
- package/dist/agent-src/contexts/communication/rules-auto/reply-close-mechanics.md +43 -0
- package/dist/agent-src/contexts/contracts/agents-md-anatomy.md +1 -1
- package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +2 -2
- package/dist/agent-src/contexts/contracts/frugality-charter.md +1 -0
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +14 -4
- package/dist/agent-src/contexts/execution/autonomy-mechanics.md +11 -0
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +32 -8
- package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +107 -0
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +71 -15
- package/dist/agent-src/contexts/execution/subagent-steering.md +41 -1
- package/dist/agent-src/contexts/override-system.md +1 -1
- package/dist/agent-src/personas/brand-strategist.md +0 -1
- package/dist/agent-src/personas/data-integrity.md +66 -0
- package/dist/agent-src/personas/design-director.md +0 -1
- package/dist/agent-src/personas/performance-engineer.md +66 -0
- package/dist/agent-src/personas/production-validator.md +73 -0
- package/dist/agent-src/rules/agent-authority.md +3 -4
- package/dist/agent-src/rules/analysis-skill-routing.md +3 -5
- package/dist/agent-src/rules/architecture.md +2 -4
- package/dist/agent-src/rules/artifact-drafting-protocol.md +35 -6
- package/dist/agent-src/rules/artifact-engagement-recording.md +11 -4
- package/dist/agent-src/rules/ask-when-uncertain.md +10 -14
- package/dist/agent-src/rules/augment-edit-discipline.md +3 -5
- package/dist/agent-src/rules/autonomous-execution.md +3 -5
- package/dist/agent-src/rules/brand-consistency.md +3 -5
- package/dist/agent-src/rules/brand-source-of-truth.md +3 -5
- package/dist/agent-src/rules/cli-output-handling.md +4 -6
- package/dist/agent-src/rules/command-suggestion-policy.md +3 -5
- package/dist/agent-src/rules/commit-conventions.md +3 -5
- package/dist/agent-src/rules/commit-policy.md +8 -10
- package/dist/agent-src/rules/content-quoting-floor.md +88 -0
- package/dist/agent-src/rules/context-hygiene.md +3 -5
- package/dist/agent-src/rules/copilot-routing.md +4 -6
- package/dist/agent-src/rules/decision-revisit-gate.md +120 -0
- package/dist/agent-src/rules/delegation-policy.md +10 -6
- package/dist/agent-src/rules/design-fidelity.md +3 -5
- package/dist/agent-src/rules/devcontainer-routing.md +4 -6
- package/dist/agent-src/rules/direct-answers.md +13 -17
- package/dist/agent-src/rules/docker-commands.md +3 -5
- package/dist/agent-src/rules/domain-adoption-policy.md +3 -5
- package/dist/agent-src/rules/domain-safety-disclaimer.md +3 -5
- package/dist/agent-src/rules/domain-safety-pii.md +7 -8
- package/dist/agent-src/rules/domain-safety-retention.md +3 -5
- package/dist/agent-src/rules/downstream-changes.md +3 -4
- package/dist/agent-src/rules/engineering-safety-floor.md +3 -5
- package/dist/agent-src/rules/external-reference-deep-dive.md +3 -5
- package/dist/agent-src/rules/fast-path-marker-visibility.md +3 -5
- package/dist/agent-src/rules/finance-safety-floor.md +3 -6
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +3 -5
- package/dist/agent-src/rules/git-history-discipline.md +3 -5
- package/dist/agent-src/rules/guidelines.md +2 -4
- package/dist/agent-src/rules/icon-consistency.md +4 -5
- package/dist/agent-src/rules/image-likeness-and-rights.md +3 -5
- package/dist/agent-src/rules/improve-before-implement.md +5 -5
- package/dist/agent-src/rules/invite-challenge.md +3 -5
- package/dist/agent-src/rules/language-and-tone.md +13 -15
- package/dist/agent-src/rules/laravel-routing.md +3 -5
- package/dist/agent-src/rules/laravel-translations.md +3 -5
- package/dist/agent-src/rules/legal-safety-floor.md +5 -7
- package/dist/agent-src/rules/lethal-trifecta-guard.md +3 -5
- package/dist/agent-src/rules/linked-projects-onboarding-gate.md +4 -7
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +3 -5
- package/dist/agent-src/rules/markdown-safe-codeblocks.md +2 -4
- package/dist/agent-src/rules/media-governance-routing.md +3 -5
- package/dist/agent-src/rules/media-sync-ground-truth.md +3 -5
- package/dist/agent-src/rules/minimal-safe-diff.md +5 -5
- package/dist/agent-src/rules/missing-tool-handling.md +3 -5
- package/dist/agent-src/rules/model-recommendation.md +4 -6
- package/dist/agent-src/rules/no-attribution-footers.md +3 -5
- package/dist/agent-src/rules/no-cheap-questions.md +5 -8
- package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +3 -6
- package/dist/agent-src/rules/no-pr-progress-comments.md +3 -6
- package/dist/agent-src/rules/no-roadmap-references.md +3 -5
- package/dist/agent-src/rules/non-destructive-by-default.md +11 -13
- package/dist/agent-src/rules/notes-first-reasoning.md +3 -5
- package/dist/agent-src/rules/onboarding-gate.md +4 -6
- package/dist/agent-src/rules/output-discipline.md +3 -5
- package/dist/agent-src/rules/package-ci-checks.md +3 -5
- package/dist/agent-src/rules/persona-governance.md +2 -4
- package/dist/agent-src/rules/php-coding.md +3 -5
- package/dist/agent-src/rules/preservation-guard.md +2 -4
- package/dist/agent-src/rules/provider-lifecycle-discipline.md +3 -5
- package/dist/agent-src/rules/reviewer-awareness.md +5 -6
- package/dist/agent-src/rules/roadmap-ci-steps-policy.md +3 -5
- package/dist/agent-src/rules/roadmap-progress-sync.md +5 -5
- package/dist/agent-src/rules/role-mode-adherence.md +2 -4
- package/dist/agent-src/rules/rule-type-governance.md +3 -5
- package/dist/agent-src/rules/runtime-safety.md +2 -4
- package/dist/agent-src/rules/scope-control.md +10 -11
- package/dist/agent-src/rules/security-sensitive-stop.md +4 -5
- package/dist/agent-src/rules/size-enforcement.md +2 -4
- package/dist/agent-src/rules/skill-improvement-trigger.md +3 -5
- package/dist/agent-src/rules/skill-quality.md +3 -5
- package/dist/agent-src/rules/slash-command-routing-policy.md +3 -5
- package/dist/agent-src/rules/source-confidentiality.md +3 -5
- package/dist/agent-src/rules/source-discovery-gate.md +3 -5
- package/dist/agent-src/rules/source-of-truth.md +3 -5
- package/dist/agent-src/rules/strategy-safety-floor.md +3 -5
- package/dist/agent-src/rules/symfony-routing.md +4 -6
- package/dist/agent-src/rules/telegraph-speak.md +4 -5
- package/dist/agent-src/rules/think-before-action.md +7 -4
- package/dist/agent-src/rules/token-budget-discipline.md +29 -5
- package/dist/agent-src/rules/token-efficiency.md +3 -5
- package/dist/agent-src/rules/token-optimizer-maintenance.md +3 -5
- package/dist/agent-src/rules/tool-safety.md +2 -4
- package/dist/agent-src/rules/ui-audit-gate.md +3 -6
- package/dist/agent-src/rules/untrusted-input-defense.md +11 -10
- package/dist/agent-src/rules/upstream-proposal.md +4 -6
- package/dist/agent-src/rules/user-interaction.md +7 -5
- package/dist/agent-src/rules/user-interrupt-priority.md +17 -8
- package/dist/agent-src/rules/verify-before-complete.md +12 -22
- package/dist/agent-src/scripts/archive_completed_roadmaps.ts +3 -3
- package/dist/agent-src/scripts/update_roadmap_progress.ts +197 -7
- package/dist/agent-src/skills/adr-create/SKILL.md +52 -42
- package/dist/agent-src/skills/adversarial-review/SKILL.md +1 -1
- package/dist/agent-src/skills/agent-docs-writing/SKILL.md +18 -0
- package/dist/agent-src/skills/agent-security-review/SKILL.md +1 -1
- package/dist/agent-src/skills/ai-council/SKILL.md +14 -1
- package/dist/agent-src/skills/blade-ui/SKILL.md +4 -0
- package/dist/agent-src/skills/blameless-post-mortem/SKILL.md +0 -3
- package/dist/agent-src/skills/brand/SKILL.md +1 -1
- package/dist/agent-src/skills/brand-identity/SKILL.md +3 -3
- package/dist/agent-src/skills/brand-strategy/SKILL.md +1 -1
- package/dist/agent-src/skills/brand-to-tokens/SKILL.md +5 -4
- package/dist/agent-src/skills/canvas-design/SKILL.md +6 -0
- package/dist/agent-src/skills/check-refs/SKILL.md +7 -4
- package/dist/agent-src/skills/code-review/SKILL.md +5 -0
- package/dist/agent-src/skills/complexity-first-planning/SKILL.md +6 -5
- package/dist/agent-src/skills/condense-memory/SKILL.md +11 -11
- package/dist/agent-src/skills/context-authoring/SKILL.md +1 -1
- package/dist/agent-src/skills/context-document/SKILL.md +17 -0
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +3 -3
- package/dist/agent-src/skills/decision-record/SKILL.md +6 -0
- package/dist/agent-src/skills/decision-review/SKILL.md +5 -3
- package/dist/agent-src/skills/deep-reading-analyst/SKILL.md +6 -1
- package/dist/agent-src/skills/design-intelligence/SKILL.md +45 -2
- package/dist/agent-src/skills/design-intelligence/references/design-languages.md +1 -1
- package/dist/agent-src/skills/design-review/SKILL.md +23 -11
- package/dist/agent-src/skills/design-system-capture/SKILL.md +41 -0
- package/dist/agent-src/skills/design-system-capture/reference/design-system-json.md +62 -0
- package/dist/agent-src/skills/design-tokens/SKILL.md +11 -4
- package/dist/agent-src/skills/design-variations/SKILL.md +127 -0
- package/dist/agent-src/skills/design-variations/evals/triggers.json +17 -0
- package/dist/agent-src/skills/emit-tickets/SKILL.md +4 -4
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +6 -0
- package/dist/agent-src/skills/fe-design/SKILL.md +20 -0
- package/dist/agent-src/skills/flux/SKILL.md +4 -0
- package/dist/agent-src/skills/html-deck/SKILL.md +123 -0
- package/dist/agent-src/skills/html-deck/evals/triggers.json +17 -0
- package/dist/agent-src/skills/html-deck/templates/deck-shell.html +77 -0
- package/dist/agent-src/skills/iconography/SKILL.md +1 -0
- package/dist/agent-src/skills/image-editing/evals/triggers.json +13 -13
- package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +136 -0
- package/dist/agent-src/skills/judge-artifact-completeness/calibration/fixtures.json +149 -0
- package/dist/agent-src/skills/judge-artifact-completeness/evals/triggers.json +17 -0
- package/dist/agent-src/skills/judge-artifact-completeness/rubrics/architecture-score.json +73 -0
- package/dist/agent-src/skills/judge-artifact-completeness/rubrics/pr-review-score.json +65 -0
- package/dist/agent-src/skills/judge-artifact-completeness/rubrics/roadmap-score.json +73 -0
- package/dist/agent-src/skills/judge-artifact-completeness/rubrics/ticket-quality-score.json +73 -0
- package/dist/agent-src/skills/judge-code-quality/SKILL.md +1 -0
- package/dist/agent-src/skills/judge-injection-defense/SKILL.md +99 -0
- package/dist/agent-src/skills/judge-injection-defense/calibration/fixtures.json +24 -0
- package/dist/agent-src/skills/judge-injection-defense/evals/triggers.json +17 -0
- package/dist/agent-src/skills/judge-injection-defense/fixtures/behavioral-fixtures.json +63 -0
- package/dist/agent-src/skills/judge-injection-defense/fixtures/coverage-report.md +53 -0
- package/dist/agent-src/skills/judge-injection-defense/fixtures/perturbation-taxonomy.json +110 -0
- package/dist/agent-src/skills/judge-synthesis/SKILL.md +134 -0
- package/dist/agent-src/skills/judge-synthesis/evals/triggers.json +17 -0
- package/dist/agent-src/skills/laravel/SKILL.md +0 -1
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +46 -0
- package/dist/agent-src/skills/lint-skills/SKILL.md +6 -6
- package/dist/agent-src/skills/logo-generation/SKILL.md +1 -1
- package/dist/agent-src/skills/markitdown/SKILL.md +1 -1
- package/dist/agent-src/skills/md-language-check/SKILL.md +3 -3
- package/dist/agent-src/skills/memory-consolidation/SKILL.md +66 -1
- package/dist/agent-src/skills/migration-architect/SKILL.md +1 -0
- package/dist/agent-src/skills/module-detect-on-the-fly/SKILL.md +2 -2
- package/dist/agent-src/skills/performance-analysis/SKILL.md +2 -0
- package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +4 -4
- package/dist/agent-src/skills/premortem/SKILL.md +0 -3
- package/dist/agent-src/skills/project-analysis-core/SKILL.md +16 -0
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +18 -0
- package/dist/agent-src/skills/react-shadcn-ui/reference/registry.md +59 -0
- package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +3 -1
- package/dist/agent-src/skills/refine-ticket/SKILL.md +5 -1
- package/dist/agent-src/skills/release-comms/SKILL.md +47 -46
- package/dist/agent-src/skills/roadmap-management/SKILL.md +25 -0
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +33 -3
- package/dist/agent-src/skills/root-cause-frameworks/SKILL.md +0 -3
- package/dist/agent-src/skills/script-writing/SKILL.md +1 -1
- package/dist/agent-src/skills/security-audit/SKILL.md +1 -0
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +4 -0
- package/dist/agent-src/skills/source-discovery/SKILL.md +22 -3
- package/dist/agent-src/skills/sql-writing/SKILL.md +1 -1
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +33 -14
- package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +11 -0
- package/dist/agent-src/skills/subagent-orchestration/prompts/do-in-steps.md +8 -0
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +30 -1
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +4 -0
- package/dist/agent-src/skills/testing-anti-patterns/SKILL.md +1 -1
- package/dist/agent-src/skills/threat-modeling/SKILL.md +2 -2
- package/dist/agent-src/skills/token-optimizer/SKILL.md +1 -1
- package/dist/agent-src/skills/typography-system/SKILL.md +4 -3
- package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +2 -0
- package/dist/agent-src/skills/wireframe/SKILL.md +118 -0
- package/dist/agent-src/skills/wireframe/evals/triggers.json +17 -0
- package/dist/agent-src/templates/agent-settings.md +22 -1
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/command.md +2 -2
- package/dist/agent-src/templates/contexts/knowledge-pages.md +116 -0
- package/dist/agent-src/templates/hooks/pre-commit-frontmatter +1 -1
- package/dist/agent-src/templates/roadmaps.md +70 -2
- package/dist/agent-src/templates/rule.md +1 -1
- package/dist/agent-src/templates/scripts/README.md +3 -3
- package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +109 -0
- package/dist/agent-src/templates/tickets.md +8 -8
- package/dist/cli/commands/recordTriggerEval.test.js +1 -1
- package/dist/cli/commands/recordTriggerEval.test.js.map +1 -1
- package/dist/cli/initRouting.js +4 -2
- package/dist/cli/initRouting.js.map +1 -1
- package/dist/cli/registry.js +1 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +802 -258
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +8 -8
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +46 -28
- package/dist/discovery/trust-report.md +12 -11
- package/dist/discovery/workspaces.json +32 -18
- package/dist/install/preflight.js +173 -0
- package/dist/install/preflight.js.map +1 -0
- package/dist/mcp/registry-manifest.json +4 -4
- package/dist/router.json +1 -1
- package/dist/server/routes/settings.js +4 -0
- package/dist/server/routes/settings.js.map +1 -1
- package/dist/server/schemas/settings.js +6 -1
- package/dist/server/schemas/settings.js.map +1 -1
- package/docs/CLAIMS.md +108 -0
- package/docs/MIGRATION.md +3 -3
- package/docs/architecture.md +6 -6
- package/docs/benchmark.md +133 -2
- package/docs/benchmark.pinned.yml +31 -0
- package/docs/capability-matrix.md +1 -0
- package/docs/catalog.md +92 -74
- package/docs/command-flows.md +16 -4
- package/docs/comparison.yaml +35 -0
- package/docs/contracts/agents-layout.md +148 -0
- package/docs/contracts/brand-token-consumption.md +5 -0
- package/docs/contracts/capability-boundary.md +5 -0
- package/docs/contracts/command-category-governance.md +5 -0
- package/docs/contracts/command-clusters.md +1 -0
- package/docs/contracts/command-surface-tiers.md +1 -1
- package/docs/contracts/conformance.md +84 -0
- package/docs/contracts/creative-pack-boundary.md +5 -0
- package/docs/contracts/discovery-manifest.schema.json +5 -4
- package/docs/contracts/file-ownership-matrix.json +4605 -985
- package/docs/contracts/governance-enforcement-projection.md +5 -0
- package/docs/contracts/gui-wizard.md +1 -1
- package/docs/contracts/hook-architecture-v1.md +2 -2
- package/docs/contracts/implement-ticket-flow.md +1 -1
- package/docs/contracts/kernel-membership.md +13 -0
- package/docs/contracts/mcp-tool-inventory.md +23 -23
- package/docs/contracts/no-runtime-boundary.md +6 -1
- package/docs/contracts/review-lens-schema.md +5 -0
- package/docs/contracts/rule-router.md +102 -8
- package/docs/contracts/skill-bundled-assets.md +1 -1
- package/docs/contracts/skill-dry-run.md +1 -1
- package/docs/contracts/subagent-boundary.md +5 -0
- package/docs/contracts/ticket-bundle-format.md +9 -4
- package/docs/contracts/tier-3-contrib-plugin.md +2 -2
- package/docs/contracts/write-engine.md +3 -0
- package/docs/customization.md +87 -15
- package/docs/decisions/ADR-107-legal-domain-pack-adoption.md +1 -1
- package/docs/decisions/ADR-109-subagent-v1-contract.md +246 -0
- package/docs/decisions/ADR-110-discipline-profile-resolution-locus.md +105 -0
- package/docs/decisions/INDEX.md +2 -0
- package/docs/distribution/awesome-list-submission.md +46 -0
- package/docs/distribution/launch-story-draft.md +58 -0
- package/docs/end-to-end-walkthroughs.md +2 -2
- package/docs/getting-started.md +2 -2
- package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +24 -0
- package/docs/guidelines/agent-infra/corpus-grounding-authoring.md +1 -1
- package/docs/guidelines/agent-infra/linked-projects-onboarding-gate.md +2 -2
- package/docs/guidelines/agent-infra/missing-tool-handling.md +3 -3
- package/docs/guidelines/agent-infra/verify-before-complete-demos.md +2 -2
- package/docs/guidelines/augment-portability-patterns.md +1 -1
- package/docs/guidelines/code-clarity.md +19 -0
- package/docs/guidelines/design-antipatterns-triggers.json +2 -1
- package/docs/guidelines/design-antipatterns.md +35 -0
- package/docs/guidelines/design-canon.md +62 -0
- package/docs/guidelines/design-modes.md +6 -0
- package/docs/guidelines/php/general.md +9 -1
- package/docs/guidelines/php/php-coding-patterns.md +7 -0
- package/docs/guides/cross-repo-retrieval.md +1 -1
- package/docs/guides/frontend-design-corpus-refresh.md +2 -2
- package/docs/guides/local-analytics.md +4 -4
- package/docs/guides/skill-discovery.md +1 -1
- package/docs/guides/skill-preview.md +1 -1
- package/docs/hook-payload-capture.md +6 -6
- package/docs/install-friction-report.md +66 -0
- package/docs/installation.md +1 -1
- package/docs/maintainers/optional-media-deps.md +50 -0
- package/docs/mcp-server.md +11 -12
- package/docs/media/proof-demo.cast +14 -0
- package/docs/media/proof-demo.gif +0 -0
- package/docs/migration/consumer-template-consumption-model.md +1 -1
- package/docs/migration/divergences/bench-stats-float-precision.md +1 -1
- package/docs/migration/node-floor.md +1 -1
- package/docs/migration/yaml-roundtrip-spike.md +1 -1
- package/docs/personas.md +16 -5
- package/docs/positioning-evidence.md +86 -0
- package/docs/proof.md +86 -0
- package/docs/skills-catalog.md +1 -1
- package/docs/troubleshooting.md +8 -8
- package/docs/wedge/production-validator/README.md +57 -0
- package/docs/wedge/production-validator/production-validator.md +56 -0
- package/docs/wizard.md +2 -2
- package/package.json +1 -1
- package/src/config/agent-settings.template.yml +71 -4
- package/src/config/agents-paths.yml +254 -0
- package/src/config/budgets.yml +16 -0
- package/src/config/discovery/packs.yml +1 -0
- package/src/config/discovery/unassigned-artefacts.yml +2 -0
- package/src/config/gitignore-block.txt +25 -0
- package/src/config/host-capabilities.yml +31 -0
- package/src/config/profiles/balanced.ini +4 -0
- package/src/config/profiles/full.ini +4 -0
- package/src/config/profiles/minimal.ini +4 -0
- package/src/scripts/_cli/cmd_conformance.ts +716 -0
- package/src/scripts/_cli/cmd_doctor.ts +23 -2
- package/src/scripts/_cli/cmd_fleet.ts +401 -0
- package/src/scripts/_cli/cmd_preflight.ts +159 -0
- package/src/scripts/_dispatch.bash +10 -0
- package/src/scripts/_lib/knowledge_events.ts +193 -0
- package/src/scripts/_lib/subagent_steering.ts +115 -3
- package/src/scripts/_lib/text_similarity.ts +75 -0
- package/src/scripts/ai-video/test-pipeline.sh +1 -1
- package/src/scripts/ai_council/clients.ts +19 -3
- package/src/scripts/append_contested.ts +112 -0
- package/src/scripts/audit_auto_rules.ts +11 -1
- package/src/scripts/audit_mcp_tools.ts +25 -11
- package/src/scripts/bench_ab_v2_run.ts +527 -40
- package/src/scripts/bench_ab_v2_stats.ts +6 -0
- package/src/scripts/bench_matrix.ts +266 -0
- package/src/scripts/bootstrap_knowledge.ts +267 -0
- package/src/scripts/build_discovery_manifest.ts +42 -2
- package/src/scripts/build_proof.ts +214 -0
- package/src/scripts/check_always_budget.ts +3 -0
- package/src/scripts/check_augment_description_cap.ts +2 -2
- package/src/scripts/check_claims.ts +270 -0
- package/src/scripts/check_comparison.ts +79 -0
- package/src/scripts/check_generated_artefact_headers.ts +109 -0
- package/src/scripts/check_generator_output_coverage.ts +142 -0
- package/src/scripts/check_gitignore_freshness.ts +127 -0
- package/src/scripts/check_knowledge_pages.ts +210 -0
- package/src/scripts/check_knowledge_sharing.ts +162 -0
- package/src/scripts/check_media_deps.ts +91 -0
- package/src/scripts/check_memory_contradiction.ts +280 -0
- package/src/scripts/check_memory_similarity.ts +134 -0
- package/src/scripts/check_quality_regression.ts +56 -10
- package/src/scripts/check_references.ts +3 -1
- package/src/scripts/check_release_pr_shape.ts +4 -0
- package/src/scripts/check_site_links.ts +135 -0
- package/src/scripts/check_skill_gaps.ts +99 -0
- package/src/scripts/check_token_quality_golden.ts +197 -11
- package/src/scripts/check_tracked_but_ignored.ts +67 -0
- package/src/scripts/cluster_near_miss_patterns.ts +0 -0
- package/src/scripts/compile_router.ts +30 -3
- package/src/scripts/condense.ts +350 -14
- package/src/scripts/consolidate_knowledge_events.ts +192 -0
- package/src/scripts/degrade_to_pointer.ts +136 -0
- package/src/scripts/design_slop_rules.test.ts +208 -0
- package/src/scripts/design_slop_rules.ts +530 -0
- package/src/scripts/emit_knowledge_event.ts +158 -0
- package/src/scripts/export_replay_corpus.ts +187 -0
- package/src/scripts/external_sources_denylist.json +14 -3
- package/src/scripts/fold_intake.ts +281 -0
- package/src/scripts/generate_capability_matrix.ts +9 -1
- package/src/scripts/generate_knowledge_index.ts +222 -0
- package/src/scripts/hook_manifest.yaml +40 -17
- package/src/scripts/hooks/design_slop_hook.ts +181 -0
- package/src/scripts/hooks/dispatch_hook.ts +18 -0
- package/src/scripts/hot_context_hook.ts +372 -0
- package/src/scripts/install +47 -0
- package/src/scripts/install-hooks.sh +17 -0
- package/src/scripts/inventory_meta_layers.ts +11 -0
- package/src/scripts/janitor.ts +258 -0
- package/src/scripts/lint_agent_security.ts +1 -0
- package/src/scripts/lint_agents_layout.ts +74 -15
- package/src/scripts/lint_bench_ab.ts +4 -1
- package/src/scripts/lint_confusables.ts +197 -0
- package/src/scripts/lint_design_slop.ts +245 -0
- package/src/scripts/lint_featured_skills.ts +0 -0
- package/src/scripts/lint_framework_leakage_allowlist.json +26 -3
- package/src/scripts/lint_knowledge_scale.ts +250 -0
- package/src/scripts/lint_legal_pack.ts +67 -0
- package/src/scripts/lint_persona_governance.ts +8 -3
- package/src/scripts/lint_regression.ts +15 -0
- package/src/scripts/lint_roadmap_blockers.ts +202 -0
- package/src/scripts/lint_roadmap_complexity.ts +81 -2
- package/src/scripts/lint_subagent_determinism.ts +125 -0
- package/src/scripts/measure_augment_budget.ts +46 -6
- package/src/scripts/measure_patterns.ts +4 -3
- package/src/scripts/measure_skill_reduction.ts +6 -6
- package/src/scripts/migration_status.ts +6 -2
- package/src/scripts/mine_missing_guardrails.ts +189 -0
- package/src/scripts/parity/phase_gate.ts +1 -1
- package/src/scripts/parity/replay.ts +21 -0
- package/src/scripts/project_thin_rules.ts +120 -16
- package/src/scripts/release.ts +39 -1
- package/src/scripts/render_benchmark_composite.ts +378 -0
- package/src/scripts/roadmap_progress_hook.ts +101 -43
- package/src/scripts/schemas/skill.schema.json +27 -0
- package/src/scripts/schemas/subagent.schema.json +106 -0
- package/src/scripts/skill_linter.ts +1 -0
- package/src/scripts/smoke/kernel.sh +5 -4
- package/src/scripts/surface-tiers.yml +1 -0
- package/src/scripts/sync_gitignore.ts +4 -0
- package/src/scripts/update_skill_candidates.ts +172 -0
- package/src/scripts/validate_frontmatter.ts +1 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://github.com/event4u-app/agent-config/scripts/schemas/subagent.schema.json",
|
|
4
|
+
"title": "Subagent frontmatter (subagent-v1)",
|
|
5
|
+
"$comment": "Source: ADR-109. A subagent is an addressable, tool-scoped execution context projected to a host's native subagent format (Claude Code `.claude/agents/`) or, on non-subagent hosts, to a loadable context file. Static projection only — dispatch stays with the host/user, never runtime-enforced. Governance fields (trust, lifecycle, discovery.visible) are REQUIRED, mirroring the skill trust block so subagents share one governance model. model_tier reuses model_tier.ts (ADR-034/035).",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": [
|
|
9
|
+
"schema_version",
|
|
10
|
+
"name",
|
|
11
|
+
"description",
|
|
12
|
+
"model_tier",
|
|
13
|
+
"tools",
|
|
14
|
+
"trust",
|
|
15
|
+
"lifecycle",
|
|
16
|
+
"discovery",
|
|
17
|
+
"source"
|
|
18
|
+
],
|
|
19
|
+
"properties": {
|
|
20
|
+
"schema_version": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"const": "subagent-v1"
|
|
23
|
+
},
|
|
24
|
+
"name": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
27
|
+
"description": "Addressable handle. Must match the subagent filename stem and be globally unique within the subagent category (projection-path collision guard)."
|
|
28
|
+
},
|
|
29
|
+
"description": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"minLength": 1,
|
|
32
|
+
"maxLength": 240,
|
|
33
|
+
"description": "User-facing summary. On Claude Code this drives `@`-menu discoverability; keep it action-oriented."
|
|
34
|
+
},
|
|
35
|
+
"model_tier": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"enum": ["lite", "medium", "high", "inherit"],
|
|
38
|
+
"description": "Vendor-neutral capability band (ADR-034/035). high/medium/lite project to a native Claude `model:` (high→opus, medium→sonnet, lite→haiku) via model_tier.ts; `inherit` is a documented passthrough sentinel (→ CC `model: inherit`), not a new mapping."
|
|
39
|
+
},
|
|
40
|
+
"tools": {
|
|
41
|
+
"type": "array",
|
|
42
|
+
"minItems": 1,
|
|
43
|
+
"uniqueItems": true,
|
|
44
|
+
"items": {
|
|
45
|
+
"type": "string",
|
|
46
|
+
"enum": ["Read", "Write", "Edit", "Grep", "Glob", "Bash", "WebFetch", "WebSearch", "NotebookEdit"]
|
|
47
|
+
},
|
|
48
|
+
"description": "Enum-validated at build time against the Claude Code tool set, so a bad value fails CI rather than producing broken `.claude/agents/` YAML in the user's IDE."
|
|
49
|
+
},
|
|
50
|
+
"trust": {
|
|
51
|
+
"type": "object",
|
|
52
|
+
"additionalProperties": false,
|
|
53
|
+
"required": ["level", "confidence", "human_review_required"],
|
|
54
|
+
"properties": {
|
|
55
|
+
"level": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"enum": ["core", "professional", "experimental", "advisory", "restricted"],
|
|
58
|
+
"default": "core"
|
|
59
|
+
},
|
|
60
|
+
"confidence": {
|
|
61
|
+
"type": "string",
|
|
62
|
+
"enum": ["high", "medium", "low"],
|
|
63
|
+
"default": "high"
|
|
64
|
+
},
|
|
65
|
+
"human_review_required": {
|
|
66
|
+
"type": "boolean",
|
|
67
|
+
"default": false
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"description": "ADR-013 trust block, mirrored from the skill schema so subagents share one governance model."
|
|
71
|
+
},
|
|
72
|
+
"lifecycle": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"enum": ["active", "deprecated", "experimental", "archived"],
|
|
75
|
+
"default": "active",
|
|
76
|
+
"description": "ADR-013 lifecycle state."
|
|
77
|
+
},
|
|
78
|
+
"discovery": {
|
|
79
|
+
"type": "object",
|
|
80
|
+
"additionalProperties": false,
|
|
81
|
+
"required": ["visible", "requires_capability"],
|
|
82
|
+
"properties": {
|
|
83
|
+
"visible": {
|
|
84
|
+
"const": false,
|
|
85
|
+
"description": "Subagents are default-off. The value MUST be false; a pack/profile opts in explicitly via include: [\"subagent:<name>\"]."
|
|
86
|
+
},
|
|
87
|
+
"requires_capability": {
|
|
88
|
+
"type": "string",
|
|
89
|
+
"minLength": 1,
|
|
90
|
+
"description": "Host-capability gate (e.g. claude_subagents). Hosts without the capability receive the loadable-context-file degradation, not native dispatch."
|
|
91
|
+
},
|
|
92
|
+
"categories": {
|
|
93
|
+
"type": "array",
|
|
94
|
+
"items": { "type": "string" },
|
|
95
|
+
"uniqueItems": true,
|
|
96
|
+
"description": "Optional pack-include tags (include: [\"subagent:category:<tag>\"])."
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"source": {
|
|
101
|
+
"type": "string",
|
|
102
|
+
"enum": ["package", "project"],
|
|
103
|
+
"default": "package"
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
# scripts/smoke/kernel.sh — kernel-tier smoke (step-11 Phase 3 Step 2).
|
|
3
3
|
#
|
|
4
4
|
# Asserts:
|
|
5
|
-
# 1. router.json lists exactly
|
|
5
|
+
# 1. router.json lists exactly 9 kernel rules.
|
|
6
6
|
# 2. Every kernel rule file exists at dist/agent-src/rules/<id>.md.
|
|
7
|
-
# 3.
|
|
7
|
+
# 3. 8 of 9 carry at least one Iron-Law fenced block (agent-authority
|
|
8
|
+
# is the fence-less priority index).
|
|
8
9
|
# agent-authority is the dispatch index, exempt from the fence
|
|
9
10
|
# requirement (docs/contracts/smoke-contracts.md § 3.1).
|
|
10
11
|
# 4. Kernel-bucket char budget breaches ≤ EXPECTED_BREACHES.
|
|
@@ -16,8 +17,8 @@
|
|
|
16
17
|
|
|
17
18
|
set -euo pipefail
|
|
18
19
|
|
|
19
|
-
EXPECTED_KERNEL_COUNT=
|
|
20
|
-
EXPECTED_FENCE_CARRIERS=
|
|
20
|
+
EXPECTED_KERNEL_COUNT=9
|
|
21
|
+
EXPECTED_FENCE_CARRIERS=8
|
|
21
22
|
# Bumped 2 → 3 in v4.0.0: the `fix(authority): block execution offers
|
|
22
23
|
# after roadmap/vision artifact save` commit (d30d441e) pushed
|
|
23
24
|
# scope-control and commit-policy past their per-rule caps; kernel-bucket
|
|
@@ -37,6 +37,7 @@ clusters:
|
|
|
37
37
|
cost: lab # cost tracking / budget gate (observability, Node .mjs)
|
|
38
38
|
mcp_server: lab # MCP stdio server, separate runtime, pilot distribution
|
|
39
39
|
media: lab # shared adapter substrate for ai-video / ai-image
|
|
40
|
+
parity: lab # py2ts parity rigs (compare / coverage-diff), migration tooling
|
|
40
41
|
prediction-pool: lab # prediction-pool optimizer (fun pack, experimental)
|
|
41
42
|
|
|
42
43
|
# Top-level src/scripts/*.py modules that belong to lab (module stem, no .py).
|
|
@@ -55,6 +55,10 @@ export const DEFAULT_TEMPLATE = path.join(
|
|
|
55
55
|
// managed block or outside (older installers / hand-edits). Current canonical
|
|
56
56
|
// equivalents (e.g. /agents/runtime/.agent-prices.md) come from the template
|
|
57
57
|
// and are NOT affected. Leading-slash variants are matched defensively.
|
|
58
|
+
//
|
|
59
|
+
// Authoritative source: src/config/agents-paths.yml entries with `legacy: true`.
|
|
60
|
+
// Manual sync until the generation step from the manifest is implemented
|
|
61
|
+
// (road-to-agents-dir-and-gitignore-hygiene Phase 3.2 follow-on).
|
|
58
62
|
export const LEGACY_PATTERNS: readonly string[] = [
|
|
59
63
|
'.agent-chat-history',
|
|
60
64
|
'.agent-chat-history.bak',
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
#!/usr/bin/env tsx
|
|
2
|
+
/**
|
|
3
|
+
* Cross-cycle recurrence tracker for `agents/knowledge/procedures/skill-candidates.md`
|
|
4
|
+
* — road-to-knowledge-system Phase 2 (capture hygiene).
|
|
5
|
+
*
|
|
6
|
+
* Each `/memory:mine-session` / `memory-consolidation` cycle that finds an
|
|
7
|
+
* unpromoted, recurring topic calls this to increment a durable per-topic
|
|
8
|
+
* counter. At >= 3 mentions the topic is a live skill/procedure candidate —
|
|
9
|
+
* `learning-to-rule-or-skill` picks it up from here for human-gated
|
|
10
|
+
* promotion. This script only maintains the counter file; it never proposes
|
|
11
|
+
* or writes a skill/rule itself.
|
|
12
|
+
*
|
|
13
|
+
* Usage:
|
|
14
|
+
* update_skill_candidates.ts --topic <slug> --session <id> --date <YYYY-MM-DD> [--file <path>]
|
|
15
|
+
*
|
|
16
|
+
* Exit codes: 0 = updated (prints whether the candidate threshold (3) was
|
|
17
|
+
* crossed BY this call), 1 = usage error.
|
|
18
|
+
*/
|
|
19
|
+
import * as fs from 'node:fs';
|
|
20
|
+
import * as path from 'node:path';
|
|
21
|
+
import process from 'node:process';
|
|
22
|
+
import { fileURLToPath } from 'node:url';
|
|
23
|
+
|
|
24
|
+
const PROG = 'update_skill_candidates.ts';
|
|
25
|
+
export const CANDIDATE_THRESHOLD = 3;
|
|
26
|
+
const DEFAULT_FILE = path.join('agents', 'knowledge', 'procedures', 'skill-candidates.md');
|
|
27
|
+
|
|
28
|
+
export interface CandidateRecord {
|
|
29
|
+
topic: string;
|
|
30
|
+
mentions: number;
|
|
31
|
+
first: string; // YYYY-MM-DD
|
|
32
|
+
lastSeen: string; // YYYY-MM-DD
|
|
33
|
+
sessions: string[]; // unique, insertion order
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const HEADING_RE = /^## (.+)$/;
|
|
37
|
+
const FIELD_RE = /^- (\w[\w ]*): (.*)$/;
|
|
38
|
+
|
|
39
|
+
/** Parse the skill-candidates.md body into topic → record. Tolerant of a missing/empty file. */
|
|
40
|
+
export function parseCandidates(body: string): Map<string, CandidateRecord> {
|
|
41
|
+
const out = new Map<string, CandidateRecord>();
|
|
42
|
+
let current: CandidateRecord | null = null;
|
|
43
|
+
|
|
44
|
+
for (const rawLine of body.split(/\r?\n/)) {
|
|
45
|
+
const headingMatch = HEADING_RE.exec(rawLine);
|
|
46
|
+
if (headingMatch?.[1] !== undefined) {
|
|
47
|
+
current = { topic: headingMatch[1].trim(), mentions: 0, first: '', lastSeen: '', sessions: [] };
|
|
48
|
+
out.set(current.topic, current);
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (!current) continue;
|
|
52
|
+
const fieldMatch = FIELD_RE.exec(rawLine);
|
|
53
|
+
if (!fieldMatch) continue;
|
|
54
|
+
const [, key, value] = fieldMatch;
|
|
55
|
+
if (key === undefined || value === undefined) continue;
|
|
56
|
+
if (key === 'Mentions') current.mentions = Number.parseInt(value, 10) || 0;
|
|
57
|
+
else if (key === 'First seen') current.first = value.trim();
|
|
58
|
+
else if (key === 'Last seen') current.lastSeen = value.trim();
|
|
59
|
+
else if (key === 'Sessions') {
|
|
60
|
+
current.sessions = value
|
|
61
|
+
.split(',')
|
|
62
|
+
.map((s) => s.trim())
|
|
63
|
+
.filter(Boolean);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return out;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export function renderCandidates(records: Map<string, CandidateRecord>): string {
|
|
70
|
+
const lines: string[] = [];
|
|
71
|
+
lines.push('# Skill Candidates');
|
|
72
|
+
lines.push('');
|
|
73
|
+
lines.push(
|
|
74
|
+
`_Auto-maintained by \`src/scripts/update_skill_candidates.ts\`. A topic reaches candidate status at ${CANDIDATE_THRESHOLD}+ mentions across distinct sessions — see \`learning-to-rule-or-skill\` for the human-gated promotion path._`,
|
|
75
|
+
);
|
|
76
|
+
|
|
77
|
+
const topics = [...records.keys()].sort((a, b) => (a < b ? -1 : a > b ? 1 : 0));
|
|
78
|
+
for (const topic of topics) {
|
|
79
|
+
const r = records.get(topic)!;
|
|
80
|
+
lines.push('');
|
|
81
|
+
lines.push(`## ${r.topic}`);
|
|
82
|
+
lines.push('');
|
|
83
|
+
lines.push(`- Mentions: ${r.mentions}`);
|
|
84
|
+
lines.push(`- First seen: ${r.first}`);
|
|
85
|
+
lines.push(`- Last seen: ${r.lastSeen}`);
|
|
86
|
+
lines.push(`- Sessions: ${r.sessions.join(', ')}`);
|
|
87
|
+
}
|
|
88
|
+
lines.push('');
|
|
89
|
+
return lines.join('\n');
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/** Increment (or create) a topic's recurrence record. Mutates and returns the map; returns whether this call crossed the candidate threshold. */
|
|
93
|
+
export function upsertCandidate(
|
|
94
|
+
records: Map<string, CandidateRecord>,
|
|
95
|
+
topic: string,
|
|
96
|
+
sessionId: string,
|
|
97
|
+
date: string,
|
|
98
|
+
): { crossedThreshold: boolean; record: CandidateRecord } {
|
|
99
|
+
let record = records.get(topic);
|
|
100
|
+
const wasBelowThreshold = !record || record.mentions < CANDIDATE_THRESHOLD;
|
|
101
|
+
|
|
102
|
+
if (!record) {
|
|
103
|
+
record = { topic, mentions: 0, first: date, lastSeen: date, sessions: [] };
|
|
104
|
+
records.set(topic, record);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
if (!record.sessions.includes(sessionId)) {
|
|
108
|
+
record.sessions.push(sessionId);
|
|
109
|
+
record.mentions += 1;
|
|
110
|
+
}
|
|
111
|
+
record.lastSeen = date;
|
|
112
|
+
|
|
113
|
+
const crossedThreshold = wasBelowThreshold && record.mentions >= CANDIDATE_THRESHOLD;
|
|
114
|
+
return { crossedThreshold, record };
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
function printUsage(): void {
|
|
118
|
+
process.stderr.write(`usage: ${PROG} --topic TOPIC --session ID --date YYYY-MM-DD [--file PATH]\n`);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export function main(argv: string[]): number {
|
|
122
|
+
let topic: string | null = null;
|
|
123
|
+
let session: string | null = null;
|
|
124
|
+
let date: string | null = null;
|
|
125
|
+
let file = DEFAULT_FILE;
|
|
126
|
+
|
|
127
|
+
for (let i = 0; i < argv.length; i++) {
|
|
128
|
+
const arg = argv[i];
|
|
129
|
+
if (arg === '-h' || arg === '--help') {
|
|
130
|
+
printUsage();
|
|
131
|
+
return 0;
|
|
132
|
+
} else if (arg === '--topic') {
|
|
133
|
+
topic = argv[++i] ?? null;
|
|
134
|
+
} else if (arg === '--session') {
|
|
135
|
+
session = argv[++i] ?? null;
|
|
136
|
+
} else if (arg === '--date') {
|
|
137
|
+
date = argv[++i] ?? null;
|
|
138
|
+
} else if (arg === '--file') {
|
|
139
|
+
file = argv[++i] ?? file;
|
|
140
|
+
} else {
|
|
141
|
+
process.stderr.write(`${PROG}: error: unrecognized argument: ${arg}\n`);
|
|
142
|
+
printUsage();
|
|
143
|
+
return 1;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
if (!topic || !session || !date) {
|
|
148
|
+
process.stderr.write(`${PROG}: error: --topic, --session, and --date are required\n`);
|
|
149
|
+
printUsage();
|
|
150
|
+
return 1;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
const existingBody = fs.existsSync(file) ? fs.readFileSync(file, 'utf8') : '';
|
|
154
|
+
const records = parseCandidates(existingBody);
|
|
155
|
+
const { crossedThreshold, record } = upsertCandidate(records, topic, session, date);
|
|
156
|
+
|
|
157
|
+
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
158
|
+
fs.writeFileSync(file, renderCandidates(records), 'utf8');
|
|
159
|
+
|
|
160
|
+
if (crossedThreshold) {
|
|
161
|
+
process.stdout.write(
|
|
162
|
+
`${PROG}: "${topic}" reached candidate status (${record.mentions} mentions) — surface for learning-to-rule-or-skill.\n`,
|
|
163
|
+
);
|
|
164
|
+
} else {
|
|
165
|
+
process.stdout.write(`${PROG}: "${topic}" now at ${record.mentions} mention(s).\n`);
|
|
166
|
+
}
|
|
167
|
+
return 0;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
if (fileURLToPath(import.meta.url) === path.resolve(process.argv[1] ?? '')) {
|
|
171
|
+
process.exit(main(process.argv.slice(2)));
|
|
172
|
+
}
|
|
@@ -816,6 +816,7 @@ export function _iter_artefacts(root: string): Array<[string, string]> {
|
|
|
816
816
|
['skill', _rglobSorted(path.join(root, 'skills'), 'SKILL.md')],
|
|
817
817
|
['rule', _rglobSorted(path.join(root, 'rules'), '*.md')],
|
|
818
818
|
['command', _rglobSorted(path.join(root, 'commands'), '*.md')],
|
|
819
|
+
['subagent', _rglobSorted(path.join(root, 'subagents'), '*.md')],
|
|
819
820
|
[
|
|
820
821
|
'persona',
|
|
821
822
|
_globSorted(path.join(root, 'personas'), '*.md').filter(
|