xtrm-tools 0.6.0 → 0.7.1
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/.xtrm/config/README.md +10 -0
- package/{config/mcp_servers.json → .xtrm/config/claude.mcp.json} +0 -28
- package/{config → .xtrm/config}/instructions/agents-top.md +12 -3
- package/{config → .xtrm/config}/instructions/claude-top.md +12 -3
- package/{config → .xtrm/config}/pi/extensions/beads/index.ts +44 -13
- package/{config → .xtrm/config}/pi/extensions/custom-footer/index.ts +59 -82
- package/{config → .xtrm/config}/pi/extensions/xtrm-ui/index.ts +3 -3
- package/{config → .xtrm/config}/pi/install-schema.json +2 -2
- package/.xtrm/config/pi.mcp.json +39 -0
- package/.xtrm/config/settings.json +41 -0
- package/.xtrm/extensions/auto-session-name/index.ts +29 -0
- package/.xtrm/extensions/auto-session-name/package.json +16 -0
- package/.xtrm/extensions/auto-update/index.ts +71 -0
- package/.xtrm/extensions/auto-update/package.json +16 -0
- package/.xtrm/extensions/beads/index.ts +232 -0
- package/.xtrm/extensions/beads/package.json +19 -0
- package/.xtrm/extensions/compact-header/index.ts +69 -0
- package/.xtrm/extensions/compact-header/package.json +16 -0
- package/.xtrm/extensions/core/adapter.ts +52 -0
- package/.xtrm/extensions/core/guard-rules.ts +100 -0
- package/.xtrm/extensions/core/lib.ts +3 -0
- package/.xtrm/extensions/core/logger.ts +45 -0
- package/.xtrm/extensions/core/package.json +18 -0
- package/.xtrm/extensions/core/runner.ts +71 -0
- package/.xtrm/extensions/core/session-state.ts +59 -0
- package/.xtrm/extensions/custom-footer/index.ts +398 -0
- package/.xtrm/extensions/custom-footer/package.json +19 -0
- package/.xtrm/extensions/custom-provider-qwen-cli/index.ts +363 -0
- package/.xtrm/extensions/custom-provider-qwen-cli/package.json +1 -0
- package/.xtrm/extensions/git-checkpoint/index.ts +53 -0
- package/.xtrm/extensions/git-checkpoint/package.json +16 -0
- package/.xtrm/extensions/lsp-bootstrap/index.ts +134 -0
- package/.xtrm/extensions/lsp-bootstrap/package.json +17 -0
- package/.xtrm/extensions/pi-serena-compact/index.ts +121 -0
- package/.xtrm/extensions/pi-serena-compact/package.json +16 -0
- package/.xtrm/extensions/quality-gates/index.ts +66 -0
- package/.xtrm/extensions/quality-gates/package.json +19 -0
- package/.xtrm/extensions/service-skills/index.ts +108 -0
- package/.xtrm/extensions/service-skills/package.json +19 -0
- package/.xtrm/extensions/session-flow/index.ts +96 -0
- package/.xtrm/extensions/session-flow/package.json +19 -0
- package/.xtrm/extensions/xtrm-loader/index.ts +152 -0
- package/.xtrm/extensions/xtrm-loader/package.json +19 -0
- package/.xtrm/extensions/xtrm-ui/format.ts +93 -0
- package/.xtrm/extensions/xtrm-ui/index.ts +1044 -0
- package/.xtrm/extensions/xtrm-ui/package.json +10 -0
- package/.xtrm/extensions/xtrm-ui/themes/pidex-dark.json +85 -0
- package/.xtrm/extensions/xtrm-ui/themes/pidex-light.json +85 -0
- package/{hooks → .xtrm/hooks}/README.md +2 -1
- package/{hooks → .xtrm/hooks}/beads-commit-gate.mjs +4 -0
- package/.xtrm/hooks/beads-memory-gate.mjs +119 -0
- package/{plugins/xtrm-tools → .xtrm}/hooks/quality-check-env.mjs +1 -4
- package/.xtrm/hooks/statusline.mjs +156 -0
- package/{plugins/xtrm-tools → .xtrm}/hooks/using-xtrm-reminder.mjs +8 -7
- package/.xtrm/registry.json +1323 -0
- package/CHANGELOG.md +27 -0
- package/README.md +3 -1
- package/cli/dist/index.cjs +27025 -30731
- package/cli/dist/index.cjs.map +1 -1
- package/cli/package.json +2 -1
- package/package.json +12 -12
- package/.claude-plugin/marketplace.json +0 -19
- package/.claude-plugin/plugin.json +0 -9
- package/config/hooks.json +0 -83
- package/config/settings.json +0 -70
- package/hooks/beads-memory-gate.mjs +0 -94
- package/hooks/quality-check-env.mjs +0 -79
- package/hooks/statusline.mjs +0 -183
- package/hooks/tsconfig-cache.json +0 -14
- package/hooks/using-xtrm-reminder.mjs +0 -47
- package/plugins/xtrm-tools/.claude-plugin/plugin.json +0 -9
- package/plugins/xtrm-tools/.mcp.json +0 -18
- package/plugins/xtrm-tools/hooks/README.md +0 -61
- package/plugins/xtrm-tools/hooks/beads-claim-sync.mjs +0 -154
- package/plugins/xtrm-tools/hooks/beads-commit-gate.mjs +0 -70
- package/plugins/xtrm-tools/hooks/beads-compact-restore.mjs +0 -77
- package/plugins/xtrm-tools/hooks/beads-compact-save.mjs +0 -63
- package/plugins/xtrm-tools/hooks/beads-edit-gate.mjs +0 -85
- package/plugins/xtrm-tools/hooks/beads-gate-core.mjs +0 -236
- package/plugins/xtrm-tools/hooks/beads-gate-messages.mjs +0 -75
- package/plugins/xtrm-tools/hooks/beads-gate-utils.mjs +0 -176
- package/plugins/xtrm-tools/hooks/beads-memory-gate.mjs +0 -94
- package/plugins/xtrm-tools/hooks/beads-stop-gate.mjs +0 -53
- package/plugins/xtrm-tools/hooks/gitnexus/gitnexus-hook.cjs +0 -222
- package/plugins/xtrm-tools/hooks/hooks.json +0 -129
- package/plugins/xtrm-tools/hooks/quality-check.cjs +0 -1286
- package/plugins/xtrm-tools/hooks/quality-check.py +0 -345
- package/plugins/xtrm-tools/hooks/statusline.mjs +0 -183
- package/plugins/xtrm-tools/hooks/tsconfig-cache.json +0 -14
- package/plugins/xtrm-tools/hooks/worktree-boundary.mjs +0 -33
- package/plugins/xtrm-tools/hooks/xtrm-logger.mjs +0 -123
- package/plugins/xtrm-tools/hooks/xtrm-session-logger.mjs +0 -27
- package/plugins/xtrm-tools/hooks/xtrm-tool-logger.mjs +0 -53
- package/plugins/xtrm-tools/skills/README.txt +0 -31
- package/plugins/xtrm-tools/skills/clean-code/SKILL.md +0 -201
- package/plugins/xtrm-tools/skills/creating-service-skills/SKILL.md +0 -433
- package/plugins/xtrm-tools/skills/creating-service-skills/references/script_quality_standards.md +0 -425
- package/plugins/xtrm-tools/skills/creating-service-skills/references/service_skill_system_guide.md +0 -278
- package/plugins/xtrm-tools/skills/creating-service-skills/scripts/bootstrap.py +0 -326
- package/plugins/xtrm-tools/skills/creating-service-skills/scripts/deep_dive.py +0 -304
- package/plugins/xtrm-tools/skills/creating-service-skills/scripts/scaffolder.py +0 -482
- package/plugins/xtrm-tools/skills/delegating/SKILL.md +0 -196
- package/plugins/xtrm-tools/skills/delegating/config.yaml +0 -210
- package/plugins/xtrm-tools/skills/delegating/references/orchestration-protocols.md +0 -41
- package/plugins/xtrm-tools/skills/docker-expert/SKILL.md +0 -409
- package/plugins/xtrm-tools/skills/documenting/CHANGELOG.md +0 -23
- package/plugins/xtrm-tools/skills/documenting/README.md +0 -148
- package/plugins/xtrm-tools/skills/documenting/SKILL.md +0 -113
- package/plugins/xtrm-tools/skills/documenting/examples/example_pattern.md +0 -70
- package/plugins/xtrm-tools/skills/documenting/examples/example_reference.md +0 -70
- package/plugins/xtrm-tools/skills/documenting/examples/example_ssot_analytics.md +0 -64
- package/plugins/xtrm-tools/skills/documenting/examples/example_workflow.md +0 -141
- package/plugins/xtrm-tools/skills/documenting/references/changelog-format.md +0 -97
- package/plugins/xtrm-tools/skills/documenting/references/metadata-schema.md +0 -136
- package/plugins/xtrm-tools/skills/documenting/references/taxonomy.md +0 -81
- package/plugins/xtrm-tools/skills/documenting/references/versioning-rules.md +0 -78
- package/plugins/xtrm-tools/skills/documenting/scripts/bump_version.sh +0 -60
- package/plugins/xtrm-tools/skills/documenting/scripts/changelog/__init__.py +0 -0
- package/plugins/xtrm-tools/skills/documenting/scripts/changelog/add_entry.py +0 -216
- package/plugins/xtrm-tools/skills/documenting/scripts/changelog/bump_release.py +0 -117
- package/plugins/xtrm-tools/skills/documenting/scripts/changelog/init_changelog.py +0 -54
- package/plugins/xtrm-tools/skills/documenting/scripts/changelog/validate_changelog.py +0 -128
- package/plugins/xtrm-tools/skills/documenting/scripts/drift_detector.py +0 -266
- package/plugins/xtrm-tools/skills/documenting/scripts/generate_template.py +0 -311
- package/plugins/xtrm-tools/skills/documenting/scripts/list_by_category.sh +0 -84
- package/plugins/xtrm-tools/skills/documenting/scripts/orchestrator.py +0 -255
- package/plugins/xtrm-tools/skills/documenting/scripts/validate_metadata.py +0 -242
- package/plugins/xtrm-tools/skills/documenting/templates/CHANGELOG.md.template +0 -13
- package/plugins/xtrm-tools/skills/documenting/tests/integration_test.sh +0 -70
- package/plugins/xtrm-tools/skills/documenting/tests/test_changelog.py +0 -201
- package/plugins/xtrm-tools/skills/documenting/tests/test_drift_detector.py +0 -80
- package/plugins/xtrm-tools/skills/documenting/tests/test_orchestrator.py +0 -52
- package/plugins/xtrm-tools/skills/documenting/tests/test_validate_metadata.py +0 -64
- package/plugins/xtrm-tools/skills/find-skills/SKILL.md +0 -133
- package/plugins/xtrm-tools/skills/gitnexus-exploring/SKILL.md +0 -75
- package/plugins/xtrm-tools/skills/gitnexus-impact-analysis/SKILL.md +0 -94
- package/plugins/xtrm-tools/skills/gitnexus-refactoring/SKILL.md +0 -113
- package/plugins/xtrm-tools/skills/hook-development/SKILL.md +0 -797
- package/plugins/xtrm-tools/skills/hook-development/examples/load-context.sh +0 -55
- package/plugins/xtrm-tools/skills/hook-development/examples/quality-check.js +0 -1168
- package/plugins/xtrm-tools/skills/hook-development/examples/validate-bash.sh +0 -43
- package/plugins/xtrm-tools/skills/hook-development/examples/validate-write.sh +0 -38
- package/plugins/xtrm-tools/skills/hook-development/references/advanced.md +0 -527
- package/plugins/xtrm-tools/skills/hook-development/references/migration.md +0 -369
- package/plugins/xtrm-tools/skills/hook-development/references/patterns.md +0 -412
- package/plugins/xtrm-tools/skills/hook-development/scripts/README.md +0 -164
- package/plugins/xtrm-tools/skills/hook-development/scripts/hook-linter.sh +0 -153
- package/plugins/xtrm-tools/skills/hook-development/scripts/test-hook.sh +0 -252
- package/plugins/xtrm-tools/skills/hook-development/scripts/validate-hook-schema.sh +0 -159
- package/plugins/xtrm-tools/skills/obsidian-cli/SKILL.md +0 -106
- package/plugins/xtrm-tools/skills/orchestrating-agents/SKILL.md +0 -135
- package/plugins/xtrm-tools/skills/orchestrating-agents/config.yaml +0 -45
- package/plugins/xtrm-tools/skills/orchestrating-agents/references/agent-context-integration.md +0 -37
- package/plugins/xtrm-tools/skills/orchestrating-agents/references/examples.md +0 -45
- package/plugins/xtrm-tools/skills/orchestrating-agents/references/handover-protocol.md +0 -31
- package/plugins/xtrm-tools/skills/orchestrating-agents/references/workflows.md +0 -42
- package/plugins/xtrm-tools/skills/orchestrating-agents/scripts/detect_neighbors.py +0 -23
- package/plugins/xtrm-tools/skills/planning/SKILL.md +0 -405
- package/plugins/xtrm-tools/skills/planning/evals/evals.json +0 -19
- package/plugins/xtrm-tools/skills/prompt-improving/README.md +0 -162
- package/plugins/xtrm-tools/skills/prompt-improving/SKILL.md +0 -74
- package/plugins/xtrm-tools/skills/prompt-improving/references/analysis_commands.md +0 -24
- package/plugins/xtrm-tools/skills/prompt-improving/references/chain_of_thought.md +0 -24
- package/plugins/xtrm-tools/skills/prompt-improving/references/mcp_definitions.md +0 -20
- package/plugins/xtrm-tools/skills/prompt-improving/references/multishot.md +0 -23
- package/plugins/xtrm-tools/skills/prompt-improving/references/xml_core.md +0 -60
- package/plugins/xtrm-tools/skills/python-testing/SKILL.md +0 -815
- package/plugins/xtrm-tools/skills/scoping-service-skills/SKILL.md +0 -231
- package/plugins/xtrm-tools/skills/scoping-service-skills/scripts/scope.py +0 -74
- package/plugins/xtrm-tools/skills/senior-backend/SKILL.md +0 -209
- package/plugins/xtrm-tools/skills/senior-backend/references/api_design_patterns.md +0 -103
- package/plugins/xtrm-tools/skills/senior-backend/references/backend_security_practices.md +0 -103
- package/plugins/xtrm-tools/skills/senior-backend/references/database_optimization_guide.md +0 -103
- package/plugins/xtrm-tools/skills/senior-backend/scripts/api_load_tester.py +0 -114
- package/plugins/xtrm-tools/skills/senior-backend/scripts/api_scaffolder.py +0 -114
- package/plugins/xtrm-tools/skills/senior-backend/scripts/database_migration_tool.py +0 -114
- package/plugins/xtrm-tools/skills/senior-data-scientist/SKILL.md +0 -226
- package/plugins/xtrm-tools/skills/senior-data-scientist/references/experiment_design_frameworks.md +0 -80
- package/plugins/xtrm-tools/skills/senior-data-scientist/references/feature_engineering_patterns.md +0 -80
- package/plugins/xtrm-tools/skills/senior-data-scientist/references/statistical_methods_advanced.md +0 -80
- package/plugins/xtrm-tools/skills/senior-data-scientist/scripts/experiment_designer.py +0 -100
- package/plugins/xtrm-tools/skills/senior-data-scientist/scripts/feature_engineering_pipeline.py +0 -100
- package/plugins/xtrm-tools/skills/senior-data-scientist/scripts/model_evaluation_suite.py +0 -100
- package/plugins/xtrm-tools/skills/senior-devops/SKILL.md +0 -209
- package/plugins/xtrm-tools/skills/senior-devops/references/cicd_pipeline_guide.md +0 -103
- package/plugins/xtrm-tools/skills/senior-devops/references/deployment_strategies.md +0 -103
- package/plugins/xtrm-tools/skills/senior-devops/references/infrastructure_as_code.md +0 -103
- package/plugins/xtrm-tools/skills/senior-devops/scripts/deployment_manager.py +0 -114
- package/plugins/xtrm-tools/skills/senior-devops/scripts/pipeline_generator.py +0 -114
- package/plugins/xtrm-tools/skills/senior-devops/scripts/terraform_scaffolder.py +0 -114
- package/plugins/xtrm-tools/skills/senior-security/SKILL.md +0 -209
- package/plugins/xtrm-tools/skills/senior-security/references/cryptography_implementation.md +0 -103
- package/plugins/xtrm-tools/skills/senior-security/references/penetration_testing_guide.md +0 -103
- package/plugins/xtrm-tools/skills/senior-security/references/security_architecture_patterns.md +0 -103
- package/plugins/xtrm-tools/skills/senior-security/scripts/pentest_automator.py +0 -114
- package/plugins/xtrm-tools/skills/senior-security/scripts/security_auditor.py +0 -114
- package/plugins/xtrm-tools/skills/senior-security/scripts/threat_modeler.py +0 -114
- package/plugins/xtrm-tools/skills/skill-creator/LICENSE.txt +0 -202
- package/plugins/xtrm-tools/skills/skill-creator/SKILL.md +0 -479
- package/plugins/xtrm-tools/skills/skill-creator/agents/analyzer.md +0 -274
- package/plugins/xtrm-tools/skills/skill-creator/agents/comparator.md +0 -202
- package/plugins/xtrm-tools/skills/skill-creator/agents/grader.md +0 -223
- package/plugins/xtrm-tools/skills/skill-creator/assets/eval_review.html +0 -146
- package/plugins/xtrm-tools/skills/skill-creator/eval-viewer/generate_review.py +0 -471
- package/plugins/xtrm-tools/skills/skill-creator/eval-viewer/viewer.html +0 -1325
- package/plugins/xtrm-tools/skills/skill-creator/references/schemas.md +0 -430
- package/plugins/xtrm-tools/skills/skill-creator/scripts/__init__.py +0 -0
- package/plugins/xtrm-tools/skills/skill-creator/scripts/aggregate_benchmark.py +0 -401
- package/plugins/xtrm-tools/skills/skill-creator/scripts/generate_report.py +0 -326
- package/plugins/xtrm-tools/skills/skill-creator/scripts/improve_description.py +0 -248
- package/plugins/xtrm-tools/skills/skill-creator/scripts/package_skill.py +0 -136
- package/plugins/xtrm-tools/skills/skill-creator/scripts/quick_validate.py +0 -103
- package/plugins/xtrm-tools/skills/skill-creator/scripts/run_eval.py +0 -310
- package/plugins/xtrm-tools/skills/skill-creator/scripts/run_loop.py +0 -332
- package/plugins/xtrm-tools/skills/skill-creator/scripts/utils.py +0 -47
- package/plugins/xtrm-tools/skills/sync-docs/SKILL.md +0 -286
- package/plugins/xtrm-tools/skills/sync-docs/evals/evals.json +0 -89
- package/plugins/xtrm-tools/skills/sync-docs/references/doc-structure.md +0 -99
- package/plugins/xtrm-tools/skills/sync-docs/references/schema.md +0 -103
- package/plugins/xtrm-tools/skills/sync-docs/scripts/changelog/add_entry.py +0 -216
- package/plugins/xtrm-tools/skills/sync-docs/scripts/context_gatherer.py +0 -240
- package/plugins/xtrm-tools/skills/sync-docs/scripts/doc_structure_analyzer.py +0 -495
- package/plugins/xtrm-tools/skills/sync-docs/scripts/drift_detector.py +0 -563
- package/plugins/xtrm-tools/skills/sync-docs/scripts/validate_doc.py +0 -365
- package/plugins/xtrm-tools/skills/sync-docs/scripts/validate_metadata.py +0 -185
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/benchmark.json +0 -293
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/benchmark.md +0 -13
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/eval_metadata.json +0 -27
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/outputs/result.md +0 -210
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/run-1/grading.json +0 -28
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/run-1/timing.json +0 -1
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/outputs/result.md +0 -101
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/run-1/grading.json +0 -28
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/run-1/timing.json +0 -5
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/timing.json +0 -5
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-fix-mode/eval_metadata.json +0 -27
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/outputs/result.md +0 -198
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/run-1/grading.json +0 -28
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/run-1/timing.json +0 -1
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/outputs/result.md +0 -94
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/run-1/grading.json +0 -28
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/run-1/timing.json +0 -1
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/eval_metadata.json +0 -27
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/outputs/result.md +0 -237
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/run-1/grading.json +0 -28
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/run-1/timing.json +0 -1
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/outputs/result.md +0 -134
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/run-1/grading.json +0 -28
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/run-1/timing.json +0 -1
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/benchmark.json +0 -297
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/benchmark.md +0 -13
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-doc-audit/eval_metadata.json +0 -27
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/outputs/result.md +0 -137
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/run-1/grading.json +0 -92
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/run-1/timing.json +0 -1
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/outputs/result.md +0 -134
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/run-1/grading.json +0 -86
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/run-1/timing.json +0 -1
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-fix-mode/eval_metadata.json +0 -27
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/outputs/result.md +0 -193
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/run-1/grading.json +0 -72
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/run-1/timing.json +0 -1
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/outputs/result.md +0 -211
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/run-1/grading.json +0 -91
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/run-1/timing.json +0 -5
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/eval_metadata.json +0 -27
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/outputs/result.md +0 -182
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/run-1/grading.json +0 -95
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/run-1/timing.json +0 -1
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/outputs/result.md +0 -222
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/run-1/grading.json +0 -88
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/run-1/timing.json +0 -5
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/benchmark.json +0 -298
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/benchmark.md +0 -13
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-doc-audit/eval_metadata.json +0 -27
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/outputs/result.md +0 -125
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/run-1/grading.json +0 -97
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/run-1/timing.json +0 -5
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/outputs/result.md +0 -144
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/run-1/grading.json +0 -78
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/run-1/timing.json +0 -5
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-fix-mode/eval_metadata.json +0 -27
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/outputs/result.md +0 -104
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/run-1/grading.json +0 -91
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/run-1/timing.json +0 -5
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/outputs/result.md +0 -79
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/run-1/grading.json +0 -82
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/run-1/timing.json +0 -5
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/eval_metadata.json +0 -27
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase1_context.json +0 -302
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase2_drift.txt +0 -33
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase3_analysis.json +0 -114
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase4_fix.txt +0 -118
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase5_validate.txt +0 -38
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/result.md +0 -158
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/run-1/grading.json +0 -95
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/run-1/timing.json +0 -5
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/outputs/result.md +0 -71
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/run-1/grading.json +0 -90
- package/plugins/xtrm-tools/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/run-1/timing.json +0 -5
- package/plugins/xtrm-tools/skills/test-planning/SKILL.md +0 -465
- package/plugins/xtrm-tools/skills/test-planning/evals/evals.json +0 -23
- package/plugins/xtrm-tools/skills/updating-service-skills/SKILL.md +0 -136
- package/plugins/xtrm-tools/skills/updating-service-skills/scripts/drift_detector.py +0 -222
- package/plugins/xtrm-tools/skills/using-quality-gates/SKILL.md +0 -254
- package/plugins/xtrm-tools/skills/using-serena-lsp/README.md +0 -8
- package/plugins/xtrm-tools/skills/using-serena-lsp/REFERENCE.md +0 -194
- package/plugins/xtrm-tools/skills/using-serena-lsp/SKILL.md +0 -82
- package/plugins/xtrm-tools/skills/using-service-skills/SKILL.md +0 -108
- package/plugins/xtrm-tools/skills/using-service-skills/scripts/cataloger.py +0 -74
- package/plugins/xtrm-tools/skills/using-service-skills/scripts/skill_activator.py +0 -152
- package/plugins/xtrm-tools/skills/using-service-skills/scripts/test_skill_activator.py +0 -58
- package/plugins/xtrm-tools/skills/using-tdd/SKILL.md +0 -410
- package/plugins/xtrm-tools/skills/using-xtrm/SKILL.md +0 -127
- package/plugins/xtrm-tools/skills/xt-debugging/SKILL.md +0 -149
- package/plugins/xtrm-tools/skills/xt-end/SKILL.md +0 -297
- package/plugins/xtrm-tools/skills/xt-merge/SKILL.md +0 -313
- package/project-skills/quality-gates/.claude/hooks/hook-config.json +0 -66
- package/project-skills/quality-gates/.claude/hooks/quality-check.cjs +0 -1286
- package/project-skills/quality-gates/.claude/hooks/quality-check.py +0 -334
- package/project-skills/quality-gates/.claude/settings.json +0 -3
- package/project-skills/quality-gates/.claude/skills/using-quality-gates/SKILL.md +0 -254
- package/project-skills/quality-gates/README.md +0 -109
- package/project-skills/quality-gates/evals/evals.json +0 -181
- package/project-skills/quality-gates/workspace/iteration-1/FINAL-EVAL-SUMMARY.md +0 -75
- package/project-skills/quality-gates/workspace/iteration-1/edge-case-auto-fix-verification/with_skill/outputs/response.md +0 -59
- package/project-skills/quality-gates/workspace/iteration-1/edge-case-mixed-language-project/with_skill/outputs/response.md +0 -60
- package/project-skills/quality-gates/workspace/iteration-1/eval-summary.md +0 -105
- package/project-skills/quality-gates/workspace/iteration-1/partial-install-python-only/with_skill/outputs/response.md +0 -93
- package/project-skills/quality-gates/workspace/iteration-1/python-refactor-request/with_skill/outputs/response.md +0 -104
- package/project-skills/quality-gates/workspace/iteration-1/quality-gate-error-fix/with_skill/outputs/response.md +0 -74
- package/project-skills/quality-gates/workspace/iteration-1/should-not-trigger-general-chat/with_skill/outputs/response.md +0 -18
- package/project-skills/quality-gates/workspace/iteration-1/should-not-trigger-math-question/with_skill/outputs/response.md +0 -18
- package/project-skills/quality-gates/workspace/iteration-1/should-not-trigger-unrelated-coding/with_skill/outputs/response.md +0 -56
- package/project-skills/quality-gates/workspace/iteration-1/tdd-guard-blocking-confusion/with_skill/outputs/response.md +0 -67
- package/project-skills/quality-gates/workspace/iteration-1/typescript-feature-with-tests/with_skill/outputs/response.md +0 -97
- package/project-skills/service-skills-set/.claude/git-hooks/doc_reminder.py +0 -67
- package/project-skills/service-skills-set/.claude/git-hooks/skill_staleness.py +0 -194
- package/project-skills/service-skills-set/.claude/service-registry.json +0 -4
- package/project-skills/service-skills-set/.claude/settings.json +0 -37
- package/project-skills/service-skills-set/.claude/skills/creating-service-skills/SKILL.md +0 -433
- package/project-skills/service-skills-set/.claude/skills/creating-service-skills/references/script_quality_standards.md +0 -425
- package/project-skills/service-skills-set/.claude/skills/creating-service-skills/references/service_skill_system_guide.md +0 -278
- package/project-skills/service-skills-set/.claude/skills/creating-service-skills/scripts/bootstrap.py +0 -308
- package/project-skills/service-skills-set/.claude/skills/creating-service-skills/scripts/deep_dive.py +0 -304
- package/project-skills/service-skills-set/.claude/skills/creating-service-skills/scripts/scaffolder.py +0 -482
- package/project-skills/service-skills-set/.claude/skills/scoping-service-skills/SKILL.md +0 -231
- package/project-skills/service-skills-set/.claude/skills/scoping-service-skills/scripts/scope.py +0 -74
- package/project-skills/service-skills-set/.claude/skills/updating-service-skills/SKILL.md +0 -136
- package/project-skills/service-skills-set/.claude/skills/updating-service-skills/scripts/drift_detector.py +0 -222
- package/project-skills/service-skills-set/.claude/skills/using-service-skills/SKILL.md +0 -108
- package/project-skills/service-skills-set/.claude/skills/using-service-skills/scripts/cataloger.py +0 -74
- package/project-skills/service-skills-set/.claude/skills/using-service-skills/scripts/skill_activator.py +0 -152
- package/project-skills/service-skills-set/README.md +0 -93
- package/project-skills/service-skills-set/install-service-skills.py +0 -193
- package/project-skills/service-skills-set/service-skills-readme.md +0 -236
- package/skills/README.txt +0 -31
- package/skills/clean-code/SKILL.md +0 -201
- package/skills/creating-service-skills/SKILL.md +0 -433
- package/skills/creating-service-skills/references/script_quality_standards.md +0 -425
- package/skills/creating-service-skills/references/service_skill_system_guide.md +0 -278
- package/skills/creating-service-skills/scripts/bootstrap.py +0 -326
- package/skills/creating-service-skills/scripts/deep_dive.py +0 -304
- package/skills/creating-service-skills/scripts/scaffolder.py +0 -482
- package/skills/delegating/SKILL.md +0 -196
- package/skills/delegating/config.yaml +0 -210
- package/skills/delegating/references/orchestration-protocols.md +0 -41
- package/skills/docker-expert/SKILL.md +0 -409
- package/skills/documenting/CHANGELOG.md +0 -23
- package/skills/documenting/README.md +0 -148
- package/skills/documenting/SKILL.md +0 -113
- package/skills/documenting/examples/example_pattern.md +0 -70
- package/skills/documenting/examples/example_reference.md +0 -70
- package/skills/documenting/examples/example_ssot_analytics.md +0 -64
- package/skills/documenting/examples/example_workflow.md +0 -141
- package/skills/documenting/references/changelog-format.md +0 -97
- package/skills/documenting/references/metadata-schema.md +0 -136
- package/skills/documenting/references/taxonomy.md +0 -81
- package/skills/documenting/references/versioning-rules.md +0 -78
- package/skills/documenting/scripts/bump_version.sh +0 -60
- package/skills/documenting/scripts/changelog/__init__.py +0 -0
- package/skills/documenting/scripts/changelog/add_entry.py +0 -216
- package/skills/documenting/scripts/changelog/bump_release.py +0 -117
- package/skills/documenting/scripts/changelog/init_changelog.py +0 -54
- package/skills/documenting/scripts/changelog/validate_changelog.py +0 -128
- package/skills/documenting/scripts/drift_detector.py +0 -266
- package/skills/documenting/scripts/generate_template.py +0 -311
- package/skills/documenting/scripts/list_by_category.sh +0 -84
- package/skills/documenting/scripts/orchestrator.py +0 -255
- package/skills/documenting/scripts/validate_metadata.py +0 -242
- package/skills/documenting/templates/CHANGELOG.md.template +0 -13
- package/skills/find-skills/SKILL.md +0 -133
- package/skills/gitnexus-exploring/SKILL.md +0 -75
- package/skills/gitnexus-impact-analysis/SKILL.md +0 -94
- package/skills/gitnexus-refactoring/SKILL.md +0 -113
- package/skills/hook-development/SKILL.md +0 -797
- package/skills/hook-development/examples/load-context.sh +0 -55
- package/skills/hook-development/examples/quality-check.js +0 -1168
- package/skills/hook-development/examples/validate-bash.sh +0 -43
- package/skills/hook-development/examples/validate-write.sh +0 -38
- package/skills/hook-development/references/advanced.md +0 -527
- package/skills/hook-development/references/migration.md +0 -369
- package/skills/hook-development/references/patterns.md +0 -412
- package/skills/hook-development/scripts/README.md +0 -164
- package/skills/hook-development/scripts/hook-linter.sh +0 -153
- package/skills/hook-development/scripts/test-hook.sh +0 -252
- package/skills/hook-development/scripts/validate-hook-schema.sh +0 -159
- package/skills/obsidian-cli/SKILL.md +0 -106
- package/skills/orchestrating-agents/SKILL.md +0 -135
- package/skills/orchestrating-agents/config.yaml +0 -45
- package/skills/orchestrating-agents/references/agent-context-integration.md +0 -37
- package/skills/orchestrating-agents/references/examples.md +0 -45
- package/skills/orchestrating-agents/references/handover-protocol.md +0 -31
- package/skills/orchestrating-agents/references/workflows.md +0 -42
- package/skills/orchestrating-agents/scripts/detect_neighbors.py +0 -23
- package/skills/planning/SKILL.md +0 -405
- package/skills/planning/evals/evals.json +0 -19
- package/skills/prompt-improving/README.md +0 -162
- package/skills/prompt-improving/SKILL.md +0 -74
- package/skills/prompt-improving/references/analysis_commands.md +0 -24
- package/skills/prompt-improving/references/chain_of_thought.md +0 -24
- package/skills/prompt-improving/references/mcp_definitions.md +0 -20
- package/skills/prompt-improving/references/multishot.md +0 -23
- package/skills/prompt-improving/references/xml_core.md +0 -60
- package/skills/python-testing/SKILL.md +0 -815
- package/skills/scoping-service-skills/SKILL.md +0 -231
- package/skills/scoping-service-skills/scripts/scope.py +0 -74
- package/skills/senior-backend/SKILL.md +0 -209
- package/skills/senior-backend/references/api_design_patterns.md +0 -103
- package/skills/senior-backend/references/backend_security_practices.md +0 -103
- package/skills/senior-backend/references/database_optimization_guide.md +0 -103
- package/skills/senior-backend/scripts/api_load_tester.py +0 -114
- package/skills/senior-backend/scripts/api_scaffolder.py +0 -114
- package/skills/senior-backend/scripts/database_migration_tool.py +0 -114
- package/skills/senior-data-scientist/SKILL.md +0 -226
- package/skills/senior-data-scientist/references/experiment_design_frameworks.md +0 -80
- package/skills/senior-data-scientist/references/feature_engineering_patterns.md +0 -80
- package/skills/senior-data-scientist/references/statistical_methods_advanced.md +0 -80
- package/skills/senior-data-scientist/scripts/experiment_designer.py +0 -100
- package/skills/senior-data-scientist/scripts/feature_engineering_pipeline.py +0 -100
- package/skills/senior-data-scientist/scripts/model_evaluation_suite.py +0 -100
- package/skills/senior-devops/SKILL.md +0 -209
- package/skills/senior-devops/references/cicd_pipeline_guide.md +0 -103
- package/skills/senior-devops/references/deployment_strategies.md +0 -103
- package/skills/senior-devops/references/infrastructure_as_code.md +0 -103
- package/skills/senior-devops/scripts/deployment_manager.py +0 -114
- package/skills/senior-devops/scripts/pipeline_generator.py +0 -114
- package/skills/senior-devops/scripts/terraform_scaffolder.py +0 -114
- package/skills/senior-security/SKILL.md +0 -209
- package/skills/senior-security/references/cryptography_implementation.md +0 -103
- package/skills/senior-security/references/penetration_testing_guide.md +0 -103
- package/skills/senior-security/references/security_architecture_patterns.md +0 -103
- package/skills/senior-security/scripts/pentest_automator.py +0 -114
- package/skills/senior-security/scripts/security_auditor.py +0 -114
- package/skills/senior-security/scripts/threat_modeler.py +0 -114
- package/skills/skill-creator/LICENSE.txt +0 -202
- package/skills/skill-creator/SKILL.md +0 -479
- package/skills/skill-creator/agents/analyzer.md +0 -274
- package/skills/skill-creator/agents/comparator.md +0 -202
- package/skills/skill-creator/agents/grader.md +0 -223
- package/skills/skill-creator/assets/eval_review.html +0 -146
- package/skills/skill-creator/eval-viewer/generate_review.py +0 -471
- package/skills/skill-creator/eval-viewer/viewer.html +0 -1325
- package/skills/skill-creator/references/schemas.md +0 -430
- package/skills/skill-creator/scripts/__init__.py +0 -0
- package/skills/skill-creator/scripts/aggregate_benchmark.py +0 -401
- package/skills/skill-creator/scripts/generate_report.py +0 -326
- package/skills/skill-creator/scripts/improve_description.py +0 -248
- package/skills/skill-creator/scripts/package_skill.py +0 -136
- package/skills/skill-creator/scripts/quick_validate.py +0 -103
- package/skills/skill-creator/scripts/run_eval.py +0 -310
- package/skills/skill-creator/scripts/run_loop.py +0 -332
- package/skills/skill-creator/scripts/utils.py +0 -47
- package/skills/sync-docs/SKILL.md +0 -286
- package/skills/sync-docs/evals/evals.json +0 -89
- package/skills/sync-docs/references/doc-structure.md +0 -99
- package/skills/sync-docs/references/schema.md +0 -103
- package/skills/sync-docs/scripts/changelog/add_entry.py +0 -216
- package/skills/sync-docs/scripts/context_gatherer.py +0 -240
- package/skills/sync-docs/scripts/doc_structure_analyzer.py +0 -495
- package/skills/sync-docs/scripts/drift_detector.py +0 -563
- package/skills/sync-docs/scripts/validate_doc.py +0 -365
- package/skills/sync-docs/scripts/validate_metadata.py +0 -185
- package/skills/sync-docs-workspace/iteration-1/benchmark.json +0 -293
- package/skills/sync-docs-workspace/iteration-1/benchmark.md +0 -13
- package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/eval_metadata.json +0 -27
- package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/outputs/result.md +0 -210
- package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/run-1/grading.json +0 -28
- package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/run-1/timing.json +0 -1
- package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/outputs/result.md +0 -101
- package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/run-1/grading.json +0 -28
- package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/run-1/timing.json +0 -5
- package/skills/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/timing.json +0 -5
- package/skills/sync-docs-workspace/iteration-1/eval-fix-mode/eval_metadata.json +0 -27
- package/skills/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/outputs/result.md +0 -198
- package/skills/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/run-1/grading.json +0 -28
- package/skills/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/run-1/timing.json +0 -1
- package/skills/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/outputs/result.md +0 -94
- package/skills/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/run-1/grading.json +0 -28
- package/skills/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/run-1/timing.json +0 -1
- package/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/eval_metadata.json +0 -27
- package/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/outputs/result.md +0 -237
- package/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/run-1/grading.json +0 -28
- package/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/run-1/timing.json +0 -1
- package/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/outputs/result.md +0 -134
- package/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/run-1/grading.json +0 -28
- package/skills/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/run-1/timing.json +0 -1
- package/skills/sync-docs-workspace/iteration-2/benchmark.json +0 -297
- package/skills/sync-docs-workspace/iteration-2/benchmark.md +0 -13
- package/skills/sync-docs-workspace/iteration-2/eval-doc-audit/eval_metadata.json +0 -27
- package/skills/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/outputs/result.md +0 -137
- package/skills/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/run-1/grading.json +0 -92
- package/skills/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/run-1/timing.json +0 -1
- package/skills/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/outputs/result.md +0 -134
- package/skills/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/run-1/grading.json +0 -86
- package/skills/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/run-1/timing.json +0 -1
- package/skills/sync-docs-workspace/iteration-2/eval-fix-mode/eval_metadata.json +0 -27
- package/skills/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/outputs/result.md +0 -193
- package/skills/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/run-1/grading.json +0 -72
- package/skills/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/run-1/timing.json +0 -1
- package/skills/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/outputs/result.md +0 -211
- package/skills/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/run-1/grading.json +0 -91
- package/skills/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/run-1/timing.json +0 -5
- package/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/eval_metadata.json +0 -27
- package/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/outputs/result.md +0 -182
- package/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/run-1/grading.json +0 -95
- package/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/run-1/timing.json +0 -1
- package/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/outputs/result.md +0 -222
- package/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/run-1/grading.json +0 -88
- package/skills/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/run-1/timing.json +0 -5
- package/skills/sync-docs-workspace/iteration-3/benchmark.json +0 -298
- package/skills/sync-docs-workspace/iteration-3/benchmark.md +0 -13
- package/skills/sync-docs-workspace/iteration-3/eval-doc-audit/eval_metadata.json +0 -27
- package/skills/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/outputs/result.md +0 -125
- package/skills/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/run-1/grading.json +0 -97
- package/skills/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/run-1/timing.json +0 -5
- package/skills/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/outputs/result.md +0 -144
- package/skills/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/run-1/grading.json +0 -78
- package/skills/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/run-1/timing.json +0 -5
- package/skills/sync-docs-workspace/iteration-3/eval-fix-mode/eval_metadata.json +0 -27
- package/skills/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/outputs/result.md +0 -104
- package/skills/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/run-1/grading.json +0 -91
- package/skills/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/run-1/timing.json +0 -5
- package/skills/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/outputs/result.md +0 -79
- package/skills/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/run-1/grading.json +0 -82
- package/skills/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/run-1/timing.json +0 -5
- package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/eval_metadata.json +0 -27
- package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase1_context.json +0 -302
- package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase2_drift.txt +0 -33
- package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase3_analysis.json +0 -114
- package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase4_fix.txt +0 -118
- package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase5_validate.txt +0 -38
- package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/result.md +0 -158
- package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/run-1/grading.json +0 -95
- package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/run-1/timing.json +0 -5
- package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/outputs/result.md +0 -71
- package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/run-1/grading.json +0 -90
- package/skills/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/run-1/timing.json +0 -5
- package/skills/test-planning/SKILL.md +0 -465
- package/skills/test-planning/evals/evals.json +0 -23
- package/skills/updating-service-skills/SKILL.md +0 -136
- package/skills/updating-service-skills/scripts/drift_detector.py +0 -222
- package/skills/using-quality-gates/SKILL.md +0 -254
- package/skills/using-serena-lsp/README.md +0 -8
- package/skills/using-serena-lsp/REFERENCE.md +0 -194
- package/skills/using-serena-lsp/SKILL.md +0 -82
- package/skills/using-service-skills/SKILL.md +0 -108
- package/skills/using-service-skills/scripts/cataloger.py +0 -74
- package/skills/using-service-skills/scripts/skill_activator.py +0 -152
- package/skills/using-service-skills/scripts/test_skill_activator.py +0 -58
- package/skills/using-tdd/SKILL.md +0 -410
- package/skills/using-xtrm/SKILL.md +0 -127
- package/skills/xt-debugging/SKILL.md +0 -149
- package/skills/xt-end/SKILL.md +0 -297
- package/skills/xt-merge/SKILL.md +0 -313
- /package/{config → .xtrm/config}/.env.example +0 -0
- /package/{config/mcp_servers_optional.json → .xtrm/config/claude.mcp.optional.json} +0 -0
- /package/{hooks → .xtrm/config}/hooks.json +0 -0
- /package/{config → .xtrm/config}/pi/auth.json.template +0 -0
- /package/{config → .xtrm/config}/pi/extensions/auto-session-name/index.ts +0 -0
- /package/{config → .xtrm/config}/pi/extensions/auto-session-name/package.json +0 -0
- /package/{config → .xtrm/config}/pi/extensions/auto-update/index.ts +0 -0
- /package/{config → .xtrm/config}/pi/extensions/auto-update/package.json +0 -0
- /package/{config → .xtrm/config}/pi/extensions/beads/package.json +0 -0
- /package/{config → .xtrm/config}/pi/extensions/compact-header/index.ts +0 -0
- /package/{config → .xtrm/config}/pi/extensions/compact-header/package.json +0 -0
- /package/{config → .xtrm/config}/pi/extensions/core/adapter.ts +0 -0
- /package/{config → .xtrm/config}/pi/extensions/core/guard-rules.ts +0 -0
- /package/{config → .xtrm/config}/pi/extensions/core/lib.ts +0 -0
- /package/{config → .xtrm/config}/pi/extensions/core/logger.ts +0 -0
- /package/{config → .xtrm/config}/pi/extensions/core/package.json +0 -0
- /package/{config → .xtrm/config}/pi/extensions/core/runner.ts +0 -0
- /package/{config → .xtrm/config}/pi/extensions/core/session-state.ts +0 -0
- /package/{config → .xtrm/config}/pi/extensions/custom-footer/package.json +0 -0
- /package/{config → .xtrm/config}/pi/extensions/custom-provider-qwen-cli/index.ts +0 -0
- /package/{config → .xtrm/config}/pi/extensions/custom-provider-qwen-cli/package.json +0 -0
- /package/{config → .xtrm/config}/pi/extensions/git-checkpoint/index.ts +0 -0
- /package/{config → .xtrm/config}/pi/extensions/git-checkpoint/package.json +0 -0
- /package/{config → .xtrm/config}/pi/extensions/lsp-bootstrap/index.ts +0 -0
- /package/{config → .xtrm/config}/pi/extensions/lsp-bootstrap/package.json +0 -0
- /package/{config → .xtrm/config}/pi/extensions/pi-serena-compact/index.ts +0 -0
- /package/{config → .xtrm/config}/pi/extensions/pi-serena-compact/package.json +0 -0
- /package/{config → .xtrm/config}/pi/extensions/quality-gates/index.ts +0 -0
- /package/{config → .xtrm/config}/pi/extensions/quality-gates/package.json +0 -0
- /package/{config → .xtrm/config}/pi/extensions/service-skills/index.ts +0 -0
- /package/{config → .xtrm/config}/pi/extensions/service-skills/package.json +0 -0
- /package/{config → .xtrm/config}/pi/extensions/session-flow/index.ts +0 -0
- /package/{config → .xtrm/config}/pi/extensions/session-flow/package.json +0 -0
- /package/{config → .xtrm/config}/pi/extensions/xtrm-loader/index.ts +0 -0
- /package/{config → .xtrm/config}/pi/extensions/xtrm-loader/package.json +0 -0
- /package/{config → .xtrm/config}/pi/extensions/xtrm-ui/format.ts +0 -0
- /package/{config → .xtrm/config}/pi/extensions/xtrm-ui/package.json +0 -0
- /package/{config → .xtrm/config}/pi/extensions/xtrm-ui/themes/pidex-dark.json +0 -0
- /package/{config → .xtrm/config}/pi/extensions/xtrm-ui/themes/pidex-light.json +0 -0
- /package/{config → .xtrm/config}/pi/models.json.template +0 -0
- /package/{config → .xtrm/config}/pi/pi-worktrees-settings.json +0 -0
- /package/{config → .xtrm/config}/pi/settings.json.template +0 -0
- /package/{hooks → .xtrm/hooks}/beads-claim-sync.mjs +0 -0
- /package/{hooks → .xtrm/hooks}/beads-compact-restore.mjs +0 -0
- /package/{hooks → .xtrm/hooks}/beads-compact-save.mjs +0 -0
- /package/{hooks → .xtrm/hooks}/beads-edit-gate.mjs +0 -0
- /package/{hooks → .xtrm/hooks}/beads-gate-core.mjs +0 -0
- /package/{hooks → .xtrm/hooks}/beads-gate-messages.mjs +0 -0
- /package/{hooks → .xtrm/hooks}/beads-gate-utils.mjs +0 -0
- /package/{hooks → .xtrm/hooks}/beads-stop-gate.mjs +0 -0
- /package/{hooks → .xtrm/hooks}/gitnexus/gitnexus-hook.cjs +0 -0
- /package/{hooks → .xtrm/hooks}/quality-check.cjs +0 -0
- /package/{hooks → .xtrm/hooks}/quality-check.py +0 -0
- /package/{hooks → .xtrm/hooks}/worktree-boundary.mjs +0 -0
- /package/{hooks → .xtrm/hooks}/xtrm-logger.mjs +0 -0
- /package/{hooks → .xtrm/hooks}/xtrm-session-logger.mjs +0 -0
- /package/{hooks → .xtrm/hooks}/xtrm-tool-logger.mjs +0 -0
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
# Eval 3: quality-gate-error-fix
|
|
2
|
-
|
|
3
|
-
**Prompt:** I'm getting blocked by the quality gate with TypeScript errors. Here's the error: 'Type string is not assignable to type number'. How do I fix this?
|
|
4
|
-
|
|
5
|
-
**Skill Applied:** using-quality-gates
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Response (with skill active)
|
|
10
|
-
|
|
11
|
-
You're encountering a **blocking error** from the TypeScript Quality Gate (exit code 2). Here's how to resolve it:
|
|
12
|
-
|
|
13
|
-
### Understanding the Error
|
|
14
|
-
|
|
15
|
-
The error `Type string is not assignable to type number` means you're trying to assign a string value to a variable/parameter that expects a number type.
|
|
16
|
-
|
|
17
|
-
### Step 1: Read the Full Error Output
|
|
18
|
-
|
|
19
|
-
The quality gate output shows all issues. Example:
|
|
20
|
-
```
|
|
21
|
-
[ERROR] TypeScript compilation failed:
|
|
22
|
-
src/user.ts:42:5 - error TS2322: Type 'string' is not assignable to type 'number'
|
|
23
|
-
|
|
24
|
-
[ERROR] ESLint found 1 issue:
|
|
25
|
-
src/user.ts:15:10 - 'unusedVar' is defined but never used
|
|
26
|
-
|
|
27
|
-
[WARN] Auto-fix applied: 1 issue fixed
|
|
28
|
-
[BLOCK] 2 issues remain - fix before continuing
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### Step 2: Fix Type Errors (Manual)
|
|
32
|
-
|
|
33
|
-
Type errors **cannot be auto-fixed** - you must fix them manually:
|
|
34
|
-
|
|
35
|
-
```typescript
|
|
36
|
-
// ❌ Wrong - assigning string to number
|
|
37
|
-
const userId: number = "123";
|
|
38
|
-
|
|
39
|
-
// ✅ Fix - convert string to number
|
|
40
|
-
const userId: number = parseInt("123", 10);
|
|
41
|
-
// or
|
|
42
|
-
const userId: number = Number("123");
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
Common fixes:
|
|
46
|
-
- Use `parseInt()` or `Number()` for string→number conversion
|
|
47
|
-
- Check function return types match declarations
|
|
48
|
-
- Verify API response types match your interfaces
|
|
49
|
-
|
|
50
|
-
### Step 3: Auto-Fix Handles Linting/Formatting
|
|
51
|
-
|
|
52
|
-
ESLint and Prettier issues are **auto-fixed** when enabled. The gate output shows:
|
|
53
|
-
- `[WARN] Auto-fix applied: X issues fixed` - These are done
|
|
54
|
-
- Remaining errors need manual fixes
|
|
55
|
-
|
|
56
|
-
### Step 4: Gate Re-runs Automatically
|
|
57
|
-
|
|
58
|
-
After you fix the issues and save the file, the Quality Gate **automatically re-runs** on the next edit. No manual trigger needed.
|
|
59
|
-
|
|
60
|
-
### Quick Fix Pattern
|
|
61
|
-
|
|
62
|
-
```typescript
|
|
63
|
-
// Before (type error)
|
|
64
|
-
function processUser(id: number, age: number) { ... }
|
|
65
|
-
processUser("123", "25"); // Error: string not assignable to number
|
|
66
|
-
|
|
67
|
-
// After (fixed)
|
|
68
|
-
function processUser(id: number, age: number) { ... }
|
|
69
|
-
processUser(Number("123"), Number("25")); // ✅
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
**Tip:** If you see many type errors, fix them one at a time. The gate re-runs after each edit, giving you incremental feedback.
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# Eval 11: should-not-trigger-general-chat
|
|
2
|
-
|
|
3
|
-
**Prompt:** What's the weather like today?
|
|
4
|
-
|
|
5
|
-
**Skill Applied:** using-quality-gates (should NOT trigger)
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Response
|
|
10
|
-
|
|
11
|
-
**Skill did NOT trigger** — This is general chat, not a code quality workflow question.
|
|
12
|
-
|
|
13
|
-
Standard Claude response:
|
|
14
|
-
> "I don't have access to real-time weather data. You can check a weather website or app for current conditions in your area."
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
**Result:** ✅ Correct — skill appropriately did not activate
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# Eval 13: should-not-trigger-math-question
|
|
2
|
-
|
|
3
|
-
**Prompt:** What's the time complexity of binary search?
|
|
4
|
-
|
|
5
|
-
**Skill Applied:** using-quality-gates (should NOT trigger)
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Response
|
|
10
|
-
|
|
11
|
-
**Skill did NOT trigger** — This is a CS theory question, not about quality gates.
|
|
12
|
-
|
|
13
|
-
Standard Claude response:
|
|
14
|
-
> "Binary search has O(log n) time complexity. It works by repeatedly dividing the search interval in half..."
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
**Result:** ✅ Correct — skill appropriately did not activate
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
# Eval 12: should-not-trigger-unrelated-coding (Re-run with Minimal Mode)
|
|
2
|
-
|
|
3
|
-
**Prompt:** Write a Python script to scrape data from example.com and save it to CSV.
|
|
4
|
-
|
|
5
|
-
**Skill Applied:** using-quality-gates (Minimal Mode)
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Response
|
|
10
|
-
|
|
11
|
-
Here's a Python script to scrape data from example.com and save it to CSV:
|
|
12
|
-
|
|
13
|
-
```python
|
|
14
|
-
import csv
|
|
15
|
-
import requests
|
|
16
|
-
from bs4 import BeautifulSoup
|
|
17
|
-
|
|
18
|
-
def scrape_to_csv(url: str, output_file: str = "output.csv"):
|
|
19
|
-
"""Scrape data from a webpage and save to CSV."""
|
|
20
|
-
response = requests.get(url)
|
|
21
|
-
response.raise_for_status()
|
|
22
|
-
|
|
23
|
-
soup = BeautifulSoup(response.text, 'html.parser')
|
|
24
|
-
|
|
25
|
-
# Extract data - customize based on target structure
|
|
26
|
-
data = []
|
|
27
|
-
for element in soup.find_all('p'): # Example: extract all paragraphs
|
|
28
|
-
text = element.get_text(strip=True)
|
|
29
|
-
if text:
|
|
30
|
-
data.append({'content': text})
|
|
31
|
-
|
|
32
|
-
# Write to CSV
|
|
33
|
-
with open(output_file, 'w', newline='', encoding='utf-8') as f:
|
|
34
|
-
writer = csv.DictWriter(f, fieldnames=['content'])
|
|
35
|
-
writer.writeheader()
|
|
36
|
-
writer.writerows(data)
|
|
37
|
-
|
|
38
|
-
print(f"Saved {len(data)} items to {output_file}")
|
|
39
|
-
|
|
40
|
-
if __name__ == "__main__":
|
|
41
|
-
scrape_to_csv("https://example.com")
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
**Usage:**
|
|
45
|
-
```bash
|
|
46
|
-
pip install requests beautifulsoup4
|
|
47
|
-
python scrape.py
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
**Note:** Consider adding tests for this script. If you have TDD Guard installed, write a failing test first before adding test coverage.
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
**Result:** ✅ Minimal mode applied — Task completed directly, brief TDD mention at end, no full workflow explanation
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
# Eval 5: tdd-guard-blocking-confusion
|
|
2
|
-
|
|
3
|
-
**Prompt:** Why am I getting 'No failing test found' when I try to edit src/service.ts? I just want to add a logging statement.
|
|
4
|
-
|
|
5
|
-
**Skill Applied:** using-quality-gates
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Response (with skill active)
|
|
10
|
-
|
|
11
|
-
You're encountering the **TDD Guard**, which enforces test-driven development for **all code changes** - including small changes like adding a logging statement.
|
|
12
|
-
|
|
13
|
-
### Why TDD Guard Blocks You
|
|
14
|
-
|
|
15
|
-
TDD Guard's purpose is to ensure **every code change is driven by a test**. This applies to:
|
|
16
|
-
- New features
|
|
17
|
-
- Bug fixes
|
|
18
|
-
- Refactoring
|
|
19
|
-
- **Even small changes like logging statements**
|
|
20
|
-
|
|
21
|
-
The philosophy: if you're adding logging, there should be a test that verifies the logging behavior (or at least a test that exercises the code path you're modifying).
|
|
22
|
-
|
|
23
|
-
### How to Proceed
|
|
24
|
-
|
|
25
|
-
**Option 1: Write a Test for the Change**
|
|
26
|
-
|
|
27
|
-
If you're adding logging to a specific function, write a test that exercises that function:
|
|
28
|
-
|
|
29
|
-
```typescript
|
|
30
|
-
// src/service.test.ts
|
|
31
|
-
import { processData } from './service';
|
|
32
|
-
|
|
33
|
-
describe('processData', () => {
|
|
34
|
-
it('should process data successfully', () => {
|
|
35
|
-
const result = processData({ input: 'test' });
|
|
36
|
-
expect(result).toBeDefined();
|
|
37
|
-
// This test exercises the code path where you're adding logging
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
Run tests to create a failing state (or ensure test exists), then TDD Guard will allow the edit.
|
|
43
|
-
|
|
44
|
-
**Option 2: Modify an Existing Test**
|
|
45
|
-
|
|
46
|
-
If tests already exist for this code, run them to ensure TDD Guard sees them:
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
npm test # or: npx vitest run
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
The test reporter generates JSON that TDD Guard reads.
|
|
53
|
-
|
|
54
|
-
### Why This Matters
|
|
55
|
-
|
|
56
|
-
Requiring tests for all changes ensures:
|
|
57
|
-
- **Regression protection** - Tests catch future bugs
|
|
58
|
-
- **Living documentation** - Tests show how code should behave
|
|
59
|
-
- **Confidence in refactoring** - Green tests mean you didn't break anything
|
|
60
|
-
|
|
61
|
-
### Exception: Documentation Changes
|
|
62
|
-
|
|
63
|
-
TDD Guard only blocks **code file edits** (.ts, .js, .py, etc.). Documentation files (.md, .txt) can be edited without tests.
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
**Bottom line:** Write or run a test that exercises the code you're modifying, then TDD Guard will allow the logging change.
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
# Eval 1: typescript-feature-with-tests
|
|
2
|
-
|
|
3
|
-
**Prompt:** Add a new authentication middleware to src/auth.ts that validates JWT tokens. The middleware should check the Authorization header, verify the token, and attach the user to the request object.
|
|
4
|
-
|
|
5
|
-
**Skill Applied:** using-quality-gates
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Response (with skill active)
|
|
10
|
-
|
|
11
|
-
To add the authentication middleware, we need to follow the **TDD workflow** enforced by Quality Gates:
|
|
12
|
-
|
|
13
|
-
### Step 1: Write a Failing Test First
|
|
14
|
-
|
|
15
|
-
Before implementing the middleware, you need to write a test that will fail without the implementation. The TDD Guard will block implementation until a failing test exists.
|
|
16
|
-
|
|
17
|
-
**Create** `src/auth.test.ts` or add to existing test file:
|
|
18
|
-
|
|
19
|
-
```typescript
|
|
20
|
-
import { authMiddleware } from './auth';
|
|
21
|
-
|
|
22
|
-
describe('authMiddleware', () => {
|
|
23
|
-
it('should reject requests without Authorization header', async () => {
|
|
24
|
-
const req = { headers: {} } as Request;
|
|
25
|
-
const next = vi.fn();
|
|
26
|
-
|
|
27
|
-
await authMiddleware(req, {} as Response, next);
|
|
28
|
-
|
|
29
|
-
expect(next).not.toHaveBeenCalled();
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
it('should attach user to request with valid JWT', async () => {
|
|
33
|
-
const token = generateValidToken(); // your test helper
|
|
34
|
-
const req = { headers: { authorization: `Bearer ${token}` } } as Request;
|
|
35
|
-
const next = vi.fn();
|
|
36
|
-
|
|
37
|
-
await authMiddleware(req, {} as Response, next);
|
|
38
|
-
|
|
39
|
-
expect(next).toHaveBeenCalled();
|
|
40
|
-
expect(req.user).toBeDefined();
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
Run tests to confirm they fail:
|
|
46
|
-
```bash
|
|
47
|
-
npm test # or: npx vitest run
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### Step 2: Implement the Middleware
|
|
51
|
-
|
|
52
|
-
Once tests are failing, TDD Guard will allow implementation:
|
|
53
|
-
|
|
54
|
-
```typescript
|
|
55
|
-
// src/auth.ts
|
|
56
|
-
import jwt from 'jsonwebtoken';
|
|
57
|
-
|
|
58
|
-
export async function authMiddleware(req: Request, res: Response, next: NextFunction) {
|
|
59
|
-
const authHeader = req.headers.authorization;
|
|
60
|
-
|
|
61
|
-
if (!authHeader?.startsWith('Bearer ')) {
|
|
62
|
-
res.status(401).json({ error: 'No token provided' });
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const token = authHeader.substring(7);
|
|
67
|
-
|
|
68
|
-
try {
|
|
69
|
-
const decoded = jwt.verify(token, process.env.JWT_SECRET!);
|
|
70
|
-
(req as any).user = decoded;
|
|
71
|
-
next();
|
|
72
|
-
} catch (err) {
|
|
73
|
-
res.status(401).json({ error: 'Invalid token' });
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### Step 3: Quality Gate Validation
|
|
79
|
-
|
|
80
|
-
After editing `src/auth.ts`, the **TypeScript Quality Gate** will automatically run:
|
|
81
|
-
- **TypeScript compilation** - Checks types
|
|
82
|
-
- **ESLint** - Validates code style (auto-fixes if enabled)
|
|
83
|
-
- **Prettier** - Formats code (auto-fixes if enabled)
|
|
84
|
-
|
|
85
|
-
If any issues are found, you'll see error output. Fix remaining issues manually (type errors can't be auto-fixed).
|
|
86
|
-
|
|
87
|
-
### Step 4: Verify Tests Pass
|
|
88
|
-
|
|
89
|
-
```bash
|
|
90
|
-
npm test # All tests should now pass
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
**Note:** Ensure you have the required dependencies installed:
|
|
96
|
-
- `npm install --save-dev tdd-guard-vitest` (for Vitest test reporter)
|
|
97
|
-
- `npm install --save-dev typescript eslint prettier` (for quality gate)
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
"""
|
|
3
|
-
Pre-commit hook: Documentation reminder.
|
|
4
|
-
|
|
5
|
-
Warns when behavior-changing source files are staged for commit without
|
|
6
|
-
corresponding SSOT documentation updates. Always exits 0 (non-blocking).
|
|
7
|
-
|
|
8
|
-
Usage: called automatically by .githooks/pre-commit
|
|
9
|
-
"""
|
|
10
|
-
import subprocess
|
|
11
|
-
import sys
|
|
12
|
-
|
|
13
|
-
# Source paths that indicate behavior-changing code.
|
|
14
|
-
# If any staged file starts with one of these, the reminder fires.
|
|
15
|
-
SOURCE_PATHS = [
|
|
16
|
-
"scripts/core/",
|
|
17
|
-
"scripts/data/",
|
|
18
|
-
"scripts/ingestion/",
|
|
19
|
-
"mcp_server/",
|
|
20
|
-
"alembic/",
|
|
21
|
-
]
|
|
22
|
-
|
|
23
|
-
# Proxy for "agent already ran /documenting".
|
|
24
|
-
# If any of these are also staged, the reminder is suppressed.
|
|
25
|
-
SSOT_PATHS = [
|
|
26
|
-
".serena/memories/",
|
|
27
|
-
]
|
|
28
|
-
|
|
29
|
-
# Colors
|
|
30
|
-
YELLOW = "\033[1;33m"
|
|
31
|
-
BLUE = "\033[0;34m"
|
|
32
|
-
NC = "\033[0m"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
def get_staged_files() -> list[str]:
|
|
36
|
-
result = subprocess.run(
|
|
37
|
-
["git", "diff", "--cached", "--name-only"],
|
|
38
|
-
capture_output=True, text=True
|
|
39
|
-
)
|
|
40
|
-
return [f for f in result.stdout.splitlines() if f]
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
def main() -> None:
|
|
44
|
-
staged = get_staged_files()
|
|
45
|
-
if not staged:
|
|
46
|
-
sys.exit(0)
|
|
47
|
-
|
|
48
|
-
source_changed = [f for f in staged if any(f.startswith(p) for p in SOURCE_PATHS)]
|
|
49
|
-
ssot_changed = [f for f in staged if any(f.startswith(p) for p in SSOT_PATHS)]
|
|
50
|
-
|
|
51
|
-
if source_changed and not ssot_changed:
|
|
52
|
-
print()
|
|
53
|
-
print(f"{YELLOW}[doc-hook] ⚠ Source changes staged without SSOT updates.{NC}")
|
|
54
|
-
print(f"{BLUE}[doc-hook] If this commit changes behavior or architecture, run /documenting first.{NC}")
|
|
55
|
-
print(f"[doc-hook] Changed source paths:")
|
|
56
|
-
for f in source_changed[:6]:
|
|
57
|
-
print(f"[doc-hook] - {f}")
|
|
58
|
-
if len(source_changed) > 6:
|
|
59
|
-
print(f"[doc-hook] ... and {len(source_changed) - 6} more")
|
|
60
|
-
print(f"[doc-hook] Commit proceeds — this is a reminder, not a block.")
|
|
61
|
-
print()
|
|
62
|
-
|
|
63
|
-
sys.exit(0)
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if __name__ == "__main__":
|
|
67
|
-
main()
|
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
"""
|
|
3
|
-
Pre-push hook: Skill staleness check.
|
|
4
|
-
|
|
5
|
-
Reads the git push range from stdin, identifies which source files changed,
|
|
6
|
-
and warns if any service skill's SKILL.md is older than the changed source files.
|
|
7
|
-
|
|
8
|
-
Non-blocking by default. Set SKILL_HOOK_STRICT=1 to block the push on staleness.
|
|
9
|
-
|
|
10
|
-
Usage: called automatically by .githooks/pre-push (reads from stdin)
|
|
11
|
-
Manual: python3 skill_staleness.py --check-all
|
|
12
|
-
"""
|
|
13
|
-
import subprocess
|
|
14
|
-
import sys
|
|
15
|
-
import os
|
|
16
|
-
from pathlib import Path
|
|
17
|
-
|
|
18
|
-
# ---------------------------------------------------------------------------
|
|
19
|
-
# Per-service source path prefixes — derived from docker-compose + entrypoint.
|
|
20
|
-
# A skill is flagged as potentially stale if any changed file in the push
|
|
21
|
-
# starts with one of these paths for that service.
|
|
22
|
-
#
|
|
23
|
-
# Customise this dict to match your project's layout.
|
|
24
|
-
# ---------------------------------------------------------------------------
|
|
25
|
-
SERVICE_SOURCE_PATHS: dict[str, list[str]] = {
|
|
26
|
-
"mmd-data-feed": ["scripts/data/import_unified.py",
|
|
27
|
-
"scripts/database/unified_import.py"],
|
|
28
|
-
"mmd-snapshot-feed": ["scripts/data/feeds/snapshot_feed.py",
|
|
29
|
-
"scripts/core/"],
|
|
30
|
-
"mmd-curve-feed": ["scripts/data/feeds/spread_feed.py"],
|
|
31
|
-
"mmd-curve-backfill": ["scripts/data/feeds/spread_feed.py"],
|
|
32
|
-
"mmd-stir-feed": ["scripts/data/feeds/stir_feed.py"],
|
|
33
|
-
"mmd-api": ["mcp_server/"],
|
|
34
|
-
"mmd-mcp-server": ["mcp_server/mcp_server.py",
|
|
35
|
-
"mcp_server/docstrings/"],
|
|
36
|
-
"mmd-cme-ingestion": ["scripts/ingestion/cme/"],
|
|
37
|
-
"mmd-migrations": ["alembic/", "scripts/data/migrations.py",
|
|
38
|
-
"scripts/database/run_migrations.py"],
|
|
39
|
-
"mmd-tick-ingestor-rust": ["rust_ingestor/"],
|
|
40
|
-
"mmd-backup-service": ["scripts/backup/"],
|
|
41
|
-
"mmd-timescaledb": ["docker-compose.yml"],
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
# These files, if changed, flag ALL skills for review
|
|
45
|
-
GLOBAL_TRIGGERS = [
|
|
46
|
-
"docker-compose.yml",
|
|
47
|
-
"scripts/docker-entrypoint.sh",
|
|
48
|
-
".env.TEMPLATE",
|
|
49
|
-
]
|
|
50
|
-
|
|
51
|
-
NULL_SHA = "0" * 40
|
|
52
|
-
SKILLS_DIR = Path(".claude/skills")
|
|
53
|
-
STRICT = os.getenv("SKILL_HOOK_STRICT", "0") == "1"
|
|
54
|
-
|
|
55
|
-
# Colors
|
|
56
|
-
YELLOW = "\033[1;33m"
|
|
57
|
-
RED = "\033[0;31m"
|
|
58
|
-
GREEN = "\033[0;32m"
|
|
59
|
-
BLUE = "\033[0;34m"
|
|
60
|
-
NC = "\033[0m"
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
def get_push_ranges() -> list[tuple[str, str]]:
|
|
64
|
-
"""Read push ranges from stdin (pre-push hook protocol)."""
|
|
65
|
-
ranges = []
|
|
66
|
-
for line in sys.stdin:
|
|
67
|
-
parts = line.strip().split()
|
|
68
|
-
if len(parts) == 4:
|
|
69
|
-
_, local_sha, _, remote_sha = parts
|
|
70
|
-
if local_sha != NULL_SHA:
|
|
71
|
-
ranges.append((remote_sha, local_sha))
|
|
72
|
-
return ranges
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
def get_changed_files(old_sha: str, new_sha: str) -> set[str]:
|
|
76
|
-
"""Get set of file paths changed between two commits."""
|
|
77
|
-
if old_sha == NULL_SHA:
|
|
78
|
-
# First push — compare against empty tree
|
|
79
|
-
result = subprocess.run(
|
|
80
|
-
["git", "diff-tree", "--name-only", "-r", new_sha],
|
|
81
|
-
capture_output=True, text=True
|
|
82
|
-
)
|
|
83
|
-
else:
|
|
84
|
-
result = subprocess.run(
|
|
85
|
-
["git", "diff", "--name-only", old_sha, new_sha],
|
|
86
|
-
capture_output=True, text=True
|
|
87
|
-
)
|
|
88
|
-
return {f for f in result.stdout.splitlines() if f}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
def file_touches_service(filepath: str, service: str) -> bool:
|
|
92
|
-
"""Return True if filepath is tracked by this service's source paths."""
|
|
93
|
-
for prefix in SERVICE_SOURCE_PATHS.get(service, []):
|
|
94
|
-
if filepath.startswith(prefix) or filepath == prefix:
|
|
95
|
-
return True
|
|
96
|
-
return False
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
def is_globally_triggered(changed_files: set[str]) -> bool:
|
|
100
|
-
return any(f in GLOBAL_TRIGGERS for f in changed_files)
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
def check_skill_staleness(
|
|
104
|
-
service: str,
|
|
105
|
-
changed_files: set[str],
|
|
106
|
-
global_trigger: bool,
|
|
107
|
-
) -> str | None:
|
|
108
|
-
"""
|
|
109
|
-
Return a warning message if the skill for `service` is stale,
|
|
110
|
-
or None if healthy.
|
|
111
|
-
"""
|
|
112
|
-
skill_md = SKILLS_DIR / service / "SKILL.md"
|
|
113
|
-
if not skill_md.exists():
|
|
114
|
-
return None # Missing skills are a separate concern
|
|
115
|
-
|
|
116
|
-
if not global_trigger and not any(
|
|
117
|
-
file_touches_service(f, service) for f in changed_files
|
|
118
|
-
):
|
|
119
|
-
return None # No relevant changes for this service
|
|
120
|
-
|
|
121
|
-
# Compare SKILL.md mtime against the most recently modified source file
|
|
122
|
-
skill_mtime = skill_md.stat().st_mtime
|
|
123
|
-
relevant_files = (
|
|
124
|
-
[f for f in changed_files if f in GLOBAL_TRIGGERS]
|
|
125
|
-
if global_trigger
|
|
126
|
-
else [f for f in changed_files if file_touches_service(f, service)]
|
|
127
|
-
)
|
|
128
|
-
|
|
129
|
-
stale_triggers = []
|
|
130
|
-
for rel_path in relevant_files:
|
|
131
|
-
abs_path = Path(rel_path)
|
|
132
|
-
if abs_path.exists() and abs_path.stat().st_mtime > skill_mtime:
|
|
133
|
-
stale_triggers.append(rel_path)
|
|
134
|
-
|
|
135
|
-
if stale_triggers:
|
|
136
|
-
return (
|
|
137
|
-
f" {service}: SKILL.md older than changed source\n"
|
|
138
|
-
f" Trigger: {stale_triggers[0]}\n"
|
|
139
|
-
f" Action: python3 /path/to/jaggers-agent-tools/project-skills/install.py {service} --force\n"
|
|
140
|
-
f" Then perform Phase 2 deep dive (see SKILL.md)"
|
|
141
|
-
)
|
|
142
|
-
return None
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
def main() -> None:
|
|
146
|
-
# Allow manual invocation: python3 skill_staleness.py --check-all
|
|
147
|
-
if "--check-all" in sys.argv:
|
|
148
|
-
changed_files = set()
|
|
149
|
-
global_trigger = True
|
|
150
|
-
else:
|
|
151
|
-
ranges = get_push_ranges()
|
|
152
|
-
if not ranges:
|
|
153
|
-
sys.exit(0)
|
|
154
|
-
|
|
155
|
-
changed_files: set[str] = set()
|
|
156
|
-
for old_sha, new_sha in ranges:
|
|
157
|
-
changed_files |= get_changed_files(old_sha, new_sha)
|
|
158
|
-
|
|
159
|
-
if not changed_files:
|
|
160
|
-
sys.exit(0)
|
|
161
|
-
|
|
162
|
-
global_trigger = is_globally_triggered(changed_files)
|
|
163
|
-
|
|
164
|
-
# Check each service that has a skill
|
|
165
|
-
warnings = []
|
|
166
|
-
services_to_check = sorted(SERVICE_SOURCE_PATHS.keys())
|
|
167
|
-
|
|
168
|
-
for service in services_to_check:
|
|
169
|
-
msg = check_skill_staleness(service, changed_files, global_trigger)
|
|
170
|
-
if msg:
|
|
171
|
-
warnings.append(msg)
|
|
172
|
-
|
|
173
|
-
if not warnings:
|
|
174
|
-
sys.exit(0)
|
|
175
|
-
|
|
176
|
-
print()
|
|
177
|
-
print(f"{YELLOW}[skill-hook] ⚠ The following service skills may be stale:{NC}")
|
|
178
|
-
for w in warnings:
|
|
179
|
-
print(f"{YELLOW}{w}{NC}")
|
|
180
|
-
print()
|
|
181
|
-
|
|
182
|
-
if STRICT:
|
|
183
|
-
print(f"{RED}[skill-hook] SKILL_HOOK_STRICT=1: blocking push until skills are updated.{NC}")
|
|
184
|
-
print(f"[skill-hook] Bypass: git push --no-verify")
|
|
185
|
-
print()
|
|
186
|
-
sys.exit(1)
|
|
187
|
-
else:
|
|
188
|
-
print(f"{BLUE}[skill-hook] Set SKILL_HOOK_STRICT=1 to block pushes on staleness.{NC}")
|
|
189
|
-
print()
|
|
190
|
-
sys.exit(0)
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
if __name__ == "__main__":
|
|
194
|
-
main()
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"hooks": {
|
|
3
|
-
"SessionStart": [
|
|
4
|
-
{
|
|
5
|
-
"hooks": [
|
|
6
|
-
{
|
|
7
|
-
"type": "command",
|
|
8
|
-
"command": "python3 \"$CLAUDE_PROJECT_DIR/.claude/skills/using-service-skills/scripts/cataloger.py\""
|
|
9
|
-
}
|
|
10
|
-
]
|
|
11
|
-
}
|
|
12
|
-
],
|
|
13
|
-
"PreToolUse": [
|
|
14
|
-
{
|
|
15
|
-
"matcher": "Read|Write|Edit|Glob|Grep|Bash|mcp__serena__rename_symbol|mcp__serena__replace_symbol_body|mcp__serena__insert_after_symbol|mcp__serena__insert_before_symbol",
|
|
16
|
-
"hooks": [
|
|
17
|
-
{
|
|
18
|
-
"type": "command",
|
|
19
|
-
"command": "python3 \"$CLAUDE_PROJECT_DIR/.claude/skills/using-service-skills/scripts/skill_activator.py\""
|
|
20
|
-
}
|
|
21
|
-
]
|
|
22
|
-
}
|
|
23
|
-
],
|
|
24
|
-
"PostToolUse": [
|
|
25
|
-
{
|
|
26
|
-
"matcher": "Write|Edit|mcp__serena__rename_symbol|mcp__serena__replace_symbol_body|mcp__serena__insert_after_symbol|mcp__serena__insert_before_symbol",
|
|
27
|
-
"hooks": [
|
|
28
|
-
{
|
|
29
|
-
"type": "command",
|
|
30
|
-
"command": "python3 \"$CLAUDE_PROJECT_DIR/.claude/skills/updating-service-skills/scripts/drift_detector.py\" check-hook",
|
|
31
|
-
"timeout": 10
|
|
32
|
-
}
|
|
33
|
-
]
|
|
34
|
-
}
|
|
35
|
-
]
|
|
36
|
-
}
|
|
37
|
-
}
|