@event4u/agent-config 9.9.0 → 9.10.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 +1 -1
- package/CHANGELOG.md +153 -194
- package/README.md +1 -1
- package/dist/agent-src/commands/agent-status.md +12 -11
- package/dist/agent-src/commands/agents/user/accept.md +115 -30
- package/dist/agent-src/commands/agents/user/delete.md +147 -0
- package/dist/agent-src/commands/agents/user/review.md +65 -28
- package/dist/agent-src/commands/agents/user/show.md +82 -29
- package/dist/agent-src/commands/agents/user/update.md +2 -2
- package/dist/agent-src/commands/agents/user.md +16 -3
- package/dist/agent-src/commands/check-current-md.md +0 -10
- package/dist/agent-src/commands/condense.md +28 -97
- package/dist/agent-src/commands/cost/report.md +7 -0
- package/dist/agent-src/commands/fix/portability.md +0 -8
- package/dist/agent-src/commands/fix/refs.md +0 -8
- package/dist/agent-src/commands/humanize.md +2 -2
- package/dist/agent-src/commands/jira-ticket.md +1 -1
- package/dist/agent-src/commands/memory/load.md +11 -0
- package/dist/agent-src/commands/optimize/skills.md +1 -1
- package/dist/agent-src/commands/pr/create.md +4 -4
- package/dist/agent-src/commands/profile/show.md +3 -3
- package/dist/agent-src/commands/rule-compliance-audit.md +5 -4
- package/dist/agent-src/commands/security-audit-config.md +1 -1
- package/dist/agent-src/commands/sync/gitignore/fix.md +1 -1
- package/dist/agent-src/commands/tdd.md +21 -0
- package/dist/agent-src/commands/team/delegate.md +2 -2
- package/dist/agent-src/commands/team-knowledge/bootstrap.md +9 -8
- package/dist/agent-src/commands/team-knowledge/consolidate.md +8 -7
- package/dist/agent-src/commands/team.md +4 -1
- package/dist/agent-src/commands/upstream-contribute.md +0 -1
- package/dist/agent-src/contexts/authority/commit-mechanics.md +7 -0
- package/dist/agent-src/contexts/authority/destructive-mechanics.md +16 -0
- package/dist/agent-src/contexts/authority/scope-mechanics.md +61 -0
- package/dist/agent-src/contexts/communication/rules-auto/reply-close-mechanics.md +20 -18
- package/dist/agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +1 -1
- package/dist/agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +1 -1
- package/dist/agent-src/contexts/communication/rules-auto/source-of-truth-mechanics.md +9 -10
- package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +1 -1
- package/dist/agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +11 -0
- package/dist/agent-src/contexts/contracts/artifact-engagement-flow.md +26 -15
- package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +3 -0
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +67 -37
- package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +1 -1
- package/dist/agent-src/contexts/execution/autonomy-examples.md +1 -1
- package/dist/agent-src/contexts/execution/autonomy-mechanics.md +7 -6
- package/dist/agent-src/contexts/execution/evidence-discipline.md +92 -77
- package/dist/agent-src/contexts/execution/orchestration-benchmark-gate.md +22 -21
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +24 -0
- package/dist/agent-src/contexts/execution/project-intelligence.md +122 -103
- package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +23 -21
- package/dist/agent-src/contexts/execution/subagent-response-contract.md +5 -5
- package/dist/agent-src/contexts/execution/subagent-routing.md +11 -0
- package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +13 -13
- package/dist/agent-src/contexts/execution/subagent-steering.md +36 -34
- package/dist/agent-src/contexts/execution/toolchain-resolver.md +1 -1
- package/dist/agent-src/contexts/execution/user-memory-channels.md +189 -0
- package/dist/agent-src/contexts/execution/verification-mechanics.md +9 -0
- package/dist/agent-src/contexts/model-recommendations.md +3 -2
- package/dist/agent-src/contexts/subagent-configuration.md +3 -3
- package/dist/agent-src/ghostwriter/README.md +2 -2
- package/dist/agent-src/packs/README.md +1 -1
- package/dist/agent-src/personas/README.md +5 -5
- package/dist/agent-src/personas/_template-specialist/persona.md +3 -3
- package/dist/agent-src/personas/backend-architect.md +24 -23
- package/dist/agent-src/personas/eloquent-tamer.md +30 -30
- package/dist/agent-src/personas/frontend-engineer.md +30 -30
- package/dist/agent-src/personas/product-owner.md +41 -38
- package/dist/agent-src/personas/qa.md +13 -13
- package/dist/agent-src/personas/security-engineer.md +22 -22
- package/dist/agent-src/presets/README.md +3 -3
- package/dist/agent-src/profiles/README.md +3 -3
- package/dist/agent-src/rules/active-remediation.md +2 -2
- package/dist/agent-src/rules/artifact-engagement-recording.md +4 -4
- package/dist/agent-src/rules/ask-when-uncertain.md +0 -4
- package/dist/agent-src/rules/augment-edit-discipline.md +1 -1
- package/dist/agent-src/rules/broken-access-control.md +4 -4
- package/dist/agent-src/rules/code-comment-discipline.md +1 -1
- package/dist/agent-src/rules/code-provenance.md +2 -2
- package/dist/agent-src/rules/commit-policy.md +4 -9
- package/dist/agent-src/rules/communication-through-line.md +5 -5
- package/dist/agent-src/rules/decision-revisit-gate.md +1 -1
- package/dist/agent-src/rules/doc-screenshot-hygiene.md +1 -1
- package/dist/agent-src/rules/domain-adoption-policy.md +1 -1
- package/dist/agent-src/rules/domain-safety-pii.md +1 -1
- package/dist/agent-src/rules/external-code-graph-interop.md +1 -1
- package/dist/agent-src/rules/fast-path-marker-visibility.md +43 -7
- package/dist/agent-src/rules/finance-safety-floor.md +1 -1
- package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +3 -3
- package/dist/agent-src/rules/history-discipline.md +1 -1
- package/dist/agent-src/rules/legal-safety-floor.md +1 -1
- package/dist/agent-src/rules/lethal-trifecta-guard.md +5 -5
- package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +10 -8
- package/dist/agent-src/rules/media-governance-routing.md +13 -13
- package/dist/agent-src/rules/media-sync-ground-truth.md +29 -11
- package/dist/agent-src/rules/no-cheap-questions.md +7 -7
- package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +29 -18
- package/dist/agent-src/rules/non-destructive-by-default.md +5 -23
- package/dist/agent-src/rules/onboarding-gate.md +14 -4
- package/dist/agent-src/rules/persona-governance.md +2 -2
- package/dist/agent-src/rules/prefer-enums-over-literals.md +9 -9
- package/dist/agent-src/rules/preservation-guard.md +10 -2
- package/dist/agent-src/rules/question-not-instruction.md +1 -1
- package/dist/agent-src/rules/roadmap-progress-sync.md +6 -6
- package/dist/agent-src/rules/rule-type-governance.md +1 -1
- package/dist/agent-src/rules/scale-discipline.md +1 -1
- package/dist/agent-src/rules/scope-control.md +1 -1
- package/dist/agent-src/rules/secret-vcs-guard.md +1 -1
- package/dist/agent-src/rules/security-sensitive-stop.md +17 -11
- package/dist/agent-src/rules/senior-engineering-discipline.md +17 -17
- package/dist/agent-src/rules/session-canary.md +1 -1
- package/dist/agent-src/rules/skill-quality.md +1 -1
- package/dist/agent-src/rules/source-confidentiality.md +21 -19
- package/dist/agent-src/rules/source-of-truth.md +6 -5
- package/dist/agent-src/rules/spreadsheet-source-quality.md +2 -2
- package/dist/agent-src/rules/strategy-safety-floor.md +1 -1
- package/dist/agent-src/rules/think-before-action.md +5 -5
- package/dist/agent-src/rules/token-budget-discipline.md +5 -3
- package/dist/agent-src/rules/token-efficiency.md +2 -2
- package/dist/agent-src/rules/untrusted-input-defense.md +4 -4
- package/dist/agent-src/rules/user-interaction.md +12 -0
- package/dist/agent-src/rules/verify-before-complete.md +4 -24
- package/dist/agent-src/skills/adversarial-review/SKILL.md +2 -2
- package/dist/agent-src/skills/agent-security-review/SKILL.md +52 -45
- package/dist/agent-src/skills/agents-md-thin-root/SKILL.md +2 -2
- package/dist/agent-src/skills/ai-code-blindspots/SKILL.md +20 -20
- package/dist/agent-src/skills/ai-council/SKILL.md +185 -128
- package/dist/agent-src/skills/analysis-skill-router/SKILL.md +3 -3
- package/dist/agent-src/skills/api-endpoint/SKILL.md +2 -2
- package/dist/agent-src/skills/artisan-commands/SKILL.md +2 -2
- package/dist/agent-src/skills/async-python-patterns/SKILL.md +8 -7
- package/dist/agent-src/skills/authz-review/SKILL.md +16 -15
- package/dist/agent-src/skills/aws-infrastructure/SKILL.md +5 -5
- package/dist/agent-src/skills/blade-ui/SKILL.md +1 -1
- package/dist/agent-src/skills/bug-analyzer/SKILL.md +30 -12
- package/dist/agent-src/skills/code-intelligence/SKILL.md +0 -1
- package/dist/agent-src/skills/code-intelligence/evals/triggers.json +52 -0
- package/dist/agent-src/skills/code-review/SKILL.md +6 -6
- package/dist/agent-src/skills/command-routing/SKILL.md +5 -4
- package/dist/agent-src/skills/composer-packages/SKILL.md +2 -2
- package/dist/agent-src/skills/condense-memory/SKILL.md +43 -41
- package/dist/agent-src/skills/context-document/SKILL.md +23 -21
- package/dist/agent-src/skills/copilot-config/SKILL.md +6 -1
- package/dist/agent-src/skills/decision-record/SKILL.md +20 -18
- package/dist/agent-src/skills/design-intelligence/SKILL.md +4 -4
- package/dist/agent-src/skills/design-review/SKILL.md +15 -14
- package/dist/agent-src/skills/design-system-capture/reference/design-system-json.md +28 -25
- package/dist/agent-src/skills/devcontainer/SKILL.md +2 -2
- package/dist/agent-src/skills/docker/SKILL.md +1 -1
- package/dist/agent-src/skills/docx-authoring/evals/triggers.json +52 -0
- package/dist/agent-src/skills/emit-tickets/SKILL.md +2 -2
- package/dist/agent-src/skills/error-handling-patterns/SKILL.md +1 -1
- package/dist/agent-src/skills/estimate-ticket/SKILL.md +2 -2
- package/dist/agent-src/skills/evaluate-llm-feature/SKILL.md +0 -1
- package/dist/agent-src/skills/evaluate-llm-feature/evals/triggers.json +52 -0
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +6 -5
- package/dist/agent-src/skills/feature-planning/SKILL.md +2 -2
- package/dist/agent-src/skills/finishing-a-development-branch/SKILL.md +3 -3
- package/dist/agent-src/skills/flux/SKILL.md +1 -1
- package/dist/agent-src/skills/frontend-render-security/SKILL.md +13 -13
- package/dist/agent-src/skills/git-workflow/SKILL.md +33 -33
- package/dist/agent-src/skills/grafana/SKILL.md +5 -0
- package/dist/agent-src/skills/humanizer/SKILL.md +83 -66
- package/dist/agent-src/skills/humanizer/data/patterns.md +14 -14
- package/dist/agent-src/skills/humanizer/references/anti-aiisms.md +4 -4
- package/dist/agent-src/skills/judge-artifact-completeness/SKILL.md +82 -37
- package/dist/agent-src/skills/judge-bug-hunter/SKILL.md +17 -5
- package/dist/agent-src/skills/judge-injection-defense/SKILL.md +63 -25
- package/dist/agent-src/skills/judge-security-auditor/SKILL.md +2 -0
- package/dist/agent-src/skills/judge-synthesis/SKILL.md +72 -28
- package/dist/agent-src/skills/laravel-horizon/SKILL.md +5 -0
- package/dist/agent-src/skills/laravel-mail/SKILL.md +5 -4
- package/dist/agent-src/skills/laravel-middleware/SKILL.md +5 -4
- package/dist/agent-src/skills/laravel-notifications/SKILL.md +10 -9
- package/dist/agent-src/skills/laravel-pennant/SKILL.md +1 -1
- package/dist/agent-src/skills/laravel-pulse/SKILL.md +9 -8
- package/dist/agent-src/skills/laravel-reverb/SKILL.md +6 -5
- package/dist/agent-src/skills/laravel-scheduling/SKILL.md +6 -1
- package/dist/agent-src/skills/laravel-validation/SKILL.md +12 -0
- package/dist/agent-src/skills/launch-readiness/SKILL.md +1 -1
- package/dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md +7 -7
- package/dist/agent-src/skills/learning-tutor/SKILL.md +44 -43
- package/dist/agent-src/skills/learning-tutor/evals/triggers.json +52 -0
- package/dist/agent-src/skills/license-compliance-audit/SKILL.md +7 -7
- package/dist/agent-src/skills/license-compliance-borrow-check/SKILL.md +3 -3
- package/dist/agent-src/skills/license-compliance-credits/SKILL.md +4 -4
- package/dist/agent-src/skills/llm-provider-knowledge/SKILL.md +0 -1
- package/dist/agent-src/skills/memory-consolidation/SKILL.md +69 -64
- package/dist/agent-src/skills/motion-choreographer/SKILL.md +6 -6
- package/dist/agent-src/skills/pdf-tools/evals/triggers.json +52 -0
- package/dist/agent-src/skills/performance-analysis/SKILL.md +7 -3
- package/dist/agent-src/skills/persona-improvement/SKILL.md +0 -2
- package/dist/agent-src/skills/persona-improvement/evals/triggers.json +52 -0
- package/dist/agent-src/skills/php-coder/SKILL.md +10 -0
- package/dist/agent-src/skills/prediction-pool-optimizer/SKILL.md +129 -120
- package/dist/agent-src/skills/prediction-pool-optimizer/reference/ev-fixtures.md +36 -35
- package/dist/agent-src/skills/prediction-pool-optimizer/reference/odds-and-bonus.md +45 -41
- package/dist/agent-src/skills/project-analysis-core/SKILL.md +4 -4
- package/dist/agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +3 -3
- package/dist/agent-src/skills/project-analysis-react/SKILL.md +1 -1
- package/dist/agent-src/skills/project-analysis-symfony/SKILL.md +1 -1
- package/dist/agent-src/skills/project-analysis-zend-laminas/SKILL.md +2 -2
- package/dist/agent-src/skills/prompt-engineering-patterns/SKILL.md +1 -1
- package/dist/agent-src/skills/prompt-validator/SKILL.md +39 -39
- package/dist/agent-src/skills/quality-tools/SKILL.md +15 -15
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +55 -19
- package/dist/agent-src/skills/react-shadcn-ui/reference/registry.md +29 -27
- package/dist/agent-src/skills/readme-writing-package/SKILL.md +2 -2
- package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +25 -25
- package/dist/agent-src/skills/recursive-verification/SKILL.md +6 -5
- package/dist/agent-src/skills/refine-prompt/SKILL.md +1 -1
- package/dist/agent-src/skills/refine-ticket/SKILL.md +20 -2
- package/dist/agent-src/skills/repomix-packer/SKILL.md +1 -1
- package/dist/agent-src/skills/requesting-code-review/SKILL.md +2 -2
- package/dist/agent-src/skills/roadmap-management/SKILL.md +80 -66
- package/dist/agent-src/skills/roadmap-writing/SKILL.md +84 -77
- package/dist/agent-src/skills/rule-refactor/SKILL.md +1 -1
- package/dist/agent-src/skills/screenshot-hygiene/evals/triggers.json +52 -0
- package/dist/agent-src/skills/security-audit/SKILL.md +26 -9
- package/dist/agent-src/skills/security-maturity-assessment/SKILL.md +38 -16
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +14 -11
- package/dist/agent-src/skills/skill-writing/SKILL.md +9 -8
- package/dist/agent-src/skills/song-to-script/SKILL.md +93 -85
- package/dist/agent-src/skills/sql-writing/SKILL.md +2 -2
- package/dist/agent-src/skills/stakeholder-tradeoff/SKILL.md +4 -3
- package/dist/agent-src/skills/standards-from-config/SKILL.md +61 -43
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +22 -8
- package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +28 -2
- package/dist/agent-src/skills/supply-chain-intake/SKILL.md +13 -13
- package/dist/agent-src/skills/systematic-debugging/SKILL.md +22 -21
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +1 -1
- package/dist/agent-src/skills/technical-specification/SKILL.md +5 -0
- package/dist/agent-src/skills/terraform/SKILL.md +2 -2
- package/dist/agent-src/skills/terragrunt/SKILL.md +8 -8
- package/dist/agent-src/skills/testing-anti-patterns/process-anti-patterns.md +1 -1
- package/dist/agent-src/skills/threat-modeling/SKILL.md +19 -13
- package/dist/agent-src/skills/universal-project-analysis/SKILL.md +1 -1
- package/dist/agent-src/skills/upstream-contribute/SKILL.md +0 -1
- package/dist/agent-src/skills/using-git-worktrees/SKILL.md +9 -9
- package/dist/agent-src/skills/validate-feature-fit/SKILL.md +3 -1
- package/dist/agent-src/skills/verify-completion-evidence/SKILL.md +4 -6
- package/dist/agent-src/skills/verify-repair-loop/SKILL.md +67 -61
- package/dist/agent-src/skills/video-director/SKILL.md +7 -7
- package/dist/agent-src/skills/worktree-lifecycle/SKILL.md +3 -3
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/contexts/knowledge-pages.md +47 -45
- package/dist/agent-src/templates/contexts/lesson-card.md +2 -2
- package/dist/agent-src/templates/contexts/tenant-boundaries.md +2 -2
- package/dist/agent-src/templates/contexts.md +1 -1
- package/dist/agent-src/templates/features.md +1 -1
- package/dist/agent-src/templates/roadmaps.md +125 -116
- package/dist/agent-src/templates/rule.md +2 -1
- package/dist/agent-src/templates/scripts/pr_risk_review.ts +0 -0
- package/dist/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
- package/dist/agent-src/templates/scripts/tier_usage_report.ts +2 -2
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +2 -2
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/review.ts +1 -1
- package/dist/agent-src/user-types/README.md +8 -8
- package/dist/agent-src/user-types/galabau-field-crew.md +34 -33
- package/dist/agent-src/user-types/metalworking-shop.md +35 -34
- package/dist/agent-src/user-types/truck-driver.md +22 -20
- package/dist/cli/python/workspace_roles.js +2 -2
- package/dist/cli/python/workspace_roles.js.map +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +88 -62
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +3 -3
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +6 -5
- package/dist/discovery/trust-report.md +2 -2
- package/dist/discovery/workspaces.json +5 -4
- package/dist/hooks/dispatch.js +186 -12
- package/dist/install/install.mjs +8 -0
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +1199 -857
- package/dist/router.json +1 -1
- package/dist/scripts/_lib/compile_time_toggles.js +48 -0
- package/dist/scripts/_lib/compile_time_toggles.js.map +1 -0
- package/dist/scripts/condense.js +234 -217
- package/dist/scripts/condense.js.map +1 -1
- package/dist/server/schemas/settings.js +4 -0
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/shared/userMd/utils.js +30 -0
- package/dist/shared/userMd/utils.js.map +1 -1
- package/dist/ui/assets/index-BpSQt5vm.js.map +1 -1
- package/docs/guidelines/agent-infra/api-cost-levers.md +56 -5
- package/docs/guidelines/agent-infra/simplicity-and-goal-demos.md +93 -33
- package/package.json +1 -1
- package/src/agent-src/templates/scripts/pr_risk_review.ts +0 -0
- package/src/agent-src/templates/scripts/telemetry/aggregator.ts +0 -0
- package/src/agent-src/templates/scripts/tier_usage_report.ts +2 -2
- package/src/agent-src/templates/scripts/work_engine/directives/ui/polish.ts +2 -2
- package/src/agent-src/templates/scripts/work_engine/directives/ui/review.ts +1 -1
- package/src/config/agent-settings.template.yml +32 -2
- package/src/config/ci-local-parity.yml +142 -0
- package/src/config/gate-coverage.yml +127 -0
- package/src/config/preamble-payload-budget.json +44 -0
- package/src/scripts/_cli/cmd_doctor.ts +78 -2
- package/src/scripts/_lib/agent_user_profile.ts +381 -0
- package/src/scripts/_lib/agents_overlay.ts +9 -0
- package/src/scripts/_lib/anchor_eval.ts +311 -0
- package/src/scripts/_lib/cc_transcript.ts +316 -0
- package/src/scripts/_lib/compile_time_toggles.ts +79 -0
- package/src/scripts/_lib/confusables.ts +101 -0
- package/src/scripts/_lib/duplicate_scope_census.ts +77 -0
- package/src/scripts/_lib/managed_agents_folder.ts +181 -0
- package/src/scripts/_lib/payload_hash_drift.ts +126 -0
- package/src/scripts/_lib/preservation_migration.ts +291 -0
- package/src/scripts/_lib/retrieval_sanitize.ts +166 -2
- package/src/scripts/_lib/scan_scope.ts +115 -0
- package/src/scripts/_lib/user_global_memory_audit.ts +187 -0
- package/src/scripts/_lib/user_global_observations.ts +830 -0
- package/src/scripts/_lib/user_global_revocations.ts +110 -0
- package/src/scripts/_lib/user_memory_gate_counters.ts +291 -0
- package/src/scripts/ai_council/blind_review.ts +0 -0
- package/src/scripts/ai_council/budget_guard.ts +90 -11
- package/src/scripts/ai_council/bundler.ts +2 -2
- package/src/scripts/ai_council/clients.ts +59 -3
- package/src/scripts/ai_council/config.ts +38 -0
- package/src/scripts/ai_council/orchestrator.ts +54 -9
- package/src/scripts/ai_team/team_dispatch.ts +17 -6
- package/src/scripts/anchor_eval_falsify.ts +198 -0
- package/src/scripts/anchor_scoring_run.ts +239 -0
- package/src/scripts/annotate_discovery.ts +1 -65
- package/src/scripts/bench_quality_run.ts +168 -4
- package/src/scripts/cache_realization_report.ts +782 -0
- package/src/scripts/check_artefact_count_messaging.ts +5 -1
- package/src/scripts/check_augment_description_cap.ts +15 -4
- package/src/scripts/check_ci_local_parity.ts +317 -0
- package/src/scripts/check_condensation.ts +96 -191
- package/src/scripts/check_context_paths.ts +38 -9
- package/src/scripts/check_gate_coverage.ts +299 -0
- package/src/scripts/check_iron_law_prominence.ts +22 -1
- package/src/scripts/check_kernel_prefix_stability.ts +0 -0
- package/src/scripts/check_no_new_legacy_path.ts +16 -6
- package/src/scripts/check_no_roadmap_refs.ts +22 -9
- package/src/scripts/check_originality_freshness.ts +167 -0
- package/src/scripts/check_preamble_payload_budget.ts +130 -0
- package/src/scripts/check_proposal.ts +0 -0
- package/src/scripts/check_references.ts +0 -1
- package/src/scripts/check_safety_floor_untouched.ts +171 -24
- package/src/scripts/check_site_links.ts +62 -3
- package/src/scripts/ci_status.ts +0 -0
- package/src/scripts/cluster_near_miss_patterns.ts +0 -0
- package/src/scripts/code_graph/build.ts +0 -0
- package/src/scripts/command_suggester/types.ts +0 -0
- package/src/scripts/compile_router.ts +10 -14
- package/src/scripts/condense.sh +3 -4
- package/src/scripts/condense.ts +247 -228
- package/src/scripts/cost/track.mjs +168 -33
- package/src/scripts/cost_summary.ts +33 -1
- package/src/scripts/council_cli.ts +45 -3
- package/src/scripts/discovery_graph.ts +0 -0
- package/src/scripts/encoding_corpus.ts +500 -0
- package/src/scripts/encoding_corpus_report.ts +216 -0
- package/src/scripts/generate_index.ts +19 -2
- package/src/scripts/install-hooks.sh +2 -2
- package/src/scripts/learning_sidecar.ts +0 -0
- package/src/scripts/lint_confusables.ts +10 -72
- package/src/scripts/lint_featured_skills.ts +0 -0
- package/src/scripts/lint_hidden_unicode.ts +208 -0
- package/src/scripts/lint_load_context.ts +17 -5
- package/src/scripts/lint_new_skill_gate.ts +9 -3
- package/src/scripts/lint_no_python_twin_rationale.ts +17 -2
- package/src/scripts/lint_originality.ts +1 -1
- package/src/scripts/lint_skill_originality.ts +1 -1
- package/src/scripts/lint_ticket_buildable.ts +1 -1
- package/src/scripts/mcp_server/tools.ts +4 -4
- package/src/scripts/measure_scope_dedup.ts +224 -0
- package/src/scripts/memory_lookup.ts +0 -0
- package/src/scripts/mine_session.ts +98 -0
- package/src/scripts/orchestration_payload_hash_drift.ts +145 -0
- package/src/scripts/preamble_byte_census.ts +574 -0
- package/src/scripts/probe_skill_registration.ts +2 -2
- package/src/scripts/redact_hook_capture.ts +13 -0
- package/src/scripts/release.ts +65 -10
- package/src/scripts/router_telemetry.ts +1 -1
- package/src/scripts/second_brain_retrieval.ts +14 -4
- package/src/scripts/skill_linter.ts +5 -0
- package/src/scripts/surface-tiers.yml +2 -0
- package/src/scripts/validate_pack_yaml.ts +0 -0
- package/src/server/schemas/settings.ts +8 -0
- package/src/shared/userMd/utils.ts +31 -0
- package/dist/agent-src/rules/telegraph-speak.md +0 -87
|
@@ -7,7 +7,7 @@ visibility: internal
|
|
|
7
7
|
cluster: agents
|
|
8
8
|
sub: user
|
|
9
9
|
skills: [agents]
|
|
10
|
-
description: Apply a buffered observation to .agent-user.md after explicit user confirmation; bumps last_updated and drops the applied observations from the buffer.
|
|
10
|
+
description: Apply a buffered observation to .agent-user.md or the global profile.md after explicit user confirmation; bumps last_updated and drops the applied observations from the buffer.
|
|
11
11
|
argument-hint: "[field]"
|
|
12
12
|
suggestion:
|
|
13
13
|
eligible: false
|
|
@@ -20,9 +20,16 @@ packs:
|
|
|
20
20
|
|
|
21
21
|
# /agents user accept
|
|
22
22
|
|
|
23
|
-
Apply a buffered observation from
|
|
24
|
-
[
|
|
25
|
-
to `.agent-user.md`
|
|
23
|
+
Apply a buffered observation from either
|
|
24
|
+
[the project-local or the global observation buffer](../../../../../docs/contracts/agent-user-schema.md#observation-buffer)
|
|
25
|
+
to the matching profile file — `.agent-user.md` for a project-local
|
|
26
|
+
observation, the global `~/.event4u/agent-config/user/profile.md` for a
|
|
27
|
+
global one (ADR-138, road-to-global-user-memory Phase 2) — after
|
|
28
|
+
explicit confirmation.
|
|
29
|
+
|
|
30
|
+
This is the **only** step in the learning channel that writes a profile
|
|
31
|
+
file. Everything upstream (the miner, the buffers, `/agents user review`)
|
|
32
|
+
only ever proposes.
|
|
26
33
|
|
|
27
34
|
Use when:
|
|
28
35
|
|
|
@@ -40,34 +47,77 @@ ls .agent-user.md 2>/dev/null
|
|
|
40
47
|
ls .agent-user.observations.jsonl 2>/dev/null
|
|
41
48
|
```
|
|
42
49
|
|
|
43
|
-
|
|
44
|
-
|
|
50
|
+
Resolve the global buffer/profile paths via
|
|
51
|
+
`user_global_observations.resolveGlobalObservationsPath()` /
|
|
52
|
+
`agent_user_profile.resolveGlobalProfilePath()`.
|
|
53
|
+
|
|
54
|
+
Both the project-local file/buffer AND the global profile/buffer
|
|
55
|
+
missing → print "Run `/agents user init` and accumulate observations
|
|
56
|
+
first." and stop. Otherwise proceed with whichever layer(s) have a
|
|
57
|
+
buffered observation.
|
|
45
58
|
|
|
46
|
-
### 2. Resolve target field
|
|
59
|
+
### 2. Resolve target field + layer
|
|
47
60
|
|
|
48
|
-
| Invocation | Resolved field |
|
|
61
|
+
| Invocation | Resolved field + layer |
|
|
49
62
|
|---|---|
|
|
50
|
-
| Handed off from `/agents user review` option 1 | The most-frequent field |
|
|
51
|
-
| `/agents user
|
|
52
|
-
| `/agents user accept
|
|
63
|
+
| Handed off from `/agents user review` option 1 | The most-frequent field, with the layer `review` reported it under |
|
|
64
|
+
| Handed off from `/agents user review` option 4 (a promotion candidate) | The candidate's `suggest` text, layer `global` — see § 2b below, skip straight to step 4 with the promotion framing |
|
|
65
|
+
| `/agents user accept <field>` | `<field>` (must match the schema enum); if both layers have an observation for it, ask which layer |
|
|
66
|
+
| `/agents user accept` with no arg | Print the field list (both layers), ask which |
|
|
53
67
|
|
|
54
68
|
Invalid field → print the schema enum and stop.
|
|
55
69
|
|
|
56
|
-
###
|
|
70
|
+
### 2b. Promotion candidates need a `promotion_reason` (road-to-global-user-memory Phase 3)
|
|
71
|
+
|
|
72
|
+
A candidate handed off from review option 4 has `seen_count ≥ 3` and a
|
|
73
|
+
`seen_in[]` project list — human-confirmed recurrence across that many
|
|
74
|
+
DIFFERENT projects (per
|
|
75
|
+
[`findPromotionCandidates`](../../../../../src/scripts/_lib/user_global_observations.ts)).
|
|
76
|
+
Crossing that threshold is candidacy only; it never auto-promotes
|
|
77
|
+
(mirroring ADR-121's rule that a knowledge card has no auto-`shareable`
|
|
78
|
+
path). Before step 4's confirmation, collect one additional line from the
|
|
79
|
+
user:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
This observation recurred in {seen_count} projects: {seen_in joined by ", "}.
|
|
83
|
+
|
|
84
|
+
Why should this generalise to your global profile?
|
|
85
|
+
> {free-text promotion_reason — required, no default}
|
|
86
|
+
```
|
|
57
87
|
|
|
58
|
-
|
|
88
|
+
An empty answer is not accepted — re-ask once, then fall back to
|
|
89
|
+
"Cancel" if the user still declines to give a reason. The
|
|
90
|
+
`promotion_reason` is shown in step 4's confirmation block (below) but is
|
|
91
|
+
**never written to `profile.md`** — see § 3 write below; it exists to make
|
|
92
|
+
the human's judgment call visible in this transcript, not to persist
|
|
93
|
+
alongside the fact.
|
|
59
94
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
95
|
+
### 3. Compute proposed change
|
|
96
|
+
|
|
97
|
+
For the resolved field + layer — or, for a promotion candidate (§ 2b),
|
|
98
|
+
the single matched buffer entry:
|
|
99
|
+
|
|
100
|
+
1. Read every matching observation from that layer's buffer only —
|
|
101
|
+
`.agent-user.observations.jsonl` for `project`,
|
|
102
|
+
`user_global_observations.readGlobalObservations()` for `global`.
|
|
103
|
+
2. Pick the **latest** `suggest` value (most recent `ts` wins). For a
|
|
104
|
+
promotion candidate, the proposed value is
|
|
105
|
+
[`promotionValueFor(candidate)`](../../../../../src/scripts/_lib/user_global_observations.ts) —
|
|
106
|
+
the fact text ONLY, never the `context` or `seen_in` metadata attached
|
|
107
|
+
to it.
|
|
108
|
+
3. Read the current value from that layer's profile file
|
|
109
|
+
(`.agent-user.md` or the global `profile.md`) — NOT the merged
|
|
110
|
+
effective value, so the confirmation shows exactly what this layer
|
|
111
|
+
will change.
|
|
63
112
|
4. If they match, print "No change — current value already matches
|
|
64
113
|
the latest observation." and skip to step 6.
|
|
65
114
|
|
|
66
115
|
### 4. Confirm
|
|
67
116
|
|
|
68
117
|
```
|
|
69
|
-
Apply this change to .agent-user.md?
|
|
118
|
+
Apply this change to {.agent-user.md | the global profile}?
|
|
70
119
|
|
|
120
|
+
layer : {project | global}
|
|
71
121
|
field : {field}
|
|
72
122
|
current : "{current_value}"
|
|
73
123
|
proposed: "{proposed_value}"
|
|
@@ -76,7 +126,15 @@ Apply this change to .agent-user.md?
|
|
|
76
126
|
|
|
77
127
|
> 1. Apply
|
|
78
128
|
> 2. Skip — keep current value, drop these observations from the buffer
|
|
79
|
-
> 3. Cancel — leave
|
|
129
|
+
> 3. Cancel — leave the profile and buffer untouched
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
For a promotion candidate, append two lines above `> 1. Apply` instead of
|
|
133
|
+
`source`/`evidence`:
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
seen in : {seen_count} projects ({seen_in joined by ", "})
|
|
137
|
+
reason : "{promotion_reason from § 2b}"
|
|
80
138
|
```
|
|
81
139
|
|
|
82
140
|
One question per turn. Wait for the user's number.
|
|
@@ -85,24 +143,40 @@ One question per turn. Wait for the user's number.
|
|
|
85
143
|
|
|
86
144
|
On `1. Apply`:
|
|
87
145
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
146
|
+
- **`project` layer:** rewrite the targeted field in `.agent-user.md`
|
|
147
|
+
frontmatter, preserving every other field (a YAML round-trip loader
|
|
148
|
+
that keeps formatting), bump `last_updated` to today (ISO
|
|
149
|
+
`YYYY-MM-DD`), validate ≤100 lines + privacy floor clean — any
|
|
150
|
+
violation rolls back and prints the error.
|
|
151
|
+
- **`global` layer:** call
|
|
152
|
+
[`applyObservationToGlobalProfile(field, value, { today })`](../../../../src/scripts/_lib/agent_user_profile.ts) —
|
|
153
|
+
it round-trips the existing `profile.md` (or starts from empty),
|
|
154
|
+
sets the field, bumps `last_updated`, and throws (never partially
|
|
155
|
+
writes) if the result would exceed the global layer's own 100-line
|
|
156
|
+
cap. A thrown error is the roll-back signal — print it and stop. For a
|
|
157
|
+
promotion candidate, `value` is `promotionValueFor(candidate)` — the
|
|
158
|
+
`promotion_reason` collected in § 2b is shown in step 4's confirmation
|
|
159
|
+
only; it is **never** passed to `applyObservationToGlobalProfile` and
|
|
160
|
+
never appears in `profile.md`, alongside `context`/`seen_in`, which are
|
|
161
|
+
likewise never written. This is the only generalisation path, and it
|
|
162
|
+
leaves the durable profile with zero project references (see
|
|
163
|
+
[`agent-user-schema.md § Project attribution`](../../../../../docs/contracts/agent-user-schema.md#project-attribution-road-to-global-user-memory-phase-3)).
|
|
164
|
+
|
|
165
|
+
Either layer: drop **all** applied observations for that field from
|
|
166
|
+
**that layer's own buffer only** (rewrite the JSONL minus matching
|
|
167
|
+
lines) — never touch the other layer's buffer. For a promoted candidate,
|
|
168
|
+
this drops only the ONE matched buffer entry (identified in § 2b), not
|
|
169
|
+
every `notes`-field entry in the buffer.
|
|
170
|
+
|
|
171
|
+
On `2. Skip`: leave the profile untouched but still drop the
|
|
172
|
+
observations for that field from that layer's buffer.
|
|
99
173
|
|
|
100
174
|
On `3. Cancel`: stop without any write.
|
|
101
175
|
|
|
102
176
|
### 6. Confirm
|
|
103
177
|
|
|
104
178
|
```
|
|
105
|
-
✅
|
|
179
|
+
✅ {layer} profile updated ({field}: "{old}" → "{new}", last_updated: YYYY-MM-DD).
|
|
106
180
|
Buffer: {n} observations removed, {m} remaining.
|
|
107
181
|
```
|
|
108
182
|
|
|
@@ -115,11 +189,22 @@ Do NOT commit. Do NOT auto-chain to a second field.
|
|
|
115
189
|
- Never write without explicit confirmation in step 4.
|
|
116
190
|
- Never bypass the privacy-floor scan, even if the buffer writer
|
|
117
191
|
already redacted.
|
|
192
|
+
- Never write to the layer the observation did NOT come from — an
|
|
193
|
+
observation buffered as `global` writes `profile.md`, never
|
|
194
|
+
`.agent-user.md`, and vice versa.
|
|
195
|
+
- Never accept a promotion candidate without a non-empty
|
|
196
|
+
`promotion_reason` (§ 2b) — a `seen_count ≥ 3` tally is candidacy, not
|
|
197
|
+
authorization.
|
|
198
|
+
- Never write `context` or `seen_in` to `profile.md` — a promotion writes
|
|
199
|
+
`promotionValueFor(candidate)`, the fact text only.
|
|
118
200
|
- Mirror the user's language for prompts per
|
|
119
201
|
[`language-and-tone`](../../../../dist/agent-src/rules/language-and-tone.md).
|
|
120
202
|
|
|
121
203
|
## See also
|
|
122
204
|
|
|
123
205
|
- Schema + buffer contract: [`agent-user-schema § Observation buffer`](../../../../../docs/contracts/agent-user-schema.md#observation-buffer).
|
|
206
|
+
- Project attribution + promotion: [`agent-user-schema § Project attribution`](../../../../../docs/contracts/agent-user-schema.md#project-attribution-road-to-global-user-memory-phase-3).
|
|
207
|
+
- Global write primitive: [`agent_user_profile.applyObservationToGlobalProfile`](../../../../src/scripts/_lib/agent_user_profile.ts).
|
|
208
|
+
- Promotion primitives: [`findPromotionCandidates`, `promotionValueFor`](../../../../../src/scripts/_lib/user_global_observations.ts).
|
|
124
209
|
- Parent: [`/agents user`](../user.md).
|
|
125
210
|
- Sibling: [`/agents user review`](review.md), [`/agents user update`](update.md).
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: medium
|
|
3
|
+
name: agents-user-delete
|
|
4
|
+
pack: meta
|
|
5
|
+
tier: 2
|
|
6
|
+
visibility: internal
|
|
7
|
+
cluster: agents
|
|
8
|
+
sub: user
|
|
9
|
+
skills: [agents]
|
|
10
|
+
description: Delete one buffered global observation, purge every observation attributed to a project, or revoke a field from the global profile.md — each writes an append-only tombstone before deleting.
|
|
11
|
+
argument-hint: "[observation <id> | project <path> | profile-field <field>]"
|
|
12
|
+
suggestion:
|
|
13
|
+
eligible: false
|
|
14
|
+
rationale: "Mutates the global observation buffer or profile.md — only run from /agents user review, /agents user show --audit, or explicit user invocation."
|
|
15
|
+
workspaces:
|
|
16
|
+
- agent-config-maintainer
|
|
17
|
+
packs:
|
|
18
|
+
- meta
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# /agents user delete
|
|
22
|
+
|
|
23
|
+
Delete something the learning channel wrote to the **global** layer —
|
|
24
|
+
road-to-global-user-memory Phase 4, the delete counterpart of
|
|
25
|
+
[`/agents user accept`](accept.md). Every deletion writes an
|
|
26
|
+
append-only tombstone to the revocation ledger BEFORE the underlying
|
|
27
|
+
file is rewritten without it — see
|
|
28
|
+
[`agent-user-schema § Delete, revoke, and audit`](../../../../../docs/contracts/agent-user-schema.md#delete-revoke-and-audit-road-to-global-user-memory-phase-4).
|
|
29
|
+
|
|
30
|
+
Three targets, one per invocation:
|
|
31
|
+
|
|
32
|
+
| Target | Removes | Backing function |
|
|
33
|
+
|---|---|---|
|
|
34
|
+
| `observation <id>` | ONE buffered line from `observations.jsonl` | [`deleteGlobalObservation`](../../../../../src/scripts/_lib/user_global_observations.ts) |
|
|
35
|
+
| `project <path>` | EVERY observation attributed (`context.project_path`) to that project | [`purgeProjectContext`](../../../../../src/scripts/_lib/user_global_observations.ts) |
|
|
36
|
+
| `profile-field <field>` | A field's value from the global `profile.md` | [`revokeGlobalProfileField`](../../../../../src/scripts/_lib/agent_user_profile.ts) |
|
|
37
|
+
|
|
38
|
+
Use when:
|
|
39
|
+
|
|
40
|
+
- [`/agents user show --audit`](show.md) or
|
|
41
|
+
[`/agents user review`](review.md) surfaced something the user wants
|
|
42
|
+
gone.
|
|
43
|
+
- A project was deleted and its buffered facts should not linger
|
|
44
|
+
forever (`project <path>`).
|
|
45
|
+
- A promoted or accepted profile field turned out to be wrong
|
|
46
|
+
(`profile-field <field>`).
|
|
47
|
+
|
|
48
|
+
Never runs autonomously — always asks before writing, exactly like
|
|
49
|
+
`accept`.
|
|
50
|
+
|
|
51
|
+
## Steps
|
|
52
|
+
|
|
53
|
+
### 1. Resolve the target
|
|
54
|
+
|
|
55
|
+
| Invocation | Target |
|
|
56
|
+
|---|---|
|
|
57
|
+
| `/agents user delete observation <id>` | The buffered observation whose `observationId` equals `<id>` (shown by `/agents user show --audit` or `/agents user review`) |
|
|
58
|
+
| `/agents user delete project <path>` | Every observation whose `context.project_path` equals `<path>` |
|
|
59
|
+
| `/agents user delete profile-field <field>` | `<field>` in the global `profile.md` (must match the schema enum) |
|
|
60
|
+
| No argument | Print the target-kind table above and ask which; then ask for the id/path/field |
|
|
61
|
+
|
|
62
|
+
Invalid `<field>` → print the schema enum and stop. No observation
|
|
63
|
+
matches `<id>` → print "No buffered observation with that id." and
|
|
64
|
+
stop (no tombstone is written for a no-op — see the backing functions'
|
|
65
|
+
`deleted: false` / `purgedCount: 0` contract).
|
|
66
|
+
|
|
67
|
+
### 2. Confirm
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
Delete this from the global user-memory layer?
|
|
71
|
+
|
|
72
|
+
target : {observation <id> | project <path> | profile-field <field>}
|
|
73
|
+
current: {for profile-field — the current value; for observation/project — the suggest text(s) that will be removed}
|
|
74
|
+
|
|
75
|
+
> 1. Delete — write a tombstone, then remove
|
|
76
|
+
> 2. Cancel — leave everything untouched
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
For `project <path>`, list every matched observation's `suggest` text
|
|
80
|
+
before asking, so the user confirms the actual scope, not just a count.
|
|
81
|
+
|
|
82
|
+
One question per turn. Wait for the user's number.
|
|
83
|
+
|
|
84
|
+
### 3. Ask for a reason
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
Why is this being deleted? (one line, becomes the tombstone's `reason`)
|
|
88
|
+
> {free-text reason}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
An empty answer is not accepted — re-ask once, then default to `"no
|
|
92
|
+
reason given"` if the user still declines (mirrors
|
|
93
|
+
[`user_global_revocations.appendTombstone`](../../../../../src/scripts/_lib/user_global_revocations.ts)'s
|
|
94
|
+
own fallback, so a user who truly has nothing to say is never blocked).
|
|
95
|
+
|
|
96
|
+
### 4. Write
|
|
97
|
+
|
|
98
|
+
On `1. Delete`, call the matching function with today's date and the
|
|
99
|
+
step-3 reason:
|
|
100
|
+
|
|
101
|
+
- `observation <id>` →
|
|
102
|
+
[`deleteGlobalObservation(id, reason, { today })`](../../../../../src/scripts/_lib/user_global_observations.ts).
|
|
103
|
+
- `project <path>` →
|
|
104
|
+
[`purgeProjectContext(path, reason, { today })`](../../../../../src/scripts/_lib/user_global_observations.ts).
|
|
105
|
+
- `profile-field <field>` →
|
|
106
|
+
[`revokeGlobalProfileField(field, reason, { today })`](../../../../../src/scripts/_lib/agent_user_profile.ts).
|
|
107
|
+
|
|
108
|
+
Each function writes its tombstone(s) BEFORE the buffer/profile
|
|
109
|
+
rewrite — never call `fs`/the file directly from this command; always
|
|
110
|
+
go through the function so the tombstone-before-delete order holds.
|
|
111
|
+
|
|
112
|
+
On `2. Cancel`: stop without any write, without any tombstone.
|
|
113
|
+
|
|
114
|
+
### 5. Confirm
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
✅ Deleted ({target}). Tombstone recorded: {entity_id}, {revoked_at}.
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
For `project <path>`, report the count: `✅ Purged {n} observation(s) from {path}. {n} tombstone(s) recorded.`
|
|
121
|
+
|
|
122
|
+
Do NOT commit. Do NOT auto-chain to a second deletion.
|
|
123
|
+
|
|
124
|
+
## Rules
|
|
125
|
+
|
|
126
|
+
- One target per invocation. Run the command again for the next
|
|
127
|
+
deletion.
|
|
128
|
+
- Never delete without explicit confirmation in step 2 and a reason
|
|
129
|
+
from step 3.
|
|
130
|
+
- Never write to a file directly — every deletion goes through
|
|
131
|
+
`deleteGlobalObservation`, `purgeProjectContext`, or
|
|
132
|
+
`revokeGlobalProfileField` so the tombstone always precedes the
|
|
133
|
+
delete.
|
|
134
|
+
- Never touch project-local `.agent-user.md` or its buffer from this
|
|
135
|
+
command — this leaf covers the global layer only. A project-local
|
|
136
|
+
fact is deleted by editing `.agent-user.md` directly (it never left
|
|
137
|
+
the project) or via [`/agents user review`](review.md)'s existing
|
|
138
|
+
"clear a buffer" option.
|
|
139
|
+
- Mirror the user's language for prompts per
|
|
140
|
+
[`language-and-tone`](../../../../dist/agent-src/rules/language-and-tone.md).
|
|
141
|
+
|
|
142
|
+
## See also
|
|
143
|
+
|
|
144
|
+
- Schema: [`agent-user-schema § Delete, revoke, and audit`](../../../../../docs/contracts/agent-user-schema.md#delete-revoke-and-audit-road-to-global-user-memory-phase-4) — the write→delete mapping and the ADR-121 reuse this command exposes.
|
|
145
|
+
- Audit source: [`/agents user show --audit`](show.md) — the read surface that surfaces what there is to delete.
|
|
146
|
+
- Parent: [`/agents user`](../user.md).
|
|
147
|
+
- Sibling: [`/agents user review`](review.md), [`/agents user accept`](accept.md) — the write side this command undoes.
|
|
@@ -7,7 +7,7 @@ visibility: internal
|
|
|
7
7
|
cluster: agents
|
|
8
8
|
sub: user
|
|
9
9
|
skills: [agents]
|
|
10
|
-
description: List buffered observations from
|
|
10
|
+
description: List buffered observations from the project-local and global observation buffers with numbered options to inspect or accept individually.
|
|
11
11
|
suggestion:
|
|
12
12
|
eligible: false
|
|
13
13
|
rationale: "Cluster sub-command — reached via its cluster head's routing or its explicit /cluster:sub name; not independently suggested (surface-consolidation)."
|
|
@@ -19,14 +19,17 @@ packs:
|
|
|
19
19
|
|
|
20
20
|
# /agents user review
|
|
21
21
|
|
|
22
|
-
List the buffered observations
|
|
23
|
-
|
|
22
|
+
List the buffered observations across BOTH observation buffers —
|
|
23
|
+
project-local `.agent-user.observations.jsonl` and the global
|
|
24
|
+
`~/.event4u/agent-config/user/observations.jsonl` (ADR-138,
|
|
25
|
+
road-to-global-user-memory Phase 2) — and let the user choose which to
|
|
26
|
+
inspect or accept.
|
|
24
27
|
|
|
25
28
|
Use when:
|
|
26
29
|
|
|
27
30
|
- You want to see what the agent has learned about your preferences.
|
|
28
|
-
- You suspect `.agent-user.md`
|
|
29
|
-
diff before editing.
|
|
31
|
+
- You suspect `.agent-user.md` (or the global `profile.md`) is out of
|
|
32
|
+
date and want a curated diff before editing.
|
|
30
33
|
- You want to dismiss observations the agent collected.
|
|
31
34
|
|
|
32
35
|
Read-only by itself — actual changes go through
|
|
@@ -35,57 +38,90 @@ Read-only by itself — actual changes go through
|
|
|
35
38
|
|
|
36
39
|
## Steps
|
|
37
40
|
|
|
38
|
-
### 1. Locate
|
|
41
|
+
### 1. Locate buffers
|
|
39
42
|
|
|
40
43
|
```bash
|
|
41
44
|
ls .agent-user.observations.jsonl 2>/dev/null
|
|
42
45
|
```
|
|
43
46
|
|
|
44
|
-
|
|
47
|
+
Resolve the global buffer's path via `user_global_observations.
|
|
48
|
+
resolveGlobalObservationsPath()` — it honours the config-home override
|
|
49
|
+
env var and the legacy fallback root exactly like every other global
|
|
50
|
+
artefact, so never hard-code either path here.
|
|
51
|
+
|
|
52
|
+
| State (either buffer) | Action |
|
|
45
53
|
|---|---|
|
|
46
|
-
|
|
|
47
|
-
|
|
|
54
|
+
| Both missing or empty | Print "No buffered observations. The agent has not learned anything new." and stop |
|
|
55
|
+
| At least one present | Proceed with whichever buffer(s) exist |
|
|
48
56
|
|
|
49
57
|
### 2. Parse + group
|
|
50
58
|
|
|
51
|
-
Read every line as JSON
|
|
52
|
-
|
|
59
|
+
Read every line as JSON from BOTH buffers via
|
|
60
|
+
[`user_global_observations.readGlobalObservations`](../../../../src/scripts/_lib/user_global_observations.ts)
|
|
61
|
+
for the global one, and the equivalent tolerant parse for the
|
|
62
|
+
project-local file. Drop malformed lines silently (one-line warning at
|
|
63
|
+
the end with the combined count; `readGlobalObservations` already
|
|
64
|
+
reports `droppedMalformed` / `droppedUnknownField`). Group by `field`
|
|
65
|
+
ACROSS both buffers, tagging each observation with its layer:
|
|
53
66
|
|
|
54
67
|
```
|
|
55
|
-
|
|
68
|
+
Buffered observations — {n} across {k} fields ({p} project-local, {g} global)
|
|
56
69
|
|
|
57
70
|
1. style.pace ({n}× since {oldest_ts})
|
|
58
|
-
latest suggest: "rapid" — evidence: user said 'mach kürzer' 3× this session
|
|
71
|
+
latest suggest: "rapid" [global] — evidence: user said 'mach kürzer' 3× this session
|
|
59
72
|
2. identity.nickname ({n}× since {oldest_ts})
|
|
60
|
-
latest suggest: "Matze" — evidence: user signed last 3 messages "— Matze"
|
|
73
|
+
latest suggest: "Matze" [project] — evidence: user signed last 3 messages "— Matze"
|
|
61
74
|
3. language ({n}× since {oldest_ts})
|
|
62
|
-
latest suggest: "de" — evidence: last 12 messages in German,
|
|
75
|
+
latest suggest: "de" [global] — evidence: last 12 messages in German, profile says "en"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Sort by frequency (most observations first, combined across both
|
|
79
|
+
layers), then by recency. When the SAME field has observations in both
|
|
80
|
+
layers, list the most-recent one first and note both counts.
|
|
81
|
+
|
|
82
|
+
### 2a. Promotion candidates (road-to-global-user-memory Phase 3)
|
|
83
|
+
|
|
84
|
+
Separately from the field grouping above, call
|
|
85
|
+
[`findPromotionCandidates`](../../../../../src/scripts/_lib/user_global_observations.ts)
|
|
86
|
+
over the global buffer's entries. Any observation with `seen_count ≥ 3`
|
|
87
|
+
(`PROMOTION_SEEN_COUNT_THRESHOLD`) is project-attributed, human-confirmed
|
|
88
|
+
recurring evidence across that many DIFFERENT projects — surface it as
|
|
89
|
+
its own block, ahead of the field list:
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
Promotion candidates — seen in 3+ projects:
|
|
93
|
+
|
|
94
|
+
1. "always use pnpm instead of npm for installs" — seen in 3 projects (acme-web, acme-api, acme-mobile)
|
|
63
95
|
```
|
|
64
96
|
|
|
65
|
-
|
|
97
|
+
This is candidacy only, never a promotion — crossing the threshold makes
|
|
98
|
+
`/agents user accept` able to offer promoting it, nothing more (see
|
|
99
|
+
[`agent-user-schema.md § Project attribution`](../../../../../docs/contracts/agent-user-schema.md#project-attribution-road-to-global-user-memory-phase-3)).
|
|
66
100
|
|
|
67
101
|
### 3. Ask
|
|
68
102
|
|
|
69
103
|
```
|
|
70
|
-
> 1. Accept the most-frequent suggestion ({field} → {value})
|
|
104
|
+
> 1. Accept the most-frequent suggestion ({field} [{layer}] → {value})
|
|
71
105
|
> 2. Inspect a specific field
|
|
72
|
-
> 3. Clear
|
|
73
|
-
> 4.
|
|
106
|
+
> 3. Clear a buffer (project-local, global, or both)
|
|
107
|
+
> 4. Promote a candidate from step 2a (only shown when ≥ 1 exists)
|
|
108
|
+
> 5. Cancel
|
|
74
109
|
```
|
|
75
110
|
|
|
76
111
|
| Choice | Action |
|
|
77
112
|
|---|---|
|
|
78
|
-
| 1 | Hand off to [`/agents user accept`](accept.md) with the chosen field |
|
|
79
|
-
| 2 | Print every observation for that field with evidence + ts, then re-ask |
|
|
80
|
-
| 3 |
|
|
81
|
-
| 4 |
|
|
113
|
+
| 1 | Hand off to [`/agents user accept`](accept.md) with the chosen field AND layer |
|
|
114
|
+
| 2 | Print every observation for that field (both layers) with evidence + ts, then re-ask |
|
|
115
|
+
| 3 | Ask which buffer(s) to truncate, then truncate the chosen file(s) to zero bytes; print confirmation |
|
|
116
|
+
| 4 | Hand off to [`/agents user accept`](accept.md) with the chosen promotion candidate — `accept` collects the mandatory `promotion_reason` before writing anything |
|
|
117
|
+
| 5 | Stop without changes |
|
|
82
118
|
|
|
83
119
|
One question per turn. Wait for the user's number.
|
|
84
120
|
|
|
85
121
|
### 4. Privacy-floor verify
|
|
86
122
|
|
|
87
123
|
Before printing any observation's `evidence` text, scan it for the
|
|
88
|
-
[exclusions list](
|
|
124
|
+
[exclusions list](../../../../../docs/contracts/agent-user-schema.md#explicit-exclusions).
|
|
89
125
|
Match → replace the offending substring with `[redacted]` in the
|
|
90
126
|
rendered output.
|
|
91
127
|
|
|
@@ -100,14 +136,15 @@ turn.
|
|
|
100
136
|
|
|
101
137
|
## Rules
|
|
102
138
|
|
|
103
|
-
- Read-only on `.agent-user.md
|
|
104
|
-
file.
|
|
105
|
-
-
|
|
139
|
+
- Read-only on `.agent-user.md` AND the global `profile.md`. Only
|
|
140
|
+
`accept` writes to either persona file.
|
|
141
|
+
- Both buffers are the only mutable artefacts (truncate via option 3).
|
|
106
142
|
- Mirror the user's language for prompts per
|
|
107
143
|
[`language-and-tone`](../../../../dist/agent-src/rules/language-and-tone.md).
|
|
108
144
|
|
|
109
145
|
## See also
|
|
110
146
|
|
|
111
|
-
- Schema + buffer contract: [`agent-user-schema § Observation buffer`](
|
|
147
|
+
- Schema + buffer contract: [`agent-user-schema § Observation buffer`](../../../../../docs/contracts/agent-user-schema.md#observation-buffer).
|
|
148
|
+
- Global buffer implementation: [`user_global_observations.ts`](../../../../src/scripts/_lib/user_global_observations.ts).
|
|
112
149
|
- Parent: [`/agents user`](../user.md).
|
|
113
150
|
- Sibling: [`/agents user accept`](accept.md), [`/agents user update`](update.md).
|