xtrm-tools 0.7.3 → 0.7.7
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/hooks.json +3 -0
- package/.xtrm/config/pi/extensions/xtrm-ui/format.ts +189 -0
- package/.xtrm/config/pi/extensions/xtrm-ui/index.ts +76 -17
- package/.xtrm/config/pi/extensions/xtrm-ui/package.json +16 -5
- package/.xtrm/ext-src/custom-footer/.pi/structured-returns/83051fe4-97da-4e2c-bdaa-343b32f4e714.combined.log +7 -0
- package/.xtrm/ext-src/custom-footer/.pi/structured-returns/83051fe4-97da-4e2c-bdaa-343b32f4e714.stderr.log +0 -0
- package/.xtrm/ext-src/custom-footer/.pi/structured-returns/83051fe4-97da-4e2c-bdaa-343b32f4e714.stdout.log +7 -0
- package/.xtrm/ext-src/xtrm-ui/format.ts +282 -0
- package/.xtrm/{extensions → ext-src}/xtrm-ui/index.ts +76 -17
- package/.xtrm/ext-src/xtrm-ui/package.json +21 -0
- package/.xtrm/hooks/specialists/specialists-complete.mjs +70 -0
- package/.xtrm/hooks/specialists/specialists-session-start.mjs +105 -0
- package/.xtrm/registry.json +397 -409
- package/.xtrm/skills/default/README.txt +31 -0
- package/.xtrm/skills/default/clean-code/SKILL.md +201 -0
- package/.xtrm/skills/default/creating-service-skills/SKILL.md +433 -0
- package/.xtrm/skills/default/creating-service-skills/references/script_quality_standards.md +425 -0
- package/.xtrm/skills/default/creating-service-skills/references/service_skill_system_guide.md +278 -0
- package/.xtrm/skills/default/creating-service-skills/scripts/bootstrap.py +326 -0
- package/.xtrm/skills/default/creating-service-skills/scripts/deep_dive.py +304 -0
- package/.xtrm/skills/default/creating-service-skills/scripts/scaffolder.py +482 -0
- package/.xtrm/skills/default/deepwiki/SKILL.md +50 -0
- package/.xtrm/skills/default/delegating/SKILL.md +196 -0
- package/.xtrm/skills/default/delegating/config.yaml +210 -0
- package/.xtrm/skills/default/delegating/references/orchestration-protocols.md +41 -0
- package/.xtrm/skills/default/documenting/CHANGELOG.md +23 -0
- package/.xtrm/skills/default/documenting/README.md +148 -0
- package/.xtrm/skills/default/documenting/SKILL.md +113 -0
- package/.xtrm/skills/default/documenting/examples/example_pattern.md +70 -0
- package/.xtrm/skills/default/documenting/examples/example_reference.md +70 -0
- package/.xtrm/skills/default/documenting/examples/example_ssot_analytics.md +64 -0
- package/.xtrm/skills/default/documenting/examples/example_workflow.md +141 -0
- package/.xtrm/skills/default/documenting/references/changelog-format.md +97 -0
- package/.xtrm/skills/default/documenting/references/metadata-schema.md +136 -0
- package/.xtrm/skills/default/documenting/references/taxonomy.md +81 -0
- package/.xtrm/skills/default/documenting/references/versioning-rules.md +78 -0
- package/.xtrm/skills/default/documenting/scripts/bump_version.sh +60 -0
- package/.xtrm/skills/default/documenting/scripts/changelog/__init__.py +0 -0
- package/.xtrm/skills/default/documenting/scripts/changelog/add_entry.py +216 -0
- package/.xtrm/skills/default/documenting/scripts/changelog/bump_release.py +117 -0
- package/.xtrm/skills/default/documenting/scripts/changelog/init_changelog.py +54 -0
- package/.xtrm/skills/default/documenting/scripts/changelog/validate_changelog.py +128 -0
- package/.xtrm/skills/default/documenting/scripts/drift_detector.py +266 -0
- package/.xtrm/skills/default/documenting/scripts/generate_template.py +311 -0
- package/.xtrm/skills/default/documenting/scripts/list_by_category.sh +84 -0
- package/.xtrm/skills/default/documenting/scripts/orchestrator.py +255 -0
- package/.xtrm/skills/default/documenting/scripts/validate_metadata.py +242 -0
- package/.xtrm/skills/default/documenting/templates/CHANGELOG.md.template +13 -0
- package/.xtrm/skills/default/find-docs/SKILL.md +175 -0
- package/.xtrm/skills/default/find-skills/SKILL.md +133 -0
- package/.xtrm/skills/default/github-search/SKILL.md +49 -0
- package/.xtrm/skills/default/gitnexus-debugging/SKILL.md +89 -0
- package/.xtrm/skills/default/gitnexus-impact-analysis/SKILL.md +97 -0
- package/.xtrm/skills/default/gitnexus-pr-review/SKILL.md +163 -0
- package/.xtrm/skills/default/gitnexus-refactoring/SKILL.md +121 -0
- package/.xtrm/skills/default/hook-development/SKILL.md +797 -0
- package/.xtrm/skills/default/hook-development/examples/load-context.sh +55 -0
- package/.xtrm/skills/default/hook-development/examples/quality-check.js +1168 -0
- package/.xtrm/skills/default/hook-development/examples/validate-bash.sh +43 -0
- package/.xtrm/skills/default/hook-development/examples/validate-write.sh +38 -0
- package/.xtrm/skills/default/hook-development/references/advanced.md +527 -0
- package/.xtrm/skills/default/hook-development/references/migration.md +369 -0
- package/.xtrm/skills/default/hook-development/references/patterns.md +412 -0
- package/.xtrm/skills/default/hook-development/scripts/README.md +164 -0
- package/.xtrm/skills/default/hook-development/scripts/hook-linter.sh +153 -0
- package/.xtrm/skills/default/hook-development/scripts/test-hook.sh +252 -0
- package/.xtrm/skills/default/hook-development/scripts/validate-hook-schema.sh +159 -0
- package/.xtrm/skills/default/init-session/SKILL.md +69 -0
- package/.xtrm/skills/default/last30days/SKILL.md +881 -0
- package/.xtrm/skills/default/last30days/scripts/briefing.py +260 -0
- package/.xtrm/skills/default/last30days/scripts/evaluate-synthesis.py +120 -0
- package/.xtrm/skills/default/last30days/scripts/evaluate_search_quality.py +641 -0
- package/.xtrm/skills/default/last30days/scripts/generate-synthesis-inputs.py +53 -0
- package/.xtrm/skills/default/last30days/scripts/last30days.py +2137 -0
- package/.xtrm/skills/default/last30days/scripts/lib/__init__.py +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/bird_x.py +458 -0
- package/.xtrm/skills/default/last30days/scripts/lib/bluesky.py +225 -0
- package/.xtrm/skills/default/last30days/scripts/lib/brave_search.py +329 -0
- package/.xtrm/skills/default/last30days/scripts/lib/cache.py +165 -0
- package/.xtrm/skills/default/last30days/scripts/lib/chrome_cookies.py +265 -0
- package/.xtrm/skills/default/last30days/scripts/lib/cookie_extract.py +295 -0
- package/.xtrm/skills/default/last30days/scripts/lib/dates.py +124 -0
- package/.xtrm/skills/default/last30days/scripts/lib/dedupe.py +290 -0
- package/.xtrm/skills/default/last30days/scripts/lib/entity_extract.py +127 -0
- package/.xtrm/skills/default/last30days/scripts/lib/env.py +807 -0
- package/.xtrm/skills/default/last30days/scripts/lib/exa_search.py +176 -0
- package/.xtrm/skills/default/last30days/scripts/lib/hackernews.py +266 -0
- package/.xtrm/skills/default/last30days/scripts/lib/http.py +174 -0
- package/.xtrm/skills/default/last30days/scripts/lib/instagram.py +365 -0
- package/.xtrm/skills/default/last30days/scripts/lib/models.py +221 -0
- package/.xtrm/skills/default/last30days/scripts/lib/normalize.py +489 -0
- package/.xtrm/skills/default/last30days/scripts/lib/openai_reddit.py +631 -0
- package/.xtrm/skills/default/last30days/scripts/lib/openrouter_search.py +216 -0
- package/.xtrm/skills/default/last30days/scripts/lib/parallel_search.py +139 -0
- package/.xtrm/skills/default/last30days/scripts/lib/polymarket.py +580 -0
- package/.xtrm/skills/default/last30days/scripts/lib/quality_nudge.py +201 -0
- package/.xtrm/skills/default/last30days/scripts/lib/query.py +117 -0
- package/.xtrm/skills/default/last30days/scripts/lib/query_type.py +111 -0
- package/.xtrm/skills/default/last30days/scripts/lib/reddit.py +617 -0
- package/.xtrm/skills/default/last30days/scripts/lib/reddit_enrich.py +325 -0
- package/.xtrm/skills/default/last30days/scripts/lib/reddit_public.py +259 -0
- package/.xtrm/skills/default/last30days/scripts/lib/relevance.py +148 -0
- package/.xtrm/skills/default/last30days/scripts/lib/render.py +1018 -0
- package/.xtrm/skills/default/last30days/scripts/lib/safari_cookies.py +182 -0
- package/.xtrm/skills/default/last30days/scripts/lib/schema.py +843 -0
- package/.xtrm/skills/default/last30days/scripts/lib/score.py +775 -0
- package/.xtrm/skills/default/last30days/scripts/lib/scrapecreators_x.py +182 -0
- package/.xtrm/skills/default/last30days/scripts/lib/setup_wizard.py +186 -0
- package/.xtrm/skills/default/last30days/scripts/lib/tiktok.py +349 -0
- package/.xtrm/skills/default/last30days/scripts/lib/truthsocial.py +183 -0
- package/.xtrm/skills/default/last30days/scripts/lib/ui.py +620 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/LICENSE +21 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/bird-search.mjs +134 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/cookies.js +191 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/features.json +17 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/paginate-cursor.js +37 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/query-ids.json +20 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/runtime-features.js +151 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/runtime-query-ids.js +264 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-base.js +129 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-constants.js +50 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-features.js +347 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-search.js +157 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-types.js +2 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/lib/twitter-client-utils.js +511 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/LICENSE +22 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/README.md +29 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/index.d.ts +3 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/index.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/index.js +2 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/index.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chrome.d.ts +8 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chrome.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chrome.js +27 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chrome.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/crypto.d.ts +11 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/crypto.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/crypto.js +100 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/crypto.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/linuxKeyring.d.ts +25 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/linuxKeyring.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/linuxKeyring.js +104 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/linuxKeyring.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/shared.d.ts +10 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/shared.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/shared.js +293 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/shared.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/windowsDpapi.d.ts +10 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/windowsDpapi.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/windowsDpapi.js +26 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqlite/windowsDpapi.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteLinux.d.ts +7 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteLinux.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteLinux.js +51 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteLinux.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteMac.d.ts +7 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteMac.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteMac.js +60 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteMac.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteWindows.d.ts +7 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteWindows.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteWindows.js +38 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromeSqliteWindows.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/linuxPaths.d.ts +5 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/linuxPaths.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/linuxPaths.js +33 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/linuxPaths.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/macosKeychain.d.ts +24 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/macosKeychain.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/macosKeychain.js +30 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/macosKeychain.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/paths.d.ts +11 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/paths.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/paths.js +43 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/paths.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsMasterKey.d.ts +8 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsMasterKey.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsMasterKey.js +41 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsMasterKey.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsPaths.d.ts +8 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsPaths.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsPaths.js +53 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/chromium/windowsPaths.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edge.d.ts +8 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edge.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edge.js +27 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edge.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteLinux.d.ts +7 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteLinux.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteLinux.js +53 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteLinux.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteMac.d.ts +8 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteMac.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteMac.js +60 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteMac.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteWindows.d.ts +7 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteWindows.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteWindows.js +38 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/edgeSqliteWindows.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/firefoxSqlite.d.ts +6 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/firefoxSqlite.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/firefoxSqlite.js +257 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/firefoxSqlite.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/inline.d.ts +8 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/inline.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/inline.js +71 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/inline.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/safariBinaryCookies.d.ts +6 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/safariBinaryCookies.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/safariBinaryCookies.js +173 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/providers/safariBinaryCookies.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/public.d.ts +26 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/public.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/public.js +195 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/public.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/types.d.ts +121 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/types.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/types.js +2 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/types.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/base64.d.ts +2 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/base64.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/base64.js +18 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/base64.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/exec.d.ts +8 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/exec.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/exec.js +110 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/exec.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/expire.d.ts +2 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/expire.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/expire.js +32 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/expire.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/fs.d.ts +2 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/fs.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/fs.js +13 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/fs.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/hostMatch.d.ts +2 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/hostMatch.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/hostMatch.js +7 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/hostMatch.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/nodeSqlite.d.ts +5 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/nodeSqlite.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/nodeSqlite.js +58 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/nodeSqlite.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/origins.d.ts +2 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/origins.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/origins.js +27 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/origins.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/runtime.d.ts +2 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/runtime.d.ts.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/runtime.js +8 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/dist/util/runtime.js.map +1 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/node_modules/@steipete/sweet-cookie/package.json +40 -0
- package/.xtrm/skills/default/last30days/scripts/lib/vendor/bird-search/package.json +13 -0
- package/.xtrm/skills/default/last30days/scripts/lib/websearch.py +401 -0
- package/.xtrm/skills/default/last30days/scripts/lib/xai_x.py +217 -0
- package/.xtrm/skills/default/last30days/scripts/lib/xiaohongshu_api.py +162 -0
- package/.xtrm/skills/default/last30days/scripts/lib/youtube_yt.py +538 -0
- package/.xtrm/skills/default/last30days/scripts/store.py +654 -0
- package/.xtrm/skills/default/last30days/scripts/sync.sh +50 -0
- package/.xtrm/skills/default/last30days/scripts/test-v1-vs-v2.sh +219 -0
- package/.xtrm/skills/default/last30days/scripts/watchlist.py +329 -0
- package/.xtrm/skills/default/planning/SKILL.md +405 -0
- package/.xtrm/skills/default/planning/evals/evals.json +19 -0
- package/.xtrm/skills/default/prompt-improving/README.md +162 -0
- package/.xtrm/skills/default/prompt-improving/SKILL.md +74 -0
- package/.xtrm/skills/default/prompt-improving/references/analysis_commands.md +24 -0
- package/.xtrm/skills/default/prompt-improving/references/chain_of_thought.md +24 -0
- package/.xtrm/skills/default/prompt-improving/references/mcp_definitions.md +20 -0
- package/.xtrm/skills/default/prompt-improving/references/multishot.md +23 -0
- package/.xtrm/skills/default/prompt-improving/references/xml_core.md +60 -0
- package/.xtrm/skills/default/quality-gates/.claude/hooks/hook-config.json +66 -0
- package/.xtrm/skills/default/quality-gates/.claude/hooks/quality-check.cjs +1286 -0
- package/.xtrm/skills/default/quality-gates/.claude/hooks/quality-check.py +334 -0
- package/.xtrm/skills/default/quality-gates/.claude/settings.json +3 -0
- package/.xtrm/skills/default/quality-gates/.claude/skills/using-quality-gates/SKILL.md +254 -0
- package/.xtrm/skills/default/quality-gates/README.md +109 -0
- package/.xtrm/skills/default/quality-gates/evals/evals.json +181 -0
- package/.xtrm/skills/default/quality-gates/workspace/iteration-1/FINAL-EVAL-SUMMARY.md +75 -0
- package/.xtrm/skills/default/quality-gates/workspace/iteration-1/edge-case-auto-fix-verification/with_skill/outputs/response.md +59 -0
- package/.xtrm/skills/default/quality-gates/workspace/iteration-1/edge-case-mixed-language-project/with_skill/outputs/response.md +60 -0
- package/.xtrm/skills/default/quality-gates/workspace/iteration-1/eval-summary.md +105 -0
- package/.xtrm/skills/default/quality-gates/workspace/iteration-1/partial-install-python-only/with_skill/outputs/response.md +93 -0
- package/.xtrm/skills/default/quality-gates/workspace/iteration-1/python-refactor-request/with_skill/outputs/response.md +104 -0
- package/.xtrm/skills/default/quality-gates/workspace/iteration-1/quality-gate-error-fix/with_skill/outputs/response.md +74 -0
- package/.xtrm/skills/default/quality-gates/workspace/iteration-1/should-not-trigger-general-chat/with_skill/outputs/response.md +18 -0
- package/.xtrm/skills/default/quality-gates/workspace/iteration-1/should-not-trigger-math-question/with_skill/outputs/response.md +18 -0
- package/.xtrm/skills/default/quality-gates/workspace/iteration-1/should-not-trigger-unrelated-coding/with_skill/outputs/response.md +56 -0
- package/.xtrm/skills/default/quality-gates/workspace/iteration-1/tdd-guard-blocking-confusion/with_skill/outputs/response.md +67 -0
- package/.xtrm/skills/default/quality-gates/workspace/iteration-1/typescript-feature-with-tests/with_skill/outputs/response.md +97 -0
- package/.xtrm/skills/default/scoping-service-skills/SKILL.md +231 -0
- package/.xtrm/skills/default/scoping-service-skills/scripts/scope.py +74 -0
- package/.xtrm/skills/default/service-skills-set/README.md +93 -0
- package/.xtrm/skills/default/service-skills-set/git-hooks/doc_reminder.py +67 -0
- package/.xtrm/skills/default/service-skills-set/git-hooks/skill_staleness.py +194 -0
- package/.xtrm/skills/default/service-skills-set/install-service-skills.py +193 -0
- package/.xtrm/skills/default/service-skills-set/service-registry.json +4 -0
- package/.xtrm/skills/default/service-skills-set/service-skills-readme.md +236 -0
- package/.xtrm/skills/default/service-skills-set/settings.json +37 -0
- package/.xtrm/skills/default/session-close-report/SKILL.md +131 -0
- package/.xtrm/skills/default/skill-creator/LICENSE.txt +202 -0
- package/.xtrm/skills/default/skill-creator/SKILL.md +479 -0
- package/.xtrm/skills/default/skill-creator/agents/analyzer.md +274 -0
- package/.xtrm/skills/default/skill-creator/agents/comparator.md +202 -0
- package/.xtrm/skills/default/skill-creator/agents/grader.md +223 -0
- package/.xtrm/skills/default/skill-creator/assets/eval_review.html +146 -0
- package/.xtrm/skills/default/skill-creator/eval-viewer/generate_review.py +471 -0
- package/.xtrm/skills/default/skill-creator/eval-viewer/viewer.html +1325 -0
- package/.xtrm/skills/default/skill-creator/references/schemas.md +430 -0
- package/.xtrm/skills/default/skill-creator/scripts/__init__.py +0 -0
- package/.xtrm/skills/default/skill-creator/scripts/aggregate_benchmark.py +401 -0
- package/.xtrm/skills/default/skill-creator/scripts/generate_report.py +326 -0
- package/.xtrm/skills/default/skill-creator/scripts/improve_description.py +248 -0
- package/.xtrm/skills/default/skill-creator/scripts/package_skill.py +136 -0
- package/.xtrm/skills/default/skill-creator/scripts/quick_validate.py +103 -0
- package/.xtrm/skills/default/skill-creator/scripts/run_eval.py +310 -0
- package/.xtrm/skills/default/skill-creator/scripts/run_loop.py +332 -0
- package/.xtrm/skills/default/skill-creator/scripts/utils.py +47 -0
- package/.xtrm/skills/default/specialists-creator/SKILL.md +705 -0
- package/.xtrm/skills/default/specialists-creator/scripts/validate-specialist.ts +41 -0
- package/.xtrm/skills/default/sync-docs/SKILL.md +262 -0
- package/.xtrm/skills/default/sync-docs/evals/evals.json +89 -0
- package/.xtrm/skills/default/sync-docs/references/doc-structure.md +99 -0
- package/.xtrm/skills/default/sync-docs/references/schema.md +103 -0
- package/.xtrm/skills/default/sync-docs/scripts/changelog/add_entry.py +216 -0
- package/.xtrm/skills/default/sync-docs/scripts/context_gatherer.py +405 -0
- package/.xtrm/skills/default/sync-docs/scripts/doc_structure_analyzer.py +495 -0
- package/.xtrm/skills/default/sync-docs/scripts/drift_detector.py +563 -0
- package/.xtrm/skills/default/sync-docs/scripts/validate_doc.py +365 -0
- package/.xtrm/skills/default/sync-docs/scripts/validate_metadata.py +185 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/benchmark.json +293 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/benchmark.md +13 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/eval_metadata.json +27 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/outputs/result.md +210 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/run-1/grading.json +28 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/with_skill/run-1/timing.json +1 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/outputs/result.md +101 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/run-1/grading.json +28 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/run-1/timing.json +5 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-doc-audit/without_skill/timing.json +5 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/eval_metadata.json +27 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/outputs/result.md +198 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/run-1/grading.json +28 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/with_skill/run-1/timing.json +1 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/outputs/result.md +94 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/run-1/grading.json +28 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-fix-mode/without_skill/run-1/timing.json +1 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/eval_metadata.json +27 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/outputs/result.md +237 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/run-1/grading.json +28 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/with_skill/run-1/timing.json +1 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/outputs/result.md +134 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/run-1/grading.json +28 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-1/eval-sprint-closeout/without_skill/run-1/timing.json +1 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/benchmark.json +297 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/benchmark.md +13 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/eval_metadata.json +27 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/outputs/result.md +137 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/run-1/grading.json +92 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/with_skill/run-1/timing.json +1 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/outputs/result.md +134 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/run-1/grading.json +86 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-doc-audit/without_skill/run-1/timing.json +1 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/eval_metadata.json +27 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/outputs/result.md +193 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/run-1/grading.json +72 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/with_skill/run-1/timing.json +1 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/outputs/result.md +211 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/run-1/grading.json +91 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-fix-mode/without_skill/run-1/timing.json +5 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/eval_metadata.json +27 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/outputs/result.md +182 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/run-1/grading.json +95 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/with_skill/run-1/timing.json +1 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/outputs/result.md +222 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/run-1/grading.json +88 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-2/eval-sprint-closeout/without_skill/run-1/timing.json +5 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/benchmark.json +298 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/benchmark.md +13 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/eval_metadata.json +27 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/outputs/result.md +125 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/run-1/grading.json +97 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/with_skill/run-1/timing.json +5 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/outputs/result.md +144 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/run-1/grading.json +78 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-doc-audit/without_skill/run-1/timing.json +5 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/eval_metadata.json +27 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/outputs/result.md +104 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/run-1/grading.json +91 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/with_skill/run-1/timing.json +5 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/outputs/result.md +79 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/run-1/grading.json +82 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-fix-mode/without_skill/run-1/timing.json +5 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/eval_metadata.json +27 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase1_context.json +302 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase2_drift.txt +33 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase3_analysis.json +114 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase4_fix.txt +118 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/phase5_validate.txt +38 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/outputs/result.md +158 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/run-1/grading.json +95 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/with_skill/run-1/timing.json +5 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/outputs/result.md +71 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/run-1/grading.json +90 -0
- package/.xtrm/skills/default/sync-docs-workspace/iteration-3/eval-sprint-closeout/without_skill/run-1/timing.json +5 -0
- package/.xtrm/skills/default/test-planning/SKILL.md +465 -0
- package/.xtrm/skills/default/test-planning/evals/evals.json +23 -0
- package/.xtrm/skills/default/updating-service-skills/SKILL.md +136 -0
- package/.xtrm/skills/default/updating-service-skills/scripts/drift_detector.py +222 -0
- package/.xtrm/skills/default/using-nodes/SKILL.md +333 -0
- package/.xtrm/skills/default/using-quality-gates/SKILL.md +254 -0
- package/.xtrm/skills/default/using-service-skills/SKILL.md +108 -0
- package/.xtrm/skills/default/using-service-skills/scripts/cataloger.py +74 -0
- package/.xtrm/skills/default/using-service-skills/scripts/skill_activator.py +152 -0
- package/.xtrm/skills/default/using-specialists/SKILL.md +848 -0
- package/.xtrm/skills/default/using-specialists/evals/evals.json +68 -0
- package/.xtrm/skills/default/using-tdd/SKILL.md +410 -0
- package/.xtrm/skills/default/using-xtrm/SKILL.md +127 -0
- package/.xtrm/skills/default/xt-debugging/SKILL.md +149 -0
- package/.xtrm/skills/default/xt-end/SKILL.md +297 -0
- package/.xtrm/skills/default/xt-merge/SKILL.md +326 -0
- package/.xtrm/skills/optional/README.txt +2 -0
- package/.xtrm/skills/optional/architecture-design/PACK.json +11 -0
- package/.xtrm/skills/optional/architecture-design/architecture-patterns/SKILL.md +494 -0
- package/.xtrm/skills/optional/architecture-design/architecture-patterns/references/advanced-patterns.md +391 -0
- package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/SKILL.md +473 -0
- package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/assets/few-shot-examples.json +106 -0
- package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/assets/prompt-template-library.md +264 -0
- package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/references/chain-of-thought.md +412 -0
- package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/references/few-shot-learning.md +386 -0
- package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/references/prompt-optimization.md +428 -0
- package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/references/prompt-templates.md +484 -0
- package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/references/system-prompts.md +195 -0
- package/.xtrm/skills/optional/architecture-design/prompt-engineering-patterns/scripts/optimize-prompt.py +279 -0
- package/.xtrm/skills/optional/architecture-design/subagent-driven-development/SKILL.md +277 -0
- package/.xtrm/skills/optional/architecture-design/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
- package/.xtrm/skills/optional/architecture-design/subagent-driven-development/implementer-prompt.md +113 -0
- package/.xtrm/skills/optional/architecture-design/subagent-driven-development/spec-reviewer-prompt.md +61 -0
- package/.xtrm/skills/optional/code-quality/PACK.json +12 -0
- package/.xtrm/skills/optional/code-quality/code-review-excellence/SKILL.md +529 -0
- package/.xtrm/skills/optional/code-quality/multi-reviewer-patterns/SKILL.md +127 -0
- package/.xtrm/skills/optional/code-quality/systematic-debugging/SKILL.md +296 -0
- package/.xtrm/skills/optional/code-quality/verification-before-completion/SKILL.md +139 -0
- package/.xtrm/skills/optional/data-engineering/PACK.json +9 -0
- package/.xtrm/skills/optional/data-engineering/data-analyst/SKILL.md +57 -0
- package/.xtrm/skills/optional/research-methods/PACK.json +12 -0
- package/.xtrm/skills/optional/research-methods/academic-researcher/SKILL.md +269 -0
- package/.xtrm/skills/optional/research-methods/brainstorming/SKILL.md +164 -0
- package/.xtrm/skills/optional/research-methods/brainstorming/scripts/frame-template.html +214 -0
- package/.xtrm/skills/optional/research-methods/brainstorming/scripts/helper.js +88 -0
- package/.xtrm/skills/optional/research-methods/brainstorming/scripts/server.cjs +354 -0
- package/.xtrm/skills/optional/research-methods/brainstorming/scripts/start-server.sh +148 -0
- package/.xtrm/skills/optional/research-methods/brainstorming/scripts/stop-server.sh +56 -0
- package/.xtrm/skills/optional/research-methods/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/.xtrm/skills/optional/research-methods/brainstorming/visual-companion.md +287 -0
- package/.xtrm/skills/optional/research-methods/deep-research/SKILL.md +192 -0
- package/.xtrm/skills/optional/research-methods/fact-checker/SKILL.md +182 -0
- package/.xtrm/skills/optional/security-ops/PACK.json +9 -0
- package/.xtrm/skills/optional/security-ops/security-auditor/SKILL.md +165 -0
- package/.xtrm/skills/optional/xt-optional/PACK.json +16 -0
- package/.xtrm/skills/optional/xt-optional/docker-expert/SKILL.md +409 -0
- package/.xtrm/skills/optional/xt-optional/obsidian-cli/SKILL.md +106 -0
- package/.xtrm/skills/optional/xt-optional/python-testing/SKILL.md +815 -0
- package/.xtrm/skills/optional/xt-optional/senior-backend/SKILL.md +209 -0
- package/.xtrm/skills/optional/xt-optional/senior-backend/references/api_design_patterns.md +103 -0
- package/.xtrm/skills/optional/xt-optional/senior-backend/references/backend_security_practices.md +103 -0
- package/.xtrm/skills/optional/xt-optional/senior-backend/references/database_optimization_guide.md +103 -0
- package/.xtrm/skills/optional/xt-optional/senior-backend/scripts/api_load_tester.py +114 -0
- package/.xtrm/skills/optional/xt-optional/senior-backend/scripts/api_scaffolder.py +114 -0
- package/.xtrm/skills/optional/xt-optional/senior-backend/scripts/database_migration_tool.py +114 -0
- package/.xtrm/skills/optional/xt-optional/senior-data-scientist/SKILL.md +226 -0
- package/.xtrm/skills/optional/xt-optional/senior-data-scientist/references/experiment_design_frameworks.md +80 -0
- package/.xtrm/skills/optional/xt-optional/senior-data-scientist/references/feature_engineering_patterns.md +80 -0
- package/.xtrm/skills/optional/xt-optional/senior-data-scientist/references/statistical_methods_advanced.md +80 -0
- package/.xtrm/skills/optional/xt-optional/senior-data-scientist/scripts/experiment_designer.py +100 -0
- package/.xtrm/skills/optional/xt-optional/senior-data-scientist/scripts/feature_engineering_pipeline.py +100 -0
- package/.xtrm/skills/optional/xt-optional/senior-data-scientist/scripts/model_evaluation_suite.py +100 -0
- package/.xtrm/skills/optional/xt-optional/senior-devops/SKILL.md +209 -0
- package/.xtrm/skills/optional/xt-optional/senior-devops/references/cicd_pipeline_guide.md +103 -0
- package/.xtrm/skills/optional/xt-optional/senior-devops/references/deployment_strategies.md +103 -0
- package/.xtrm/skills/optional/xt-optional/senior-devops/references/infrastructure_as_code.md +103 -0
- package/.xtrm/skills/optional/xt-optional/senior-devops/scripts/deployment_manager.py +114 -0
- package/.xtrm/skills/optional/xt-optional/senior-devops/scripts/pipeline_generator.py +114 -0
- package/.xtrm/skills/optional/xt-optional/senior-devops/scripts/terraform_scaffolder.py +114 -0
- package/.xtrm/skills/optional/xt-optional/senior-security/SKILL.md +209 -0
- package/.xtrm/skills/optional/xt-optional/senior-security/references/cryptography_implementation.md +103 -0
- package/.xtrm/skills/optional/xt-optional/senior-security/references/penetration_testing_guide.md +103 -0
- package/.xtrm/skills/optional/xt-optional/senior-security/references/security_architecture_patterns.md +103 -0
- package/.xtrm/skills/optional/xt-optional/senior-security/scripts/pentest_automator.py +114 -0
- package/.xtrm/skills/optional/xt-optional/senior-security/scripts/security_auditor.py +114 -0
- package/.xtrm/skills/optional/xt-optional/senior-security/scripts/threat_modeler.py +114 -0
- package/CHANGELOG.md +16 -0
- package/README.md +5 -0
- package/cli/dist/index.cjs +862 -614
- package/cli/dist/index.cjs.map +1 -1
- package/cli/package.json +1 -1
- package/package.json +4 -1
- package/.xtrm/extensions/xtrm-ui/format.ts +0 -93
- package/.xtrm/extensions/xtrm-ui/package.json +0 -10
- /package/.xtrm/{extensions → ext-src}/auto-session-name/index.ts +0 -0
- /package/.xtrm/{extensions → ext-src}/auto-session-name/package.json +0 -0
- /package/.xtrm/{extensions → ext-src}/auto-update/index.ts +0 -0
- /package/.xtrm/{extensions → ext-src}/auto-update/package.json +0 -0
- /package/.xtrm/{extensions → ext-src}/beads/index.ts +0 -0
- /package/.xtrm/{extensions → ext-src}/beads/package.json +0 -0
- /package/.xtrm/{extensions → ext-src}/compact-header/index.ts +0 -0
- /package/.xtrm/{extensions → ext-src}/compact-header/package.json +0 -0
- /package/.xtrm/{extensions → ext-src}/core/adapter.ts +0 -0
- /package/.xtrm/{extensions → ext-src}/core/guard-rules.ts +0 -0
- /package/.xtrm/{extensions → ext-src}/core/lib.ts +0 -0
- /package/.xtrm/{extensions → ext-src}/core/logger.ts +0 -0
- /package/.xtrm/{extensions → ext-src}/core/package.json +0 -0
- /package/.xtrm/{extensions → ext-src}/core/runner.ts +0 -0
- /package/.xtrm/{extensions → ext-src}/core/session-state.ts +0 -0
- /package/.xtrm/{extensions → ext-src}/custom-footer/index.ts +0 -0
- /package/.xtrm/{extensions → ext-src}/custom-footer/package.json +0 -0
- /package/.xtrm/{extensions → ext-src}/custom-provider-qwen-cli/index.ts +0 -0
- /package/.xtrm/{extensions → ext-src}/custom-provider-qwen-cli/package.json +0 -0
- /package/.xtrm/{extensions → ext-src}/git-checkpoint/index.ts +0 -0
- /package/.xtrm/{extensions → ext-src}/git-checkpoint/package.json +0 -0
- /package/.xtrm/{extensions → ext-src}/lsp-bootstrap/index.ts +0 -0
- /package/.xtrm/{extensions → ext-src}/lsp-bootstrap/package.json +0 -0
- /package/.xtrm/{extensions → ext-src}/pi-serena-compact/index.ts +0 -0
- /package/.xtrm/{extensions → ext-src}/pi-serena-compact/package.json +0 -0
- /package/.xtrm/{extensions → ext-src}/quality-gates/index.ts +0 -0
- /package/.xtrm/{extensions → ext-src}/quality-gates/package.json +0 -0
- /package/.xtrm/{extensions → ext-src}/service-skills/index.ts +0 -0
- /package/.xtrm/{extensions → ext-src}/service-skills/package.json +0 -0
- /package/.xtrm/{extensions → ext-src}/session-flow/index.ts +0 -0
- /package/.xtrm/{extensions → ext-src}/session-flow/package.json +0 -0
- /package/.xtrm/{extensions → ext-src}/xtrm-loader/index.ts +0 -0
- /package/.xtrm/{extensions → ext-src}/xtrm-loader/package.json +0 -0
- /package/.xtrm/{extensions → ext-src}/xtrm-ui/themes/pidex-dark.json +0 -0
- /package/.xtrm/{extensions → ext-src}/xtrm-ui/themes/pidex-light.json +0 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { parseSpecialist } from "../../../src/specialist/schema.ts";
|
|
3
|
+
|
|
4
|
+
function printUsage(): void {
|
|
5
|
+
console.error("Usage: bun skills/specialist-author/scripts/validate-specialist.ts <path-to.specialist.yaml>");
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
const file = process.argv[2];
|
|
9
|
+
|
|
10
|
+
if (!file) {
|
|
11
|
+
printUsage();
|
|
12
|
+
process.exit(64);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
let yaml: string;
|
|
16
|
+
try {
|
|
17
|
+
yaml = readFileSync(file, "utf8");
|
|
18
|
+
} catch (error) {
|
|
19
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
20
|
+
console.error(`File not found or unreadable: ${file}`);
|
|
21
|
+
console.error(message);
|
|
22
|
+
process.exit(66);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
try {
|
|
26
|
+
await parseSpecialist(yaml);
|
|
27
|
+
console.log(`OK ${file}`);
|
|
28
|
+
} catch (error) {
|
|
29
|
+
console.error(`Invalid ${file}`);
|
|
30
|
+
if (error && typeof error === "object" && "issues" in error && Array.isArray(error.issues)) {
|
|
31
|
+
for (const issue of error.issues) {
|
|
32
|
+
const path = Array.isArray(issue.path) && issue.path.length > 0 ? issue.path.join(".") : "<root>";
|
|
33
|
+
console.error(`- ${path}: ${issue.message}`);
|
|
34
|
+
}
|
|
35
|
+
} else if (error instanceof Error) {
|
|
36
|
+
console.error(error.message);
|
|
37
|
+
} else {
|
|
38
|
+
console.error(String(error));
|
|
39
|
+
}
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sync-docs
|
|
3
|
+
description: >-
|
|
4
|
+
Mode-routed documentation sync for xtrm projects. Three modes: targeted
|
|
5
|
+
(named docs only), area (time-windowed + source scope), full audit.
|
|
6
|
+
Commit-based context gathering, not PR-based. Use whenever docs need
|
|
7
|
+
syncing after code changes, the user asks to "sync docs", "update docs",
|
|
8
|
+
"doc audit", "check docs health", or "detect drift".
|
|
9
|
+
gemini-command: sync-docs
|
|
10
|
+
version: 2.0.0
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# sync-docs
|
|
14
|
+
|
|
15
|
+
Keeps project documentation in sync with code reality.
|
|
16
|
+
|
|
17
|
+
## Overview
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
Phase 0: Route mode/scope — targeted, area, or full audit?
|
|
21
|
+
Phase 1: Gather context — commits, issues, changed files in window
|
|
22
|
+
Phase 2: Inspect with xtrm — what does the docs suite report?
|
|
23
|
+
Phase 3: Detect drift — which docs are stale?
|
|
24
|
+
Phase 4: Plan delta — what to edit vs report
|
|
25
|
+
Phase 5: Execute fixes — update docs within scope
|
|
26
|
+
Phase 6: Validate — confirm no remaining drift
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Audit vs Execute:** Bead-linked runs execute all phases. Non-bead runs with
|
|
30
|
+
"audit/check/report" stop after Phase 4. Non-bead runs with "update/fix/sync"
|
|
31
|
+
execute.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Phase 0: Route Mode and Scope
|
|
36
|
+
|
|
37
|
+
Determine your mode BEFORE gathering context. This controls everything downstream.
|
|
38
|
+
|
|
39
|
+
### Mode precedence
|
|
40
|
+
|
|
41
|
+
| Priority | Condition | Mode |
|
|
42
|
+
|----------|-----------|------|
|
|
43
|
+
| 1 | Prompt contains explicit doc file paths | **Targeted** |
|
|
44
|
+
| 2 | Prompt contains time window + directory/source scope | **Area** |
|
|
45
|
+
| 3 | Everything else | **Full audit** |
|
|
46
|
+
|
|
47
|
+
### Mode behaviors
|
|
48
|
+
|
|
49
|
+
**Targeted** — edit ONLY the named docs. Gather recent context for understanding.
|
|
50
|
+
Report collateral docs that likely also need updates but do NOT edit them.
|
|
51
|
+
|
|
52
|
+
**Area** — derive candidate docs from changed source paths within the time window.
|
|
53
|
+
Use drift detector to confirm staleness. Edit candidate docs within derived scope.
|
|
54
|
+
|
|
55
|
+
**Full audit** — run complete docs audit. Contextualize with recent commits/issues.
|
|
56
|
+
Use drift detector + structure analyzer for comprehensive coverage.
|
|
57
|
+
|
|
58
|
+
### Execution policy
|
|
59
|
+
|
|
60
|
+
| Condition | Action |
|
|
61
|
+
|-----------|--------|
|
|
62
|
+
| `$bead_id` present | Execute (all phases) |
|
|
63
|
+
| No bead + "audit"/"check"/"report"/"what's stale" | Report only (stop Phase 4) |
|
|
64
|
+
| No bead + "update"/"fix"/"sync" | Execute |
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Phase 1: Gather Scoped Context
|
|
69
|
+
|
|
70
|
+
### Context gatherer
|
|
71
|
+
|
|
72
|
+
The context gatherer supports time-window and scope-aware gathering:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# Targeted: specific docs + time window
|
|
76
|
+
python3 .xtrm/skills/default/sync-docs/scripts/context_gatherer.py \
|
|
77
|
+
--doc docs/features.md --doc docs/cli-reference.md --since-hours 24
|
|
78
|
+
|
|
79
|
+
# Area: source scope + time window
|
|
80
|
+
python3 .xtrm/skills/default/sync-docs/scripts/context_gatherer.py \
|
|
81
|
+
--scope-path src/specialist/ --since-hours 24
|
|
82
|
+
|
|
83
|
+
# Area: broader window
|
|
84
|
+
python3 .xtrm/skills/default/sync-docs/scripts/context_gatherer.py \
|
|
85
|
+
--scope-path src/cli/ --since-days 7
|
|
86
|
+
|
|
87
|
+
# Full audit: broad window
|
|
88
|
+
python3 .xtrm/skills/default/sync-docs/scripts/context_gatherer.py \
|
|
89
|
+
--since-days 7
|
|
90
|
+
|
|
91
|
+
# Legacy compat (commit count)
|
|
92
|
+
python3 .xtrm/skills/default/sync-docs/scripts/context_gatherer.py \
|
|
93
|
+
--since-commits 30
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Default:** `--since-hours 24` when no window specified.
|
|
97
|
+
|
|
98
|
+
Outputs JSON with:
|
|
99
|
+
- `mode_hint`: targeted / area / full
|
|
100
|
+
- `window`: type + value + git_since
|
|
101
|
+
- `scope`: doc targets + source paths
|
|
102
|
+
- `git.recent_commits`: commits with changed files
|
|
103
|
+
- `git.changed_files`: unique files ranked by change frequency
|
|
104
|
+
- `git.changed_dirs`: directory-level summary
|
|
105
|
+
- `bd.closed_issues`: recently closed issues
|
|
106
|
+
- `docs`: drift detector results
|
|
107
|
+
|
|
108
|
+
### xtrm docs suite
|
|
109
|
+
|
|
110
|
+
Use for operator-facing inspection:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
xtrm docs list --json
|
|
114
|
+
xtrm docs show --json
|
|
115
|
+
xtrm docs cross-check --json --days 30
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Phase 2: Inspect Docs State
|
|
121
|
+
|
|
122
|
+
Use `xtrm docs` to answer:
|
|
123
|
+
- What docs exist and their metadata?
|
|
124
|
+
- Which have missing or outdated frontmatter?
|
|
125
|
+
- Coverage gaps between recent work and docs?
|
|
126
|
+
|
|
127
|
+
If the CLI already isolates the problem clearly, skip to Phase 4.
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Phase 3: Detect Drift
|
|
132
|
+
|
|
133
|
+
Use the drift detector filtered to your scope:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
# All docs
|
|
137
|
+
python3 .xtrm/skills/default/sync-docs/scripts/drift_detector.py scan --json
|
|
138
|
+
|
|
139
|
+
# With commit window
|
|
140
|
+
python3 .xtrm/skills/default/sync-docs/scripts/drift_detector.py scan --since 30 --json
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
A doc is stale when:
|
|
144
|
+
1. It declares `source_of_truth_for` globs in frontmatter
|
|
145
|
+
2. AND commits affecting matching files exist AFTER the `synced_at` hash
|
|
146
|
+
|
|
147
|
+
### Staleness model
|
|
148
|
+
|
|
149
|
+
- **Time windows** decide what recent work to consider now (relevance)
|
|
150
|
+
- **`synced_at` / hash-based drift** decides whether a doc is actually stale (truth)
|
|
151
|
+
- **Fallback**: when metadata is missing, time-window heuristics prioritize review
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Phase 4: Plan Delta
|
|
156
|
+
|
|
157
|
+
Before editing, identify:
|
|
158
|
+
- Docs to update (within scope)
|
|
159
|
+
- Docs to leave untouched
|
|
160
|
+
- Collateral docs to report only (targeted mode)
|
|
161
|
+
|
|
162
|
+
**If audit-only, stop here and output the report.**
|
|
163
|
+
|
|
164
|
+
Include both:
|
|
165
|
+
- `xtrm docs` findings (operator-facing)
|
|
166
|
+
- Python analyzer findings (drift/structure enforcement)
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Phase 5: Execute Fixes
|
|
171
|
+
|
|
172
|
+
| Situation | Action |
|
|
173
|
+
|-----------|--------|
|
|
174
|
+
| Stale docs file | Update content + bump `version` + `updated` |
|
|
175
|
+
| README bloated | Extract large sections to focused docs files |
|
|
176
|
+
| Missing docs file | Generate scaffold via `validate_doc.py --generate` |
|
|
177
|
+
| Stale CHANGELOG | Add entry with changelog script |
|
|
178
|
+
| Invalid schema | Fix frontmatter |
|
|
179
|
+
|
|
180
|
+
### After each doc update
|
|
181
|
+
|
|
182
|
+
Stamp the sync checkpoint:
|
|
183
|
+
```bash
|
|
184
|
+
python3 .xtrm/skills/default/sync-docs/scripts/drift_detector.py update-sync <doc-path>
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Targeted mode boundary
|
|
188
|
+
|
|
189
|
+
In targeted mode, ONLY edit the named docs. If you discover other docs need
|
|
190
|
+
updating, list them in your output as "Suggested follow-ups" — do not edit them.
|
|
191
|
+
|
|
192
|
+
### Structure analysis (full audit only)
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
python3 .xtrm/skills/default/sync-docs/scripts/doc_structure_analyzer.py
|
|
196
|
+
python3 .xtrm/skills/default/sync-docs/scripts/doc_structure_analyzer.py --fix
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Add changelog entry
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
python3 .xtrm/skills/default/sync-docs/scripts/changelog/add_entry.py \
|
|
203
|
+
CHANGELOG.md Added "Describe the documentation update"
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## Phase 6: Validate
|
|
209
|
+
|
|
210
|
+
Re-run both layers:
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
xtrm docs list --json
|
|
214
|
+
xtrm docs cross-check --json --days 30
|
|
215
|
+
python3 .xtrm/skills/default/sync-docs/scripts/drift_detector.py scan --json
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Confirm updated docs no longer show as stale.
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## Frontmatter Schema
|
|
223
|
+
|
|
224
|
+
All `docs/*.md` files require valid YAML frontmatter.
|
|
225
|
+
|
|
226
|
+
### Required Fields
|
|
227
|
+
|
|
228
|
+
| Field | Format | Example |
|
|
229
|
+
|-------|--------|---------|
|
|
230
|
+
| `title` | string | `"Hooks Reference"` |
|
|
231
|
+
| `scope` | string | `hooks` |
|
|
232
|
+
| `category` | enum | `reference` |
|
|
233
|
+
| `version` | semver | `1.0.0` |
|
|
234
|
+
| `updated` | date | `2026-03-22` |
|
|
235
|
+
|
|
236
|
+
### Valid Categories
|
|
237
|
+
|
|
238
|
+
`api` | `architecture` | `guide` | `overview` | `plan` | `reference`
|
|
239
|
+
|
|
240
|
+
### Optional Fields
|
|
241
|
+
|
|
242
|
+
| Field | Format | Use |
|
|
243
|
+
|-------|--------|-----|
|
|
244
|
+
| `description` | string | Brief summary |
|
|
245
|
+
| `source_of_truth_for` | list of globs | Link to code areas |
|
|
246
|
+
| `synced_at` | git hash | Drift checkpoint |
|
|
247
|
+
| `domain` | list of tags | Categorization |
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## Command Selection Rules
|
|
252
|
+
|
|
253
|
+
**`xtrm docs` first** for understanding current docs state:
|
|
254
|
+
- `xtrm docs list --json` — inventory
|
|
255
|
+
- `xtrm docs show --json` — frontmatter inspection
|
|
256
|
+
- `xtrm docs cross-check --json` — drift, coverage gaps
|
|
257
|
+
|
|
258
|
+
**Python scripts** for enforcement and sync internals:
|
|
259
|
+
- `drift_detector.py` — `synced_at` / `source_of_truth_for` checks
|
|
260
|
+
- `doc_structure_analyzer.py` — README bloat, missing docs, changelog gaps
|
|
261
|
+
- `validate_metadata.py` / `validate_doc.py` — schema/index validation
|
|
262
|
+
- `context_gatherer.py` — scoped commit/issue context for sync decisions
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "sync-docs",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "I just closed a bunch of bd issues this sprint and merged 3 PRs. The README.md is getting long — can you sync the docs and make sure everything's in order? Use sync-docs.",
|
|
7
|
+
"expected_output": "Runs context_gatherer.py and doc_structure_analyzer.py, reports what was found (closed issues, PRs, any drift), identifies README extraction candidates or MISSING docs/ files, and either fixes them or gives a clear plan with next steps.",
|
|
8
|
+
"files": [],
|
|
9
|
+
"assertions": [
|
|
10
|
+
{
|
|
11
|
+
"id": "ran-context-gatherer",
|
|
12
|
+
"description": "Ran context_gatherer.py and reported bd closed issues or merged PRs from the output",
|
|
13
|
+
"check": "result.md mentions context_gatherer or bd closed issues or merged PRs with specific data"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"id": "ran-structure-analyzer",
|
|
17
|
+
"description": "Ran doc_structure_analyzer.py and used its output to identify doc issues",
|
|
18
|
+
"check": "result.md references MISSING, STALE, EXTRACTABLE, or BLOATED status from the analyzer"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "concrete-action",
|
|
22
|
+
"description": "Produced at least one concrete recommendation or action (not just a vague summary)",
|
|
23
|
+
"check": "result.md names a specific file (e.g. docs/hooks.md) or section with a specific next step"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "used-skill-scripts",
|
|
27
|
+
"description": "Used the skill scripts rather than just reading files manually",
|
|
28
|
+
"check": "result.md shows script execution output, not just manual file reading"
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": 2,
|
|
34
|
+
"prompt": "Run sync-docs --fix on this project and remember what you did with bd.",
|
|
35
|
+
"expected_output": "Runs doc_structure_analyzer.py --fix --bd-remember, creates scaffold files for any missing docs/ subsystems, persists a bd memory with the summary, then validates the created files with validate_doc.py.",
|
|
36
|
+
"files": [],
|
|
37
|
+
"assertions": [
|
|
38
|
+
{
|
|
39
|
+
"id": "ran-fix-flag",
|
|
40
|
+
"description": "Ran doc_structure_analyzer.py with --fix flag",
|
|
41
|
+
"check": "result.md shows the --fix command was executed"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": "ran-bd-remember",
|
|
45
|
+
"description": "Ran with --bd-remember or manually ran bd remember with a summary",
|
|
46
|
+
"check": "result.md shows bd remember was called and reports the memory key"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "scaffold-created",
|
|
50
|
+
"description": "At least one scaffold file was created in docs/",
|
|
51
|
+
"check": "result.md lists a docs/*.md file created, OR reports no gaps found (valid outcome)"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "validated-schema",
|
|
55
|
+
"description": "Ran validate_doc.py on created files to confirm schema",
|
|
56
|
+
"check": "result.md shows validate_doc.py was run and reports pass/fail for created files"
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"id": 3,
|
|
62
|
+
"prompt": "Do a doc audit. I think the README has sections that should be in docs/ but I'm not sure which ones.",
|
|
63
|
+
"expected_output": "Runs the full 5-phase sync-docs workflow: gathers context, runs drift detection, runs doc_structure_analyzer.py, and identifies EXTRACTABLE/BLOATED sections with specific suggestions for what goes in which docs/ file before recommending or making changes.",
|
|
64
|
+
"files": [],
|
|
65
|
+
"assertions": [
|
|
66
|
+
{
|
|
67
|
+
"id": "ran-analyzer",
|
|
68
|
+
"description": "Ran doc_structure_analyzer.py and referenced its structured output",
|
|
69
|
+
"check": "result.md cites the analyzer output (EXTRACTABLE, BLOATED, line count, or specific section names from the report)"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"id": "named-specific-sections",
|
|
73
|
+
"description": "Named specific README sections with their suggested docs/ destination",
|
|
74
|
+
"check": "result.md lists at least 2 specific sections (e.g. '## Policy System → docs/policies.md') not just generic advice"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "actionable-report",
|
|
78
|
+
"description": "Report is actionable — tells user exactly what to do next, not just observations",
|
|
79
|
+
"check": "result.md includes a prioritized list or clear next steps, not just 'the README could be shorter'"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "no-edits-made",
|
|
83
|
+
"description": "Did not edit or create any files (audit only)",
|
|
84
|
+
"check": "result.md does not claim to have modified README.md or created docs/ files"
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
}
|
|
88
|
+
]
|
|
89
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# docs/ Structure Guide
|
|
2
|
+
|
|
3
|
+
This reference defines what belongs in each focused docs/ file vs README.md.
|
|
4
|
+
|
|
5
|
+
## The Rule
|
|
6
|
+
|
|
7
|
+
**README.md** is an entry point — a quick-start and orientation map. It should be < 200 lines. Anything that requires more than a few bullet points belongs in a focused docs/ file.
|
|
8
|
+
|
|
9
|
+
**docs/** holds focused, public-facing SSOT files for each subsystem. Each file:
|
|
10
|
+
- Has YAML frontmatter (see `schema.md`)
|
|
11
|
+
- Covers exactly one subsystem or concern
|
|
12
|
+
- Is linked from README.md with a single line
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## What Goes Where
|
|
17
|
+
|
|
18
|
+
| Content Type | Location | When to Create |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| Quick start, one-liner install | `README.md` | Always |
|
|
21
|
+
| Feature overview table | `README.md` | Always, < 20 lines |
|
|
22
|
+
| Hook events, scripts, behavior | `docs/hooks.md` | When hooks/ dir exists |
|
|
23
|
+
| Pi/Copilot extension catalog | `docs/pi-extensions.md` | When config/pi/extensions/ exists |
|
|
24
|
+
| System architecture, components | `docs/architecture.md` | When > 2 major subsystems |
|
|
25
|
+
| Policy rules and enforcement | `docs/policies.md` | When policies/ dir exists |
|
|
26
|
+
| MCP server config and usage | `docs/mcp-servers.md` | When .mcp.json or mcp servers exist |
|
|
27
|
+
| Skills catalog | `docs/skills.md` | When skills/ dir has > 5 skills |
|
|
28
|
+
| CLI commands reference | `docs/cli-reference.md` | When CLI has > 10 commands |
|
|
29
|
+
| Troubleshooting and FAQs | `docs/troubleshooting.md` | When recurring issues exist |
|
|
30
|
+
| In-progress work plans | `docs/plans/` | Always for planning docs |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Standard File Shapes
|
|
35
|
+
|
|
36
|
+
### docs/hooks.md
|
|
37
|
+
Covers: hook events, what triggers each hook, which scripts run, output format.
|
|
38
|
+
Section outline:
|
|
39
|
+
```
|
|
40
|
+
## Overview
|
|
41
|
+
## Hook Events
|
|
42
|
+
## Scripts Reference
|
|
43
|
+
## Adding a New Hook
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### docs/pi-extensions.md
|
|
47
|
+
Covers: what Pi extensions are installed, their events, behavior, and configuration.
|
|
48
|
+
Section outline:
|
|
49
|
+
```
|
|
50
|
+
## Overview
|
|
51
|
+
## Installed Extensions
|
|
52
|
+
## Extension Events
|
|
53
|
+
## Configuration
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### docs/architecture.md
|
|
57
|
+
Covers: system overview, key components, data flow, dependency diagram.
|
|
58
|
+
Section outline:
|
|
59
|
+
```
|
|
60
|
+
## System Overview
|
|
61
|
+
## Key Components
|
|
62
|
+
## Data Flow
|
|
63
|
+
## Directory Structure
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### docs/policies.md
|
|
67
|
+
Covers: what policies exist, what each enforces, runtime targets.
|
|
68
|
+
Section outline:
|
|
69
|
+
```
|
|
70
|
+
## Overview
|
|
71
|
+
## Policy Files
|
|
72
|
+
## Policy Compiler
|
|
73
|
+
## Adding a Policy
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Detecting When README is Too Big
|
|
79
|
+
|
|
80
|
+
The `doc_structure_analyzer.py` script flags README as `BLOATED` when:
|
|
81
|
+
1. Line count > 200, AND
|
|
82
|
+
2. At least one section has a matching `docs/` file that doesn't exist yet
|
|
83
|
+
|
|
84
|
+
The `EXTRACTABLE` status means sections are present but README isn't over threshold yet — worth noting but not urgent.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Extraction Process
|
|
89
|
+
|
|
90
|
+
When extracting a section from README to docs/:
|
|
91
|
+
|
|
92
|
+
1. Identify the target section heading and its body in `README.md`
|
|
93
|
+
2. Create `docs/X.md` with `validate_doc.py --generate`
|
|
94
|
+
3. Move the section content into the new file
|
|
95
|
+
4. Replace the original README section with:
|
|
96
|
+
```markdown
|
|
97
|
+
See [docs/X.md](docs/X.md) for the full reference.
|
|
98
|
+
```
|
|
99
|
+
5. Run `validate_doc.py docs/X.md` to confirm schema
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# docs/ File Schema
|
|
2
|
+
|
|
3
|
+
Every file in `docs/` must have YAML frontmatter. This is enforced by `validate_doc.py`.
|
|
4
|
+
|
|
5
|
+
## Frontmatter Fields
|
|
6
|
+
|
|
7
|
+
```yaml
|
|
8
|
+
---
|
|
9
|
+
title: Human Readable Title # required — clear, descriptive
|
|
10
|
+
scope: kebab-case-identifier # required — unique slug for this doc
|
|
11
|
+
category: reference # required — see valid values below
|
|
12
|
+
version: 1.0.0 # required — semver (x.y.z)
|
|
13
|
+
updated: 2026-03-18 # required — ISO date of last update
|
|
14
|
+
description: "One-line summary" # optional
|
|
15
|
+
source_of_truth_for: # optional — glob patterns this doc describes
|
|
16
|
+
- "hooks/**/*.mjs"
|
|
17
|
+
- "policies/*.json"
|
|
18
|
+
domain: [hooks, claude, policy] # optional — cross-cutting tags
|
|
19
|
+
---
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Required Fields
|
|
23
|
+
|
|
24
|
+
| Field | Type | Description | Example |
|
|
25
|
+
|-------|------|-------------|---------|
|
|
26
|
+
| `title` | string | Clear, descriptive title | "Hooks Reference" |
|
|
27
|
+
| `scope` | string | Unique kebab-case slug | "hooks" |
|
|
28
|
+
| `category` | enum | Document type | "reference" |
|
|
29
|
+
| `version` | semver | x.y.z — bump on every update | "1.2.0" |
|
|
30
|
+
| `updated` | date | YYYY-MM-DD of last change | "2026-03-18" |
|
|
31
|
+
|
|
32
|
+
## Category Values
|
|
33
|
+
|
|
34
|
+
| Value | Purpose |
|
|
35
|
+
|---|---|
|
|
36
|
+
| `reference` | Look-up table, cheat sheet, technical spec |
|
|
37
|
+
| `guide` | Step-by-step how-to documentation |
|
|
38
|
+
| `architecture` | System design and component overview |
|
|
39
|
+
| `api` | API contracts, interfaces, schemas |
|
|
40
|
+
| `plan` | Implementation plan or roadmap |
|
|
41
|
+
| `overview` | Summary introduction to a subsystem |
|
|
42
|
+
|
|
43
|
+
## Optional Fields
|
|
44
|
+
|
|
45
|
+
### source_of_truth_for
|
|
46
|
+
A list of glob patterns (fnmatch syntax) pointing to the source files this doc describes. Used by `drift_detector.py` and `doc_structure_analyzer.py` to detect when the source changed but the doc wasn't updated.
|
|
47
|
+
|
|
48
|
+
```yaml
|
|
49
|
+
source_of_truth_for:
|
|
50
|
+
- "hooks/**/*.mjs"
|
|
51
|
+
- "policies/*.json"
|
|
52
|
+
- "config/pi/extensions/**/*.ts"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### domain
|
|
56
|
+
Tags for cross-cutting concerns. Useful for searching related docs.
|
|
57
|
+
|
|
58
|
+
```yaml
|
|
59
|
+
domain: [hooks, claude, pi, enforcement]
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Version Bumping Rules
|
|
63
|
+
|
|
64
|
+
| Change | Bump |
|
|
65
|
+
|---|---|
|
|
66
|
+
| Fix a typo or outdated detail | `patch` (1.0.0 → 1.0.1) |
|
|
67
|
+
| Add a new section | `minor` (1.0.0 → 1.1.0) |
|
|
68
|
+
| Full rewrite or restructure | `major` (1.0.0 → 2.0.0) |
|
|
69
|
+
|
|
70
|
+
Always update `updated:` to today's date alongside the version bump.
|
|
71
|
+
|
|
72
|
+
## INDEX Block
|
|
73
|
+
|
|
74
|
+
`validate_doc.py` auto-generates a navigation table from `##` headings:
|
|
75
|
+
|
|
76
|
+
```markdown
|
|
77
|
+
<!-- INDEX: auto-generated by validate_doc.py — do not edit manually -->
|
|
78
|
+
| Section | Summary |
|
|
79
|
+
|---|---|
|
|
80
|
+
| [Overview](#overview) | ... |
|
|
81
|
+
| [Hook Events](#hook-events) | ... |
|
|
82
|
+
<!-- END INDEX -->
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
This block is regenerated every time `validate_doc.py` runs on the file. Do not edit it manually.
|
|
86
|
+
|
|
87
|
+
## Complete Example
|
|
88
|
+
|
|
89
|
+
```yaml
|
|
90
|
+
---
|
|
91
|
+
title: Hooks Reference
|
|
92
|
+
scope: hooks
|
|
93
|
+
category: reference
|
|
94
|
+
version: 1.1.0
|
|
95
|
+
updated: 2026-03-18
|
|
96
|
+
description: "All hook events, scripts, and behavior for the xtrm plugin"
|
|
97
|
+
source_of_truth_for:
|
|
98
|
+
- "hooks/**/*.mjs"
|
|
99
|
+
- "policies/beads.json"
|
|
100
|
+
- "policies/main-guard.json"
|
|
101
|
+
domain: [hooks, claude, enforcement]
|
|
102
|
+
---
|
|
103
|
+
```
|