@hasna/skills 0.1.60 → 0.1.61
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/README.md +189 -60
- package/agent-skills/README.md +41 -0
- package/agent-skills/fleet-package-rollout/SKILL.md +169 -0
- package/agent-skills/inbox/SKILL.md +25 -0
- package/agent-skills/inbox/scripts/inbox +109 -0
- package/agent-skills/inbox/tests/test_registered_sender_id.sh +92 -0
- package/agent-skills/inbox-monitor/SKILL.md +41 -0
- package/agent-skills/inbox-monitor/scripts/inbox_monitor.sh +91 -0
- package/agent-skills/inbox-monitor/scripts/test_inbox_monitor.sh +71 -0
- package/agent-skills/merge-pr/SKILL.md +85 -0
- package/agent-skills/merge-pr/references/merge-safety.md +82 -0
- package/agent-skills/merge-pr/scripts/merge_pr_guard.py +694 -0
- package/agent-skills/merge-pr/scripts/test_merge_pr_guard.py +647 -0
- package/agent-skills/merge-pr/tests/fixtures/multi-commit-synthesized.json +28 -0
- package/agent-skills/merge-pr/tests/fixtures/trailer-free-provider.json +28 -0
- package/agent-skills/skill-goal-execute/SKILL.md +115 -0
- package/agent-skills/skill-login/SKILL.md +109 -0
- package/agent-skills/skill-project-create/SKILL.md +91 -0
- package/agent-skills/skill-publish/SKILL.md +207 -0
- package/bin/index.js +2406 -3336
- package/bin/mcp.js +1127 -2641
- package/bin/migrate.js +955 -33
- package/bin/server.js +2367 -1989
- package/bin/worker.js +2089 -151
- package/dist/cli/cli.test-utils.d.ts +13 -2
- package/dist/cli/commands/publish.d.ts +30 -0
- package/dist/cli/commands/registry.d.ts +8 -0
- package/dist/index.d.ts +8 -6
- package/dist/index.js +1734 -2720
- package/dist/lib/agent-sync.d.ts +123 -0
- package/dist/lib/api-url.d.ts +34 -0
- package/dist/lib/auth-store.d.ts +21 -5
- package/dist/lib/blog-article.d.ts +37 -0
- package/dist/lib/config.d.ts +56 -2
- package/dist/lib/content-scan.d.ts +62 -9
- package/dist/lib/discovery.d.ts +10 -10
- package/dist/lib/doc-derived-counts.d.ts +56 -0
- package/dist/lib/feedback.d.ts +7 -0
- package/dist/lib/file-bytes.d.ts +43 -0
- package/dist/lib/hosted-skill-set.d.ts +69 -0
- package/dist/lib/infra-identifiers.d.ts +144 -0
- package/dist/lib/installer.d.ts +20 -6
- package/dist/lib/native-storage.d.ts +14 -11
- package/dist/lib/packlist.d.ts +13 -0
- package/dist/lib/portable-skills-files.d.ts +25 -0
- package/dist/lib/portable-skills-types.d.ts +105 -0
- package/dist/lib/portable-skills.d.ts +52 -103
- package/dist/lib/pull.d.ts +41 -0
- package/dist/lib/registry-merge.d.ts +57 -0
- package/dist/lib/registry-types.d.ts +1 -14
- package/dist/lib/registry.d.ts +6 -3
- package/dist/lib/remote-client.d.ts +15 -1
- package/dist/lib/remote-registry.d.ts +1 -1
- package/dist/lib/remote-run-contract.d.ts +0 -7
- package/dist/lib/retired-settings.d.ts +100 -0
- package/dist/lib/run-state.d.ts +14 -0
- package/dist/lib/skill-aliases.d.ts +0 -12
- package/dist/lib/skill-bundle.d.ts +37 -0
- package/dist/lib/vendor-host-code-scan.d.ts +66 -0
- package/dist/lib/vendor-host-folding.d.ts +40 -0
- package/dist/lib/vendor-host-guard.d.ts +47 -0
- package/dist/lib/vendor-host-package.d.ts +42 -0
- package/dist/lib/vendor-host-policy.d.ts +96 -0
- package/dist/lib/vendor-host-url.d.ts +81 -0
- package/dist/mcp/mcp-test-client.d.ts +18 -0
- package/dist/storage.d.ts +1 -1
- package/dist/storage.js +104 -51
- package/docs/skill-standard.md +1 -1
- package/migrations/postgres/0002_org_scoped_skill_registry.sql +72 -0
- package/migrations/sqlite/0001_open_skills_self_hosted.sql +150 -0
- package/migrations/sqlite/0002_org_scoped_skill_registry.sql +47 -0
- package/package.json +4 -4
- package/skills/_common/http-client.ts +17 -2
- package/skills/_common/install.sh +2 -2
- package/skills/_common/installer.ts +4 -5
- package/skills/_common/skill-install.ts +3 -3
- package/skills/ad-creative-pack/SKILL.md +28 -18
- package/skills/ad-creative-pack/package.json +1 -2
- package/skills/analyze-data/SKILL.md +1 -1
- package/skills/analyze-data/src/formatters.ts +2 -2
- package/skills/api-docs-portal/SKILL.md +62 -24
- package/skills/api-docs-portal/package.json +28 -4
- package/skills/api-docs-portal/src/index.ts +919 -0
- package/skills/audio-extract/SKILL.md +1 -1
- package/skills/blog-article/SKILL.md +32 -22
- package/skills/blog-article/package.json +1 -2
- package/skills/brand-assets/SKILL.md +94 -33
- package/skills/brand-assets/package.json +28 -4
- package/skills/brand-assets/src/cli.ts +155 -0
- package/skills/brand-assets/src/constants.ts +8 -0
- package/skills/brand-assets/src/extract.ts +236 -0
- package/skills/brand-assets/src/index.ts +668 -0
- package/skills/brand-assets/src/types.ts +59 -0
- package/skills/brand-kit/SKILL.md +27 -18
- package/skills/brand-kit/package.json +1 -2
- package/skills/compress-video/SKILL.md +1 -1
- package/skills/contract-review-report/SKILL.md +27 -18
- package/skills/contract-review-report/package.json +1 -2
- package/skills/customer-feedback-report/SKILL.md +27 -19
- package/skills/customer-feedback-report/package.json +1 -2
- package/skills/email-sequence/SKILL.md +26 -17
- package/skills/email-sequence/package.json +1 -2
- package/skills/generate-sitemap/src/index.ts +1 -1
- package/skills/invoice-reconciliation/SKILL.md +75 -19
- package/skills/invoice-reconciliation/package.json +29 -4
- package/skills/invoice-reconciliation/src/index.ts +743 -0
- package/skills/{convert → invoice-reconciliation}/tsconfig.json +3 -1
- package/skills/landing-page-pack/SKILL.md +27 -19
- package/skills/landing-page-pack/package.json +1 -2
- package/skills/logo-design/SKILL.md +69 -26
- package/skills/logo-design/package.json +28 -4
- package/skills/logo-design/src/cli.ts +132 -0
- package/skills/logo-design/src/constants.ts +5 -0
- package/skills/logo-design/src/docs.ts +102 -0
- package/skills/logo-design/src/geometry.ts +324 -0
- package/skills/logo-design/src/index.ts +212 -0
- package/skills/logo-design/src/palette.ts +258 -0
- package/skills/logo-design/src/types.ts +50 -0
- package/skills/logo-design/tsconfig.json +11 -2
- package/skills/market-research-report/SKILL.md +28 -18
- package/skills/market-research-report/package.json +2 -3
- package/skills/meeting-pack/SKILL.md +26 -17
- package/skills/meeting-pack/package.json +1 -2
- package/skills/merge-pdfs/src/index.ts +1 -1
- package/skills/migration-plan-pack/SKILL.md +30 -19
- package/skills/migration-plan-pack/package.json +1 -2
- package/skills/one-page-website/SKILL.md +105 -23
- package/skills/one-page-website/package.json +27 -4
- package/skills/one-page-website/src/design.ts +336 -0
- package/skills/one-page-website/src/docs.ts +159 -0
- package/skills/one-page-website/src/index.ts +357 -0
- package/skills/one-page-website/src/page.ts +340 -0
- package/skills/one-page-website/src/styles.ts +508 -0
- package/skills/one-page-website/src/types.ts +78 -0
- package/skills/one-page-website/tsconfig.json +11 -2
- package/skills/pdf-generate/SKILL.md +1 -1
- package/skills/pdf-to-dataset/SKILL.md +64 -21
- package/skills/pdf-to-dataset/package.json +30 -4
- package/skills/pdf-to-dataset/src/index.ts +790 -0
- package/skills/{emoji → pdf-to-dataset}/tsconfig.json +3 -4
- package/skills/pdf-to-markdown/SKILL.md +55 -23
- package/skills/pdf-to-markdown/package.json +28 -4
- package/skills/pdf-to-markdown/src/index.ts +694 -0
- package/skills/pdf-to-markdown/tsconfig.json +11 -4
- package/skills/performance-audit-report/SKILL.md +24 -17
- package/skills/performance-audit-report/package.json +1 -2
- package/skills/pitch-deck/SKILL.md +27 -19
- package/skills/pitch-deck/package.json +1 -2
- package/skills/product-mockup/SKILL.md +85 -23
- package/skills/product-mockup/package.json +25 -4
- package/skills/product-mockup/src/cli.ts +150 -0
- package/skills/product-mockup/src/design.ts +151 -0
- package/skills/product-mockup/src/docs.ts +134 -0
- package/skills/product-mockup/src/index.ts +182 -0
- package/skills/product-mockup/src/render.ts +407 -0
- package/skills/product-mockup/src/types.ts +66 -0
- package/skills/product-mockup/tsconfig.json +11 -2
- package/skills/proposal-pack/SKILL.md +27 -19
- package/skills/proposal-pack/package.json +2 -3
- package/skills/repo-onboarding-report/SKILL.md +26 -16
- package/skills/repo-onboarding-report/package.json +1 -2
- package/skills/security-audit/src/index.ts +1 -1
- package/skills/security-audit-report/SKILL.md +28 -16
- package/skills/security-audit-report/package.json +2 -3
- package/skills/seo-content-pack/SKILL.md +27 -17
- package/skills/seo-content-pack/package.json +1 -2
- package/skills/slide-deck-generator/SKILL.md +70 -21
- package/skills/slide-deck-generator/package.json +31 -4
- package/skills/slide-deck-generator/src/cli.ts +133 -0
- package/skills/slide-deck-generator/src/index.ts +148 -0
- package/skills/slide-deck-generator/src/model.ts +307 -0
- package/skills/slide-deck-generator/src/pptx.ts +143 -0
- package/skills/slide-deck-generator/src/render.ts +248 -0
- package/skills/slide-deck-generator/src/types.ts +114 -0
- package/skills/slide-deck-generator/src/utils.ts +53 -0
- package/skills/slide-deck-generator/tsconfig.json +17 -0
- package/skills/social-content-calendar/SKILL.md +27 -18
- package/skills/social-content-calendar/package.json +1 -2
- package/skills/split-pdf/src/index.ts +1 -1
- package/skills/test-suite-generator/SKILL.md +26 -16
- package/skills/test-suite-generator/package.json +2 -3
- package/skills/todos-plan/SKILL.md +339 -170
- package/skills/video-highlight-pack/SKILL.md +27 -17
- package/skills/video-highlight-pack/package.json +1 -2
- package/dist/cli/onboarding.d.ts +0 -13
- package/dist/lib/hosted-availability.d.ts +0 -13
- package/dist/lib/pricing.d.ts +0 -89
- package/skills/academic-journal-matcher/CLAUDE.md +0 -19
- package/skills/academic-journal-matcher/package.json +0 -27
- package/skills/academic-journal-matcher/src/index.ts +0 -86
- package/skills/academic-journal-matcher/tsconfig.json +0 -10
- package/skills/action-item-router/CLAUDE.md +0 -19
- package/skills/action-item-router/package.json +0 -27
- package/skills/action-item-router/src/index.ts +0 -304
- package/skills/action-item-router/tsconfig.json +0 -10
- package/skills/ad-creative-generator/CLAUDE.md +0 -19
- package/skills/ad-creative-generator/package.json +0 -27
- package/skills/ad-creative-generator/src/index.ts +0 -419
- package/skills/ad-creative-generator/tsconfig.json +0 -10
- package/skills/advanced-math/CLAUDE.md +0 -19
- package/skills/advanced-math/package.json +0 -29
- package/skills/advanced-math/src/calculators.ts +0 -118
- package/skills/advanced-math/src/cli.ts +0 -130
- package/skills/advanced-math/src/conversion.ts +0 -90
- package/skills/advanced-math/src/finance.ts +0 -75
- package/skills/advanced-math/src/formatting.ts +0 -95
- package/skills/advanced-math/src/index.ts +0 -133
- package/skills/advanced-math/src/runtime.ts +0 -49
- package/skills/advanced-math/src/symbolic.ts +0 -110
- package/skills/advanced-math/src/types.ts +0 -36
- package/skills/advanced-math/tsconfig.json +0 -10
- package/skills/anomaly-investigator/CLAUDE.md +0 -19
- package/skills/anomaly-investigator/package.json +0 -27
- package/skills/anomaly-investigator/src/index.ts +0 -311
- package/skills/anomaly-investigator/tsconfig.json +0 -10
- package/skills/apidocs/.env.example +0 -8
- package/skills/apidocs/CLAUDE.md +0 -278
- package/skills/apidocs/LICENSE +0 -192
- package/skills/apidocs/README.md +0 -196
- package/skills/apidocs/api-docs-list.json +0 -186
- package/skills/apidocs/package.json +0 -53
- package/skills/apidocs/scripts/crawl-all.ts +0 -157
- package/skills/apidocs/scripts/publish.ts +0 -210
- package/skills/apidocs/src/commands/add.ts +0 -279
- package/skills/apidocs/src/commands/endpoints.ts +0 -157
- package/skills/apidocs/src/commands/list.ts +0 -51
- package/skills/apidocs/src/commands/query.ts +0 -63
- package/skills/apidocs/src/commands/remove.ts +0 -39
- package/skills/apidocs/src/commands/sync.ts +0 -227
- package/skills/apidocs/src/index.ts +0 -3
- package/skills/apidocs/src/lib/crawler.ts +0 -427
- package/skills/apidocs/src/lib/discovery.ts +0 -244
- package/skills/apidocs/src/lib/embeddings.ts +0 -136
- package/skills/apidocs/src/lib/endpoint-extractor.ts +0 -359
- package/skills/apidocs/src/lib/html-to-md.ts +0 -163
- package/skills/apidocs/src/lib/parser.ts +0 -288
- package/skills/apidocs/src/lib/search.ts +0 -189
- package/skills/apidocs/src/lib/storage.ts +0 -242
- package/skills/apidocs/src/lib/vectors-local.ts +0 -220
- package/skills/apidocs/src/lib/vectors-s3.ts +0 -255
- package/skills/apidocs/src/lib/vectors.ts +0 -97
- package/skills/apidocs/src/types/index.ts +0 -297
- package/skills/apidocs/src/utils/output.ts +0 -132
- package/skills/apidocs/src/utils/paths.ts +0 -126
- package/skills/apidocs/tsconfig.json +0 -24
- package/skills/audio/SKILL.md +0 -35
- package/skills/audio/package.json +0 -11
- package/skills/audio-cleanup-lab/CLAUDE.md +0 -3
- package/skills/audio-cleanup-lab/SKILL.md +0 -81
- package/skills/audio-cleanup-lab/package.json +0 -23
- package/skills/audio-cleanup-lab/src/index.ts +0 -274
- package/skills/audio-cleanup-lab/tsconfig.json +0 -14
- package/skills/audio-transcript-pack/SKILL.md +0 -43
- package/skills/audio-transcript-pack/package.json +0 -11
- package/skills/banner-ad-suite/CLAUDE.md +0 -19
- package/skills/banner-ad-suite/package.json +0 -27
- package/skills/banner-ad-suite/src/index.ts +0 -331
- package/skills/banner-ad-suite/tsconfig.json +0 -10
- package/skills/benchmark-finder/CLAUDE.md +0 -19
- package/skills/benchmark-finder/package.json +0 -27
- package/skills/benchmark-finder/src/index.ts +0 -294
- package/skills/benchmark-finder/tsconfig.json +0 -10
- package/skills/blog-topic-cluster/CLAUDE.md +0 -19
- package/skills/blog-topic-cluster/package.json +0 -27
- package/skills/blog-topic-cluster/src/index.ts +0 -274
- package/skills/blog-topic-cluster/tsconfig.json +0 -10
- package/skills/brand-photo-shoot/SKILL.md +0 -28
- package/skills/brand-photo-shoot/package.json +0 -11
- package/skills/brand-style-guide/CLAUDE.md +0 -20
- package/skills/brand-style-guide/SKILL.md +0 -13
- package/skills/brand-style-guide/package.json +0 -26
- package/skills/brand-style-guide/src/index.ts +0 -288
- package/skills/brand-style-guide/tsconfig.json +0 -22
- package/skills/brand-voice-audit/CLAUDE.md +0 -19
- package/skills/brand-voice-audit/package.json +0 -27
- package/skills/brand-voice-audit/src/index.ts +0 -302
- package/skills/brand-voice-audit/tsconfig.json +0 -10
- package/skills/browse/LICENSE +0 -192
- package/skills/browse/README.md +0 -25
- package/skills/browse/SKILL.md +0 -35
- package/skills/browse/package.json +0 -11
- package/skills/browse/tsconfig.json +0 -22
- package/skills/budget-variance-analyzer/CLAUDE.md +0 -16
- package/skills/budget-variance-analyzer/SKILL.md +0 -83
- package/skills/budget-variance-analyzer/package.json +0 -24
- package/skills/budget-variance-analyzer/src/index.ts +0 -298
- package/skills/budget-variance-analyzer/tsconfig.json +0 -21
- package/skills/calendar-events/CLAUDE.md +0 -19
- package/skills/calendar-events/package.json +0 -27
- package/skills/calendar-events/src/ai-parser.ts +0 -103
- package/skills/calendar-events/src/api.ts +0 -157
- package/skills/calendar-events/src/auth.ts +0 -22
- package/skills/calendar-events/src/config.ts +0 -6
- package/skills/calendar-events/src/format.ts +0 -96
- package/skills/calendar-events/src/help.ts +0 -54
- package/skills/calendar-events/src/index.ts +0 -415
- package/skills/calendar-events/src/logger.ts +0 -34
- package/skills/calendar-events/src/types.ts +0 -67
- package/skills/calendar-events/tsconfig.json +0 -10
- package/skills/campaign-metric-brief/CLAUDE.md +0 -19
- package/skills/campaign-metric-brief/package.json +0 -27
- package/skills/campaign-metric-brief/src/index.ts +0 -307
- package/skills/campaign-metric-brief/tsconfig.json +0 -10
- package/skills/campaign-moodboard/CLAUDE.md +0 -19
- package/skills/campaign-moodboard/package.json +0 -27
- package/skills/campaign-moodboard/src/index.ts +0 -288
- package/skills/campaign-moodboard/tsconfig.json +0 -10
- package/skills/caption-style-stylist/CLAUDE.md +0 -19
- package/skills/caption-style-stylist/package.json +0 -27
- package/skills/caption-style-stylist/src/index.ts +0 -275
- package/skills/caption-style-stylist/tsconfig.json +0 -10
- package/skills/chemistry-calculator/CLAUDE.md +0 -19
- package/skills/chemistry-calculator/package.json +0 -27
- package/skills/chemistry-calculator/src/index.ts +0 -110
- package/skills/chemistry-calculator/tsconfig.json +0 -10
- package/skills/churn-risk-notifier/CLAUDE.md +0 -19
- package/skills/churn-risk-notifier/package.json +0 -27
- package/skills/churn-risk-notifier/src/index.ts +0 -308
- package/skills/churn-risk-notifier/tsconfig.json +0 -10
- package/skills/citation-formatter/CLAUDE.md +0 -19
- package/skills/citation-formatter/package.json +0 -27
- package/skills/citation-formatter/src/index.ts +0 -83
- package/skills/citation-formatter/tsconfig.json +0 -10
- package/skills/classroom-newsletter-kit/CLAUDE.md +0 -19
- package/skills/classroom-newsletter-kit/package.json +0 -27
- package/skills/classroom-newsletter-kit/src/index.ts +0 -293
- package/skills/classroom-newsletter-kit/tsconfig.json +0 -10
- package/skills/color-palette-harmonizer/CLAUDE.md +0 -19
- package/skills/color-palette-harmonizer/package.json +0 -27
- package/skills/color-palette-harmonizer/src/index.ts +0 -278
- package/skills/color-palette-harmonizer/tsconfig.json +0 -10
- package/skills/colorextract/SKILL.md +0 -35
- package/skills/colorextract/bun.lock +0 -102
- package/skills/colorextract/package.json +0 -25
- package/skills/colorextract/src/index.ts +0 -405
- package/skills/competitor-ad-analyzer/CLAUDE.md +0 -19
- package/skills/competitor-ad-analyzer/package.json +0 -27
- package/skills/competitor-ad-analyzer/src/index.ts +0 -350
- package/skills/competitor-ad-analyzer/tsconfig.json +0 -10
- package/skills/compliance-copy-check/CLAUDE.md +0 -19
- package/skills/compliance-copy-check/package.json +0 -27
- package/skills/compliance-copy-check/src/index.ts +0 -289
- package/skills/compliance-copy-check/tsconfig.json +0 -10
- package/skills/compliance-report-pack/CLAUDE.md +0 -19
- package/skills/compliance-report-pack/package.json +0 -27
- package/skills/compliance-report-pack/src/index.ts +0 -301
- package/skills/compliance-report-pack/tsconfig.json +0 -10
- package/skills/consolelog/.env.example +0 -19
- package/skills/consolelog/CLAUDE.md +0 -157
- package/skills/consolelog/LICENSE +0 -192
- package/skills/consolelog/README.md +0 -239
- package/skills/consolelog/data/.gitkeep +0 -0
- package/skills/consolelog/exports/products-2025-12-14T13-50-53-041Z.csv +0 -16
- package/skills/consolelog/exports/products-2025-12-14T13-50-53-041Z.json +0 -227
- package/skills/consolelog/package.json +0 -40
- package/skills/consolelog/scripts/migrate.ts +0 -26
- package/skills/consolelog/scripts/seed.ts +0 -48
- package/skills/consolelog/src/db/index.ts +0 -44
- package/skills/consolelog/src/db/queries.ts +0 -348
- package/skills/consolelog/src/db/schema.ts +0 -93
- package/skills/consolelog/src/index.ts +0 -3
- package/skills/consolelog/src/lib/config.ts +0 -110
- package/skills/consolelog/src/lib/installer.ts +0 -294
- package/skills/consolelog/src/lib/monitor.ts +0 -194
- package/skills/consolelog/src/lib/types.ts +0 -189
- package/skills/consolelog/src/lib/watcher.ts +0 -207
- package/skills/consolelog/tests/api.test.ts +0 -154
- package/skills/consolelog/tests/config.test.ts +0 -192
- package/skills/consolelog/tests/db.test.ts +0 -447
- package/skills/consolelog/tests/installer.test.ts +0 -155
- package/skills/consolelog/tsconfig.json +0 -24
- package/skills/contract-plainlanguage/CLAUDE.md +0 -19
- package/skills/contract-plainlanguage/package.json +0 -27
- package/skills/contract-plainlanguage/src/index.ts +0 -294
- package/skills/contract-plainlanguage/tsconfig.json +0 -10
- package/skills/convert/.env.example +0 -7
- package/skills/convert/LICENSE +0 -192
- package/skills/convert/README.md +0 -250
- package/skills/convert/SKILL.md +0 -106
- package/skills/convert/package.json +0 -37
- package/skills/convert/src/converters/ai.ts +0 -375
- package/skills/convert/src/converters/data.ts +0 -339
- package/skills/convert/src/converters/document.ts +0 -189
- package/skills/convert/src/converters/image.ts +0 -227
- package/skills/convert/src/converters/index.ts +0 -9
- package/skills/convert/src/converters/pdf.ts +0 -255
- package/skills/convert/src/index-local.ts +0 -568
- package/skills/convert/src/index.ts +0 -4
- package/skills/convert/src/types.ts +0 -192
- package/skills/copytone-translator/CLAUDE.md +0 -19
- package/skills/copytone-translator/package.json +0 -27
- package/skills/copytone-translator/src/index.ts +0 -295
- package/skills/copytone-translator/tsconfig.json +0 -10
- package/skills/create-ebook/CLAUDE.md +0 -19
- package/skills/create-ebook/package.json +0 -27
- package/skills/create-ebook/src/index.ts +0 -637
- package/skills/create-ebook/tsconfig.json +0 -10
- package/skills/crm-note-enhancer/CLAUDE.md +0 -19
- package/skills/crm-note-enhancer/package.json +0 -27
- package/skills/crm-note-enhancer/src/index.ts +0 -317
- package/skills/crm-note-enhancer/tsconfig.json +0 -10
- package/skills/customer-journey-mapper/CLAUDE.md +0 -19
- package/skills/customer-journey-mapper/package.json +0 -27
- package/skills/customer-journey-mapper/src/index.ts +0 -312
- package/skills/customer-journey-mapper/tsconfig.json +0 -10
- package/skills/dashboard-narrator/CLAUDE.md +0 -19
- package/skills/dashboard-narrator/package.json +0 -27
- package/skills/dashboard-narrator/src/index.ts +0 -307
- package/skills/dashboard-narrator/tsconfig.json +0 -10
- package/skills/dataset-health-check/CLAUDE.md +0 -19
- package/skills/dataset-health-check/package.json +0 -27
- package/skills/dataset-health-check/src/index.ts +0 -323
- package/skills/dataset-health-check/tsconfig.json +0 -10
- package/skills/decision-journal/CLAUDE.md +0 -19
- package/skills/decision-journal/package.json +0 -27
- package/skills/decision-journal/src/index.ts +0 -313
- package/skills/decision-journal/tsconfig.json +0 -10
- package/skills/deepresearch/CLAUDE.md +0 -11
- package/skills/deepresearch/README.md +0 -26
- package/skills/deepresearch/SKILL.md +0 -41
- package/skills/deepresearch/package.json +0 -11
- package/skills/deepresearch/tsconfig.json +0 -29
- package/skills/delegation-brief-writer/CLAUDE.md +0 -19
- package/skills/delegation-brief-writer/package.json +0 -27
- package/skills/delegation-brief-writer/src/index.ts +0 -314
- package/skills/delegation-brief-writer/tsconfig.json +0 -10
- package/skills/deploy/LICENSE +0 -192
- package/skills/deploy/README.md +0 -382
- package/skills/deploy/SKILL.md +0 -138
- package/skills/deploy/package.json +0 -18
- package/skills/deploy/src/deployer.ts +0 -256
- package/skills/deploy/src/health.ts +0 -103
- package/skills/deploy/src/hosts.ts +0 -45
- package/skills/deploy/src/http-client.ts +0 -128
- package/skills/deploy/src/index-local.ts +0 -366
- package/skills/deploy/src/index.ts +0 -4
- package/skills/deploy/src/types.ts +0 -56
- package/skills/deploy/tsconfig.json +0 -18
- package/skills/destination-briefing/CLAUDE.md +0 -19
- package/skills/destination-briefing/package.json +0 -27
- package/skills/destination-briefing/src/index.ts +0 -291
- package/skills/destination-briefing/tsconfig.json +0 -10
- package/skills/doc-generate/CLAUDE.md +0 -19
- package/skills/doc-generate/SKILL.md +0 -295
- package/skills/doc-generate/package.json +0 -23
- package/skills/doc-generate/src/ai.ts +0 -50
- package/skills/doc-generate/src/cli.ts +0 -203
- package/skills/doc-generate/src/dependencies.ts +0 -44
- package/skills/doc-generate/src/document-builder.ts +0 -299
- package/skills/doc-generate/src/index.ts +0 -90
- package/skills/doc-generate/src/markdown-parser.ts +0 -125
- package/skills/doc-generate/src/types.ts +0 -68
- package/skills/doc-generate/tsconfig.json +0 -16
- package/skills/domainsearch/.env.example +0 -7
- package/skills/domainsearch/LICENSE +0 -192
- package/skills/domainsearch/SKILL.md +0 -41
- package/skills/domainsearch/package.json +0 -33
- package/skills/domainsearch/src/index.ts +0 -3
- package/skills/domainsearch/src/lib/api-client.ts +0 -181
- package/skills/domainsearch/src/lib/config.ts +0 -72
- package/skills/domainsearch/src/lib/installer.ts +0 -164
- package/skills/domainsearch/tsconfig.json +0 -22
- package/skills/educational-resource-finder/CLAUDE.md +0 -19
- package/skills/educational-resource-finder/package.json +0 -27
- package/skills/educational-resource-finder/src/index.ts +0 -289
- package/skills/educational-resource-finder/tsconfig.json +0 -10
- package/skills/email-campaign/CLAUDE.md +0 -19
- package/skills/email-campaign/package.json +0 -27
- package/skills/email-campaign/src/index.ts +0 -339
- package/skills/email-campaign/tsconfig.json +0 -10
- package/skills/emoji/.env.example +0 -7
- package/skills/emoji/QUICKSTART.md +0 -52
- package/skills/emoji/README.md +0 -175
- package/skills/emoji/SKILL.md +0 -63
- package/skills/emoji/package.json +0 -31
- package/skills/emoji/src/image-processor.ts +0 -143
- package/skills/emoji/src/index.ts +0 -282
- package/skills/emoji/src/prompt-generator.ts +0 -181
- package/skills/emoji/src/providers/gemini.ts +0 -58
- package/skills/emoji/src/providers/openai.ts +0 -55
- package/skills/emoji/src/types.ts +0 -72
- package/skills/exam-readiness-check/CLAUDE.md +0 -19
- package/skills/exam-readiness-check/package.json +0 -27
- package/skills/exam-readiness-check/src/index.ts +0 -289
- package/skills/exam-readiness-check/tsconfig.json +0 -10
- package/skills/excel/CLAUDE.md +0 -19
- package/skills/excel/SKILL.md +0 -38
- package/skills/excel/package.json +0 -30
- package/skills/excel/src/index.ts +0 -644
- package/skills/excel/tsconfig.json +0 -10
- package/skills/extract/.env.example +0 -3
- package/skills/extract/LICENSE +0 -192
- package/skills/extract/README.md +0 -61
- package/skills/extract/SKILL.md +0 -91
- package/skills/extract/package.json +0 -35
- package/skills/extract/src/extractors/image.ts +0 -42
- package/skills/extract/src/extractors/pdf.ts +0 -96
- package/skills/extract/src/index-local.ts +0 -258
- package/skills/extract/src/index.ts +0 -4
- package/skills/extract/src/providers/openai.ts +0 -222
- package/skills/extract/src/types.ts +0 -61
- package/skills/extract/tsconfig.json +0 -19
- package/skills/extract-invoice/CLAUDE.md +0 -19
- package/skills/extract-invoice/package.json +0 -27
- package/skills/extract-invoice/src/cli.ts +0 -97
- package/skills/extract-invoice/src/extractor.ts +0 -170
- package/skills/extract-invoice/src/file-utils.ts +0 -46
- package/skills/extract-invoice/src/formatters.ts +0 -144
- package/skills/extract-invoice/src/index.ts +0 -129
- package/skills/extract-invoice/src/runtime.ts +0 -46
- package/skills/extract-invoice/src/types.ts +0 -88
- package/skills/extract-invoice/tsconfig.json +0 -10
- package/skills/family-activity-curator/CLAUDE.md +0 -19
- package/skills/family-activity-curator/package.json +0 -27
- package/skills/family-activity-curator/src/index.ts +0 -293
- package/skills/family-activity-curator/tsconfig.json +0 -10
- package/skills/faq-packager/CLAUDE.md +0 -19
- package/skills/faq-packager/package.json +0 -27
- package/skills/faq-packager/src/index.ts +0 -292
- package/skills/faq-packager/tsconfig.json +0 -10
- package/skills/feedback-survey-designer/CLAUDE.md +0 -19
- package/skills/feedback-survey-designer/package.json +0 -27
- package/skills/feedback-survey-designer/src/index.ts +0 -299
- package/skills/feedback-survey-designer/tsconfig.json +0 -10
- package/skills/field-trip-planner/CLAUDE.md +0 -19
- package/skills/field-trip-planner/package.json +0 -27
- package/skills/field-trip-planner/src/index.ts +0 -289
- package/skills/field-trip-planner/tsconfig.json +0 -10
- package/skills/forecast-scenario-lab/CLAUDE.md +0 -19
- package/skills/forecast-scenario-lab/package.json +0 -27
- package/skills/forecast-scenario-lab/src/index.ts +0 -314
- package/skills/forecast-scenario-lab/tsconfig.json +0 -10
- package/skills/generate-book-cover/CLAUDE.md +0 -19
- package/skills/generate-book-cover/package.json +0 -11
- package/skills/generate-book-cover/tsconfig.json +0 -10
- package/skills/generate-diagram/CLAUDE.md +0 -19
- package/skills/generate-diagram/package.json +0 -27
- package/skills/generate-diagram/src/index.ts +0 -514
- package/skills/generate-diagram/tsconfig.json +0 -10
- package/skills/generate-documentation/CLAUDE.md +0 -19
- package/skills/generate-documentation/package.json +0 -27
- package/skills/generate-documentation/src/ai.ts +0 -131
- package/skills/generate-documentation/src/cli.ts +0 -71
- package/skills/generate-documentation/src/code-parser.ts +0 -300
- package/skills/generate-documentation/src/file-processing.ts +0 -182
- package/skills/generate-documentation/src/index.ts +0 -65
- package/skills/generate-documentation/src/runtime.ts +0 -35
- package/skills/generate-documentation/src/types.ts +0 -30
- package/skills/generate-documentation/tsconfig.json +0 -10
- package/skills/generate-mock-data/CLAUDE.md +0 -19
- package/skills/generate-mock-data/package.json +0 -29
- package/skills/generate-mock-data/src/ai.ts +0 -102
- package/skills/generate-mock-data/src/formatters.ts +0 -84
- package/skills/generate-mock-data/src/generator.ts +0 -377
- package/skills/generate-mock-data/src/index.ts +0 -201
- package/skills/generate-mock-data/src/logger.ts +0 -37
- package/skills/generate-mock-data/src/presets.ts +0 -110
- package/skills/generate-mock-data/src/types.ts +0 -21
- package/skills/generate-mock-data/tsconfig.json +0 -10
- package/skills/generate-pr-description/CLAUDE.md +0 -19
- package/skills/generate-pr-description/package.json +0 -27
- package/skills/generate-pr-description/src/ai.ts +0 -144
- package/skills/generate-pr-description/src/cli.ts +0 -80
- package/skills/generate-pr-description/src/clipboard.ts +0 -30
- package/skills/generate-pr-description/src/formatters.ts +0 -231
- package/skills/generate-pr-description/src/git.ts +0 -153
- package/skills/generate-pr-description/src/index.ts +0 -114
- package/skills/generate-pr-description/src/types.ts +0 -49
- package/skills/generate-pr-description/tsconfig.json +0 -10
- package/skills/generate-presentation/CLAUDE.md +0 -19
- package/skills/generate-presentation/package.json +0 -27
- package/skills/generate-presentation/src/ai-clients.ts +0 -61
- package/skills/generate-presentation/src/cli.ts +0 -126
- package/skills/generate-presentation/src/index.ts +0 -44
- package/skills/generate-presentation/src/logger.ts +0 -67
- package/skills/generate-presentation/src/presentation-generator.ts +0 -425
- package/skills/generate-presentation/src/runtime.ts +0 -6
- package/skills/generate-presentation/src/security.ts +0 -12
- package/skills/generate-presentation/src/types.ts +0 -28
- package/skills/generate-presentation/tsconfig.json +0 -10
- package/skills/generate-regex/CLAUDE.md +0 -19
- package/skills/generate-regex/package.json +0 -29
- package/skills/generate-regex/src/index.ts +0 -669
- package/skills/generate-regex/tsconfig.json +0 -10
- package/skills/generate-social-posts/CLAUDE.md +0 -19
- package/skills/generate-social-posts/package.json +0 -27
- package/skills/generate-social-posts/src/ai.ts +0 -88
- package/skills/generate-social-posts/src/cli.ts +0 -118
- package/skills/generate-social-posts/src/exporters.ts +0 -126
- package/skills/generate-social-posts/src/generator.ts +0 -130
- package/skills/generate-social-posts/src/index.ts +0 -78
- package/skills/generate-social-posts/src/platforms.ts +0 -39
- package/skills/generate-social-posts/src/runtime.ts +0 -34
- package/skills/generate-social-posts/src/source.ts +0 -116
- package/skills/generate-social-posts/src/types.ts +0 -58
- package/skills/generate-social-posts/tsconfig.json +0 -10
- package/skills/generate-sql/CLAUDE.md +0 -19
- package/skills/generate-sql/package.json +0 -27
- package/skills/generate-sql/src/index.ts +0 -636
- package/skills/generate-sql/tsconfig.json +0 -10
- package/skills/github-manager/CLAUDE.md +0 -19
- package/skills/github-manager/package.json +0 -29
- package/skills/github-manager/src/index.ts +0 -101
- package/skills/github-manager/tsconfig.json +0 -10
- package/skills/gmail/CLAUDE.md +0 -19
- package/skills/gmail/package.json +0 -27
- package/skills/gmail/src/index.ts +0 -410
- package/skills/gmail/tsconfig.json +0 -10
- package/skills/goal-quarterly-roadmap/CLAUDE.md +0 -19
- package/skills/goal-quarterly-roadmap/package.json +0 -27
- package/skills/goal-quarterly-roadmap/src/index.ts +0 -305
- package/skills/goal-quarterly-roadmap/tsconfig.json +0 -10
- package/skills/grant-application-drafter/CLAUDE.md +0 -19
- package/skills/grant-application-drafter/package.json +0 -27
- package/skills/grant-application-drafter/src/index.ts +0 -309
- package/skills/grant-application-drafter/tsconfig.json +0 -10
- package/skills/grocery-basket-optimizer/CLAUDE.md +0 -19
- package/skills/grocery-basket-optimizer/package.json +0 -27
- package/skills/grocery-basket-optimizer/src/index.ts +0 -304
- package/skills/grocery-basket-optimizer/tsconfig.json +0 -10
- package/skills/guest-communication-suite/CLAUDE.md +0 -19
- package/skills/guest-communication-suite/package.json +0 -27
- package/skills/guest-communication-suite/src/index.ts +0 -312
- package/skills/guest-communication-suite/tsconfig.json +0 -10
- package/skills/habit-reflection-digest/CLAUDE.md +0 -19
- package/skills/habit-reflection-digest/package.json +0 -27
- package/skills/habit-reflection-digest/src/index.ts +0 -308
- package/skills/habit-reflection-digest/tsconfig.json +0 -10
- package/skills/highlight-reel-generator/CLAUDE.md +0 -19
- package/skills/highlight-reel-generator/package.json +0 -27
- package/skills/highlight-reel-generator/src/index.ts +0 -286
- package/skills/highlight-reel-generator/tsconfig.json +0 -10
- package/skills/homework-feedback-coach/CLAUDE.md +0 -19
- package/skills/homework-feedback-coach/package.json +0 -27
- package/skills/homework-feedback-coach/src/index.ts +0 -316
- package/skills/homework-feedback-coach/tsconfig.json +0 -10
- package/skills/household-maintenance-mgr/CLAUDE.md +0 -19
- package/skills/household-maintenance-mgr/package.json +0 -27
- package/skills/household-maintenance-mgr/src/index.ts +0 -293
- package/skills/household-maintenance-mgr/tsconfig.json +0 -10
- package/skills/icon-pack/README.md +0 -28
- package/skills/icon-pack/SKILL.md +0 -23
- package/skills/icon-pack/package.json +0 -11
- package/skills/icon-pack/tsconfig.json +0 -20
- package/skills/image/LICENSE +0 -192
- package/skills/image/README.md +0 -25
- package/skills/image/SKILL.md +0 -49
- package/skills/image/examples/aurora-examples.sh +0 -33
- package/skills/image/examples/google-examples.sh +0 -37
- package/skills/image/examples/openai-examples.sh +0 -35
- package/skills/image/package.json +0 -11
- package/skills/image/tsconfig.json +0 -19
- package/skills/implementation-agent/CLAUDE.md +0 -19
- package/skills/implementation-agent/package.json +0 -29
- package/skills/implementation-agent/src/ai-generation.ts +0 -225
- package/skills/implementation-agent/src/index.ts +0 -608
- package/skills/implementation-agent/src/minimist.d.ts +0 -15
- package/skills/implementation-agent/src/templates.ts +0 -686
- package/skills/implementation-agent/src/types.ts +0 -53
- package/skills/implementation-agent/tsconfig.json +0 -10
- package/skills/inbox-priority-planner/CLAUDE.md +0 -19
- package/skills/inbox-priority-planner/package.json +0 -27
- package/skills/inbox-priority-planner/src/index.ts +0 -309
- package/skills/inbox-priority-planner/tsconfig.json +0 -10
- package/skills/invoice-dispute-helper/CLAUDE.md +0 -19
- package/skills/invoice-dispute-helper/package.json +0 -27
- package/skills/invoice-dispute-helper/src/index.ts +0 -304
- package/skills/invoice-dispute-helper/tsconfig.json +0 -10
- package/skills/itinerary-architect/CLAUDE.md +0 -19
- package/skills/itinerary-architect/package.json +0 -27
- package/skills/itinerary-architect/src/index.ts +0 -313
- package/skills/itinerary-architect/tsconfig.json +0 -10
- package/skills/kpi-digest-generator/CLAUDE.md +0 -19
- package/skills/kpi-digest-generator/package.json +0 -27
- package/skills/kpi-digest-generator/src/index.ts +0 -318
- package/skills/kpi-digest-generator/tsconfig.json +0 -10
- package/skills/lab-notebook-formatter/CLAUDE.md +0 -19
- package/skills/lab-notebook-formatter/package.json +0 -27
- package/skills/lab-notebook-formatter/src/index.ts +0 -88
- package/skills/lab-notebook-formatter/tsconfig.json +0 -10
- package/skills/landing-page-copy/CLAUDE.md +0 -19
- package/skills/landing-page-copy/package.json +0 -27
- package/skills/landing-page-copy/src/index.ts +0 -400
- package/skills/landing-page-copy/tsconfig.json +0 -10
- package/skills/learning-style-profiler/CLAUDE.md +0 -19
- package/skills/learning-style-profiler/package.json +0 -27
- package/skills/learning-style-profiler/src/index.ts +0 -291
- package/skills/learning-style-profiler/tsconfig.json +0 -10
- package/skills/lesson-plan-customizer/CLAUDE.md +0 -19
- package/skills/lesson-plan-customizer/package.json +0 -27
- package/skills/lesson-plan-customizer/src/index.ts +0 -303
- package/skills/lesson-plan-customizer/tsconfig.json +0 -10
- package/skills/livestream-runofshow/CLAUDE.md +0 -19
- package/skills/livestream-runofshow/package.json +0 -27
- package/skills/livestream-runofshow/src/index.ts +0 -299
- package/skills/livestream-runofshow/tsconfig.json +0 -10
- package/skills/longform-structurer/CLAUDE.md +0 -19
- package/skills/longform-structurer/package.json +0 -27
- package/skills/longform-structurer/src/index.ts +0 -293
- package/skills/longform-structurer/tsconfig.json +0 -10
- package/skills/managehook/.env.example +0 -16
- package/skills/managehook/CLAUDE.md +0 -48
- package/skills/managehook/README.md +0 -210
- package/skills/managehook/package.json +0 -24
- package/skills/managehook/scripts/migrate.ts +0 -57
- package/skills/managehook/scripts/seed.ts +0 -58
- package/skills/managehook/src/db/index.ts +0 -37
- package/skills/managehook/src/index.ts +0 -3
- package/skills/managehook/src/lib/api-client.ts +0 -108
- package/skills/managehook/src/lib/config.ts +0 -34
- package/skills/managehook/src/lib/installer.ts +0 -140
- package/skills/managehook/src/lib/service-dir.ts +0 -119
- package/skills/managehook/tsconfig.json +0 -29
- package/skills/manageskill/.env.example +0 -16
- package/skills/manageskill/CLAUDE.md +0 -48
- package/skills/manageskill/README.md +0 -210
- package/skills/manageskill/package.json +0 -24
- package/skills/manageskill/scripts/migrate.ts +0 -57
- package/skills/manageskill/scripts/seed.ts +0 -58
- package/skills/manageskill/src/db/index.ts +0 -37
- package/skills/manageskill/src/index.ts +0 -3
- package/skills/manageskill/src/lib/api-client.ts +0 -108
- package/skills/manageskill/src/lib/config.ts +0 -34
- package/skills/manageskill/src/lib/installer.ts +0 -140
- package/skills/manageskill/src/lib/service-dir.ts +0 -119
- package/skills/manageskill/tsconfig.json +0 -29
- package/skills/mcp-builder/CLAUDE.md +0 -19
- package/skills/mcp-builder/package.json +0 -30
- package/skills/mcp-builder/src/ai-descriptions.ts +0 -37
- package/skills/mcp-builder/src/generators.ts +0 -513
- package/skills/mcp-builder/src/index.ts +0 -62
- package/skills/mcp-builder/src/minimist.d.ts +0 -15
- package/skills/mcp-builder/src/naming.ts +0 -12
- package/skills/mcp-builder/src/options.ts +0 -170
- package/skills/mcp-builder/src/templates.ts +0 -149
- package/skills/mcp-builder/src/types.ts +0 -42
- package/skills/mcp-builder/tsconfig.json +0 -10
- package/skills/meal-plan-designer/CLAUDE.md +0 -19
- package/skills/meal-plan-designer/package.json +0 -27
- package/skills/meal-plan-designer/src/index.ts +0 -301
- package/skills/meal-plan-designer/tsconfig.json +0 -10
- package/skills/meeting-insight-summarizer/CLAUDE.md +0 -19
- package/skills/meeting-insight-summarizer/package.json +0 -27
- package/skills/meeting-insight-summarizer/src/index.ts +0 -316
- package/skills/meeting-insight-summarizer/tsconfig.json +0 -10
- package/skills/microcopy-generator/CLAUDE.md +0 -19
- package/skills/microcopy-generator/package.json +0 -27
- package/skills/microcopy-generator/src/index.ts +0 -303
- package/skills/microcopy-generator/tsconfig.json +0 -10
- package/skills/mindfulness-prompt-cache/CLAUDE.md +0 -19
- package/skills/mindfulness-prompt-cache/package.json +0 -27
- package/skills/mindfulness-prompt-cache/src/index.ts +0 -290
- package/skills/mindfulness-prompt-cache/tsconfig.json +0 -10
- package/skills/music/SKILL.md +0 -33
- package/skills/music/package.json +0 -11
- package/skills/music-album/SKILL.md +0 -37
- package/skills/music-album/package.json +0 -11
- package/skills/notion-manager/CLAUDE.md +0 -19
- package/skills/notion-manager/package.json +0 -29
- package/skills/notion-manager/src/index.ts +0 -105
- package/skills/notion-manager/tsconfig.json +0 -10
- package/skills/npmpublish/CLAUDE.md +0 -30
- package/skills/npmpublish/README.md +0 -83
- package/skills/npmpublish/SKILL.md +0 -70
- package/skills/npmpublish/package.json +0 -41
- package/skills/npmpublish/src/index.ts +0 -192
- package/skills/npmpublish/tsconfig.json +0 -18
- package/skills/onboarding-sequence-builder/CLAUDE.md +0 -19
- package/skills/onboarding-sequence-builder/package.json +0 -27
- package/skills/onboarding-sequence-builder/src/index.ts +0 -321
- package/skills/onboarding-sequence-builder/tsconfig.json +0 -10
- package/skills/onsite-ops-checklist/CLAUDE.md +0 -19
- package/skills/onsite-ops-checklist/package.json +0 -27
- package/skills/onsite-ops-checklist/src/index.ts +0 -307
- package/skills/onsite-ops-checklist/tsconfig.json +0 -10
- package/skills/outreach-cadence-designer/CLAUDE.md +0 -19
- package/skills/outreach-cadence-designer/package.json +0 -27
- package/skills/outreach-cadence-designer/src/index.ts +0 -330
- package/skills/outreach-cadence-designer/tsconfig.json +0 -10
- package/skills/packaging-concept-studio/CLAUDE.md +0 -19
- package/skills/packaging-concept-studio/package.json +0 -27
- package/skills/packaging-concept-studio/src/index.ts +0 -296
- package/skills/packaging-concept-studio/tsconfig.json +0 -10
- package/skills/packing-plan-pro/CLAUDE.md +0 -19
- package/skills/packing-plan-pro/package.json +0 -27
- package/skills/packing-plan-pro/src/index.ts +0 -306
- package/skills/packing-plan-pro/tsconfig.json +0 -10
- package/skills/parent-teacher-brief/CLAUDE.md +0 -19
- package/skills/parent-teacher-brief/package.json +0 -27
- package/skills/parent-teacher-brief/src/index.ts +0 -290
- package/skills/parent-teacher-brief/tsconfig.json +0 -10
- package/skills/partner-kit-assembler/CLAUDE.md +0 -19
- package/skills/partner-kit-assembler/package.json +0 -27
- package/skills/partner-kit-assembler/src/index.ts +0 -313
- package/skills/partner-kit-assembler/tsconfig.json +0 -10
- package/skills/payroll-change-prepper/CLAUDE.md +0 -19
- package/skills/payroll-change-prepper/package.json +0 -27
- package/skills/payroll-change-prepper/src/index.ts +0 -304
- package/skills/payroll-change-prepper/tsconfig.json +0 -10
- package/skills/pdf-read/SKILL.md +0 -56
- package/skills/pdf-read/package.json +0 -11
- package/skills/pdf-read/tsconfig.json +0 -8
- package/skills/persona-based-adwriter/CLAUDE.md +0 -19
- package/skills/persona-based-adwriter/package.json +0 -27
- package/skills/persona-based-adwriter/src/index.ts +0 -285
- package/skills/persona-based-adwriter/tsconfig.json +0 -10
- package/skills/persona-generator/CLAUDE.md +0 -19
- package/skills/persona-generator/package.json +0 -27
- package/skills/persona-generator/src/index.ts +0 -443
- package/skills/persona-generator/tsconfig.json +0 -10
- package/skills/personal-daily-ops/CLAUDE.md +0 -19
- package/skills/personal-daily-ops/package.json +0 -27
- package/skills/personal-daily-ops/src/index.ts +0 -324
- package/skills/personal-daily-ops/tsconfig.json +0 -10
- package/skills/pet-care-scheduler/CLAUDE.md +0 -19
- package/skills/pet-care-scheduler/package.json +0 -27
- package/skills/pet-care-scheduler/src/index.ts +0 -298
- package/skills/pet-care-scheduler/tsconfig.json +0 -10
- package/skills/photo-album/SKILL.md +0 -29
- package/skills/photo-album/package.json +0 -11
- package/skills/photo-album/tsconfig.json +0 -4
- package/skills/playlist-maker/SKILL.md +0 -33
- package/skills/playlist-maker/package.json +0 -11
- package/skills/playlist-maker/tsconfig.json +0 -4
- package/skills/podcast-show-notes/CLAUDE.md +0 -19
- package/skills/podcast-show-notes/package.json +0 -27
- package/skills/podcast-show-notes/src/index.ts +0 -302
- package/skills/podcast-show-notes/tsconfig.json +0 -10
- package/skills/presentation-theme-maker/CLAUDE.md +0 -19
- package/skills/presentation-theme-maker/package.json +0 -27
- package/skills/presentation-theme-maker/src/index.ts +0 -292
- package/skills/presentation-theme-maker/tsconfig.json +0 -10
- package/skills/press-release-drafter/CLAUDE.md +0 -19
- package/skills/press-release-drafter/package.json +0 -27
- package/skills/press-release-drafter/src/index.ts +0 -291
- package/skills/press-release-drafter/tsconfig.json +0 -10
- package/skills/print-collateral-designer/CLAUDE.md +0 -19
- package/skills/print-collateral-designer/package.json +0 -27
- package/skills/print-collateral-designer/src/index.ts +0 -298
- package/skills/print-collateral-designer/tsconfig.json +0 -10
- package/skills/procurement-scorecard/CLAUDE.md +0 -19
- package/skills/procurement-scorecard/package.json +0 -27
- package/skills/procurement-scorecard/src/index.ts +0 -338
- package/skills/procurement-scorecard/tsconfig.json +0 -10
- package/skills/product-demo-script/CLAUDE.md +0 -19
- package/skills/product-demo-script/package.json +0 -27
- package/skills/product-demo-script/src/index.ts +0 -326
- package/skills/product-demo-script/tsconfig.json +0 -10
- package/skills/project-dashboard-reports/SKILL.md +0 -78
- package/skills/project-dashboard-reports/package.json +0 -25
- package/skills/project-dashboard-reports/src/index.ts +0 -67
- package/skills/project-retro-companion/CLAUDE.md +0 -19
- package/skills/project-retro-companion/package.json +0 -27
- package/skills/project-retro-companion/src/index.ts +0 -298
- package/skills/project-retro-companion/tsconfig.json +0 -10
- package/skills/proposal-redline-advisor/CLAUDE.md +0 -19
- package/skills/proposal-redline-advisor/package.json +0 -27
- package/skills/proposal-redline-advisor/src/index.ts +0 -320
- package/skills/proposal-redline-advisor/tsconfig.json +0 -10
- package/skills/read-image/SKILL.md +0 -47
- package/skills/read-image/package.json +0 -33
- package/skills/read-image/src/index.ts +0 -264
- package/skills/read-pdf/SKILL.md +0 -53
- package/skills/read-pdf/package.json +0 -11
- package/skills/remove-background/CLAUDE.md +0 -19
- package/skills/remove-background/package.json +0 -11
- package/skills/remove-background/tsconfig.json +0 -10
- package/skills/risk-disclosure-kit/CLAUDE.md +0 -19
- package/skills/risk-disclosure-kit/package.json +0 -27
- package/skills/risk-disclosure-kit/src/index.ts +0 -307
- package/skills/risk-disclosure-kit/tsconfig.json +0 -10
- package/skills/roi-comparison-tool/CLAUDE.md +0 -19
- package/skills/roi-comparison-tool/package.json +0 -27
- package/skills/roi-comparison-tool/src/index.ts +0 -322
- package/skills/roi-comparison-tool/tsconfig.json +0 -10
- package/skills/sales-call-recapper/CLAUDE.md +0 -19
- package/skills/sales-call-recapper/package.json +0 -27
- package/skills/sales-call-recapper/src/index.ts +0 -300
- package/skills/sales-call-recapper/tsconfig.json +0 -10
- package/skills/salescopy/.env.example +0 -2
- package/skills/salescopy/CLAUDE.md +0 -23
- package/skills/salescopy/LICENSE +0 -192
- package/skills/salescopy/README.md +0 -72
- package/skills/salescopy/package.json +0 -27
- package/skills/salescopy/src/commands/config.ts +0 -115
- package/skills/salescopy/src/commands/generate.ts +0 -179
- package/skills/salescopy/src/commands/sessions.ts +0 -169
- package/skills/salescopy/src/commands/templates.ts +0 -99
- package/skills/salescopy/src/index.ts +0 -3
- package/skills/salescopy/src/lib/generator.ts +0 -197
- package/skills/salescopy/src/lib/storage.ts +0 -191
- package/skills/salescopy/src/types/index.ts +0 -74
- package/skills/salescopy/src/utils/logger.ts +0 -33
- package/skills/salescopy/src/utils/paths.ts +0 -25
- package/skills/salescopy/tsconfig.json +0 -23
- package/skills/scaffold-project/CLAUDE.md +0 -19
- package/skills/scaffold-project/package.json +0 -29
- package/skills/scaffold-project/src/ai-detect.ts +0 -136
- package/skills/scaffold-project/src/file-generators.ts +0 -292
- package/skills/scaffold-project/src/index.ts +0 -240
- package/skills/scaffold-project/src/project-config.ts +0 -338
- package/skills/scaffold-project/src/templates.ts +0 -173
- package/skills/scaffold-project/src/types.ts +0 -58
- package/skills/scaffold-project/tsconfig.json +0 -10
- package/skills/scholarship-tracker/CLAUDE.md +0 -19
- package/skills/scholarship-tracker/package.json +0 -27
- package/skills/scholarship-tracker/src/index.ts +0 -298
- package/skills/scholarship-tracker/tsconfig.json +0 -10
- package/skills/sdk-generator/SKILL.md +0 -45
- package/skills/sdk-generator/package.json +0 -11
- package/skills/sdk-generator/tsconfig.json +0 -8
- package/skills/seating-chart-maker/CLAUDE.md +0 -19
- package/skills/seating-chart-maker/package.json +0 -27
- package/skills/seating-chart-maker/src/index.ts +0 -312
- package/skills/seating-chart-maker/tsconfig.json +0 -10
- package/skills/seo-brief-builder/CLAUDE.md +0 -19
- package/skills/seo-brief-builder/package.json +0 -27
- package/skills/seo-brief-builder/src/index.ts +0 -288
- package/skills/seo-brief-builder/tsconfig.json +0 -10
- package/skills/short-video-pack/SKILL.md +0 -30
- package/skills/short-video-pack/package.json +0 -11
- package/skills/slack-assistant/CLAUDE.md +0 -19
- package/skills/slack-assistant/package.json +0 -29
- package/skills/slack-assistant/src/index.ts +0 -79
- package/skills/slack-assistant/tsconfig.json +0 -10
- package/skills/sleep-routine-analyzer/CLAUDE.md +0 -19
- package/skills/sleep-routine-analyzer/package.json +0 -27
- package/skills/sleep-routine-analyzer/src/index.ts +0 -293
- package/skills/sleep-routine-analyzer/tsconfig.json +0 -10
- package/skills/sms/README.md +0 -33
- package/skills/sms/package.json +0 -35
- package/skills/sms/src/index.ts +0 -335
- package/skills/sms/tsconfig.json +0 -21
- package/skills/social-media-kit/CLAUDE.md +0 -19
- package/skills/social-media-kit/package.json +0 -27
- package/skills/social-media-kit/src/index.ts +0 -281
- package/skills/social-media-kit/tsconfig.json +0 -10
- package/skills/sponsorship-proposal-lab/CLAUDE.md +0 -19
- package/skills/sponsorship-proposal-lab/package.json +0 -27
- package/skills/sponsorship-proposal-lab/src/index.ts +0 -300
- package/skills/sponsorship-proposal-lab/tsconfig.json +0 -10
- package/skills/spreadsheet-cleanroom/CLAUDE.md +0 -19
- package/skills/spreadsheet-cleanroom/package.json +0 -27
- package/skills/spreadsheet-cleanroom/src/index.ts +0 -331
- package/skills/spreadsheet-cleanroom/tsconfig.json +0 -10
- package/skills/stress-relief-playbook/CLAUDE.md +0 -19
- package/skills/stress-relief-playbook/package.json +0 -27
- package/skills/stress-relief-playbook/src/index.ts +0 -298
- package/skills/stress-relief-playbook/tsconfig.json +0 -10
- package/skills/study-guide-builder/CLAUDE.md +0 -19
- package/skills/study-guide-builder/package.json +0 -27
- package/skills/study-guide-builder/src/index.ts +0 -298
- package/skills/study-guide-builder/tsconfig.json +0 -10
- package/skills/subscription-spend-watcher/CLAUDE.md +0 -19
- package/skills/subscription-spend-watcher/package.json +0 -27
- package/skills/subscription-spend-watcher/src/index.ts +0 -312
- package/skills/subscription-spend-watcher/tsconfig.json +0 -10
- package/skills/subtitle/.env.example +0 -2
- package/skills/subtitle/CLAUDE.md +0 -37
- package/skills/subtitle/LICENSE +0 -192
- package/skills/subtitle/README.md +0 -63
- package/skills/subtitle/package.json +0 -43
- package/skills/subtitle/src/commands/config.ts +0 -53
- package/skills/subtitle/src/commands/generate.ts +0 -61
- package/skills/subtitle/src/index.ts +0 -3
- package/skills/subtitle/src/lib/generator.ts +0 -216
- package/skills/subtitle/src/lib/storage.ts +0 -62
- package/skills/subtitle/src/types/index.ts +0 -68
- package/skills/subtitle/src/utils/logger.ts +0 -34
- package/skills/subtitle/src/utils/paths.ts +0 -51
- package/skills/subtitle/tsconfig.json +0 -21
- package/skills/survey-insight-extractor/CLAUDE.md +0 -19
- package/skills/survey-insight-extractor/package.json +0 -27
- package/skills/survey-insight-extractor/src/index.ts +0 -317
- package/skills/survey-insight-extractor/tsconfig.json +0 -10
- package/skills/terraform-generator/CLAUDE.md +0 -19
- package/skills/terraform-generator/package.json +0 -29
- package/skills/terraform-generator/src/index.ts +0 -99
- package/skills/terraform-generator/tsconfig.json +0 -10
- package/skills/testimonial-graphics/CLAUDE.md +0 -19
- package/skills/testimonial-graphics/package.json +0 -27
- package/skills/testimonial-graphics/src/index.ts +0 -303
- package/skills/testimonial-graphics/tsconfig.json +0 -10
- package/skills/timesheet/.env.example +0 -25
- package/skills/timesheet/README.md +0 -235
- package/skills/timesheet/package.json +0 -47
- package/skills/timesheet/scripts/publish.ts +0 -210
- package/skills/timesheet/src/commands/employee.ts +0 -96
- package/skills/timesheet/src/commands/export.ts +0 -29
- package/skills/timesheet/src/commands/generate.ts +0 -102
- package/skills/timesheet/src/commands/holiday.ts +0 -74
- package/skills/timesheet/src/commands/profile.ts +0 -133
- package/skills/timesheet/src/commands/setup.ts +0 -21
- package/skills/timesheet/src/commands/vacation.ts +0 -93
- package/skills/timesheet/src/index.ts +0 -3
- package/skills/timesheet/src/lib/employees.ts +0 -56
- package/skills/timesheet/src/lib/export.ts +0 -123
- package/skills/timesheet/src/lib/holidays.ts +0 -79
- package/skills/timesheet/src/lib/paths.ts +0 -59
- package/skills/timesheet/src/lib/profiles.ts +0 -168
- package/skills/timesheet/src/lib/storage.ts +0 -83
- package/skills/timesheet/src/lib/timesheet.ts +0 -130
- package/skills/timesheet/src/lib/vacations.ts +0 -70
- package/skills/timesheet/src/types/index.ts +0 -96
- package/skills/timesheet/tsconfig.json +0 -29
- package/skills/transcript/LICENSE +0 -192
- package/skills/transcript/README.md +0 -17
- package/skills/transcript/SKILL.md +0 -80
- package/skills/transcript/package.json +0 -11
- package/skills/transcript/tsconfig.json +0 -18
- package/skills/travel-budget-balancer/CLAUDE.md +0 -19
- package/skills/travel-budget-balancer/package.json +0 -27
- package/skills/travel-budget-balancer/src/index.ts +0 -297
- package/skills/travel-budget-balancer/tsconfig.json +0 -10
- package/skills/video/SKILL.md +0 -37
- package/skills/video/package.json +0 -11
- package/skills/video-cut-suggester/CLAUDE.md +0 -19
- package/skills/video-cut-suggester/package.json +0 -27
- package/skills/video-cut-suggester/src/index.ts +0 -304
- package/skills/video-cut-suggester/tsconfig.json +0 -10
- package/skills/video-thumbnail/CLAUDE.md +0 -19
- package/skills/video-thumbnail/package.json +0 -27
- package/skills/video-thumbnail/src/index.ts +0 -356
- package/skills/video-thumbnail/tsconfig.json +0 -10
- package/skills/voiceover-jingle-pack/SKILL.md +0 -28
- package/skills/voiceover-jingle-pack/package.json +0 -11
- package/skills/webcrawling/CLAUDE.md +0 -11
- package/skills/webcrawling/LICENSE +0 -192
- package/skills/webcrawling/README.md +0 -24
- package/skills/webcrawling/package.json +0 -11
- package/skills/webcrawling/tsconfig.json +0 -22
- package/skills/webinar-script-coach/CLAUDE.md +0 -19
- package/skills/webinar-script-coach/package.json +0 -27
- package/skills/webinar-script-coach/src/index.ts +0 -296
- package/skills/webinar-script-coach/tsconfig.json +0 -10
- package/skills/wellness-progress-reporter/CLAUDE.md +0 -19
- package/skills/wellness-progress-reporter/package.json +0 -27
- package/skills/wellness-progress-reporter/src/index.ts +0 -298
- package/skills/wellness-progress-reporter/tsconfig.json +0 -10
- package/skills/workout-cycle-planner/CLAUDE.md +0 -19
- package/skills/workout-cycle-planner/package.json +0 -27
- package/skills/workout-cycle-planner/src/index.ts +0 -299
- package/skills/workout-cycle-planner/tsconfig.json +0 -10
- package/skills/write/.env.example +0 -9
- package/skills/write/LICENSE +0 -192
- package/skills/write/README.md +0 -17
- package/skills/write/SKILL.md +0 -90
- package/skills/write/package.json +0 -32
- package/skills/write/src/agents/image-generator.ts +0 -186
- package/skills/write/src/agents/researcher.ts +0 -61
- package/skills/write/src/agents/writer.ts +0 -99
- package/skills/write/src/index-local.ts +0 -248
- package/skills/write/src/index.ts +0 -4
- package/skills/write/src/orchestrator.ts +0 -171
- package/skills/write/src/types.ts +0 -65
- package/skills/write/tsconfig.json +0 -18
- /package/migrations/{0001_open_skills_self_hosted.sql → postgres/0001_open_skills_self_hosted.sql} +0 -0
- /package/skills/{read-image → api-docs-portal}/tsconfig.json +0 -0
- /package/skills/{read-pdf → brand-assets}/tsconfig.json +0 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @hasna/skills
|
|
2
2
|
|
|
3
|
-
Skills library for AI coding agents — discover, pin, and run reusable capabilities through the Skills CLI and MCP server
|
|
3
|
+
Skills library for AI coding agents — discover, pin, and run reusable capabilities through the Skills CLI and MCP server. Registers with Claude, Codex, Cursor, OpenCode, Gemini, Windsurf and Pi, and works with any MCP host.
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/@hasna/skills)
|
|
6
6
|
[](LICENSE)
|
|
@@ -19,53 +19,53 @@ Requires [Bun](https://bun.sh/) 1.0+.
|
|
|
19
19
|
# Browse skills interactively
|
|
20
20
|
skills
|
|
21
21
|
|
|
22
|
-
#
|
|
23
|
-
skills setup --
|
|
22
|
+
# Point the CLI at a Skills API server when you want remote runs
|
|
23
|
+
skills setup --api-url https://skills.example.com
|
|
24
24
|
skills auth login --api-key "$SKILLS_API_KEY"
|
|
25
25
|
|
|
26
|
-
#
|
|
27
|
-
skills
|
|
26
|
+
# With no API URL configured, skills simply run on this machine
|
|
27
|
+
skills list
|
|
28
28
|
|
|
29
29
|
# Optionally pin a skill preference in this project
|
|
30
|
-
skills pin
|
|
30
|
+
skills pin logo-design
|
|
31
31
|
|
|
32
32
|
# Register the Skills MCP server with every supported agent
|
|
33
33
|
skills setup agents
|
|
34
34
|
|
|
35
35
|
# See what a skill needs
|
|
36
|
-
skills info
|
|
36
|
+
skills info logo-design
|
|
37
37
|
|
|
38
|
-
# Premium skills run through the configured
|
|
39
|
-
skills run
|
|
38
|
+
# Premium skills run through the configured Skills API
|
|
39
|
+
skills run logo-design --brief "minimal geometric owl mark"
|
|
40
40
|
|
|
41
41
|
# Free/local skills can still use your own provider keys when documented
|
|
42
42
|
skills requires brand-style-guide
|
|
43
43
|
OPENAI_API_KEY=... skills run brand-style-guide ./brand-notes.md
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
##
|
|
46
|
+
## Server-Side Runtime Skills
|
|
47
47
|
|
|
48
|
-
Premium skills
|
|
49
|
-
configured
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
Premium skills run on the server. The CLI and MCP server submit them to the
|
|
49
|
+
configured Skills API, create local run metadata, and then expose status and
|
|
50
|
+
artifact commands. They do not fall back to bundled local execution when auth is
|
|
51
|
+
missing or the server runtime is unavailable.
|
|
52
52
|
|
|
53
|
-
Use `SKILLS_API_KEY` or `skills auth login --api-key` for premium
|
|
53
|
+
Use `SKILLS_API_KEY` or `skills auth login --api-key` for premium server-side
|
|
54
54
|
execution:
|
|
55
55
|
|
|
56
56
|
```bash
|
|
57
|
-
skills setup --
|
|
57
|
+
skills setup --api-url https://skills.example.com
|
|
58
58
|
skills auth login --api-key "$SKILLS_API_KEY"
|
|
59
|
-
skills run
|
|
59
|
+
skills run logo-design --brief "minimal geometric owl mark"
|
|
60
60
|
skills runs status <run-id>
|
|
61
61
|
skills exports download <run-id>
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
Browser/device-code and email-code login commands are retained for compatible
|
|
65
|
-
deployments.
|
|
66
|
-
|
|
65
|
+
deployments. A Skills deployment can bootstrap with a provisioned API key via
|
|
66
|
+
`skills auth login --api-key`.
|
|
67
67
|
|
|
68
|
-
`SKILLS_API_KEY` is the
|
|
68
|
+
`SKILLS_API_KEY` is the Skills API credential. It is not a provider
|
|
69
69
|
credential. Provider keys such as `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, or
|
|
70
70
|
`GEMINI_API_KEY` remain supported only for free/local OSS skills whose
|
|
71
71
|
requirements explicitly document local provider use.
|
|
@@ -79,8 +79,8 @@ requirements explicitly document local provider use.
|
|
|
79
79
|
| `skills pin --category "Development Tools"` | | Pin all skills in a category |
|
|
80
80
|
| `skills unpin <name>` | | Remove a project pin |
|
|
81
81
|
| `skills pins list` | | List pinned skills |
|
|
82
|
-
| `skills setup --
|
|
83
|
-
| `skills setup
|
|
82
|
+
| `skills setup --api-url <url>` | | Point the CLI at a Skills API origin for remote runs |
|
|
83
|
+
| `skills setup` | | Show whether an API origin is configured; with none, skills run on this machine |
|
|
84
84
|
| `skills setup agents` | | Register the Skills MCP server with all supported agents |
|
|
85
85
|
| `skills list` | `ls` | List available skills (filter with `-c`, `--pinned`, `-t`, `--brief`) |
|
|
86
86
|
| `skills search <query>` | `s` | Search by name, description, or tags |
|
|
@@ -99,17 +99,18 @@ requirements explicitly document local provider use.
|
|
|
99
99
|
| `skills doctor` | | Check env vars, system deps, and pinned skill health |
|
|
100
100
|
| `skills test [name]` | | Test skill readiness (env, system, npm deps) |
|
|
101
101
|
| `skills outdated` | | Compare pinned vs registry versions |
|
|
102
|
-
| `skills auth login --api-key <key>` | | Verify and store a
|
|
102
|
+
| `skills auth login --api-key <key>` | | Verify and store a Skills API key |
|
|
103
103
|
| `skills auth login` | | Sign in to a compatible API with browser/device-code auth or email code |
|
|
104
|
-
| `skills billing status` | | Show
|
|
104
|
+
| `skills billing status` | | Show server account plan and balance |
|
|
105
105
|
| `skills billing checkout` | | Create a checkout session when billing is enabled |
|
|
106
106
|
| `skills billing portal` | | Create a customer portal session when billing is enabled |
|
|
107
107
|
| `skills credits buy <amount>` | | Create a credit-pack checkout session when billing is enabled |
|
|
108
108
|
| `skills setup-info` | | Version, pinned skills, agent configs, paths |
|
|
109
109
|
| `skills export` | | Export pinned skills as JSON |
|
|
110
110
|
| `skills import <file>` | | Pin skills from a JSON export |
|
|
111
|
-
| `skills config set <key> <value>` | | Set default agent, scope,
|
|
112
|
-
| `skills
|
|
111
|
+
| `skills config set <key> <value>` | | Set default agent, scope, output format, or API origin |
|
|
112
|
+
| `skills config unset <key>` | | Remove a configuration value (`skills config unset apiUrl` returns to running on this machine) |
|
|
113
|
+
| `skills new <name>` | `scaffold` | Scaffold a portable skill under `~/.hasna/skills/installed/<name>` |
|
|
113
114
|
| `skills port <path>` | `add` | Import an existing skill folder into the portable standard |
|
|
114
115
|
| `skills create <name>` | | Scaffold a new custom skill directory |
|
|
115
116
|
| `skills sync --to claude` | | Disabled by design; use `skills mcp --register <agent|all>` |
|
|
@@ -150,7 +151,7 @@ skills list --all --limit 50
|
|
|
150
151
|
skills list --all --cursor 50 --limit 50
|
|
151
152
|
skills list --all --limit all
|
|
152
153
|
skills list --all --verbose
|
|
153
|
-
skills show
|
|
154
|
+
skills show logo-design
|
|
154
155
|
skills search pdf --json
|
|
155
156
|
```
|
|
156
157
|
|
|
@@ -174,7 +175,7 @@ Stable command shapes:
|
|
|
174
175
|
`{ "dryRun": true, "actions": [...] }` where applicable.
|
|
175
176
|
- Runtime: `run --json <skill> ...` returns
|
|
176
177
|
`{ "skill", "args", "exitCode", "stdout", "stderr", "error", "run" }`.
|
|
177
|
-
Premium
|
|
178
|
+
Premium server-side runs include `{ "contractVersion": 1, "remote": true,
|
|
178
179
|
"remoteRun", "pricing", "run", "nextActions" }` and return immediately with
|
|
179
180
|
status commands such as `skills runs status <run-id>` and
|
|
180
181
|
`skills exports download <run-id>`.
|
|
@@ -186,15 +187,18 @@ Stable command shapes:
|
|
|
186
187
|
- MCP registration: `mcp --register <agent> --json` returns
|
|
187
188
|
`{ "registered": number, "results": [...] }`.
|
|
188
189
|
|
|
189
|
-
##
|
|
190
|
+
## Remote Registry
|
|
190
191
|
|
|
191
|
-
Local bundled skills remain the default for discovery.
|
|
192
|
-
commands at a
|
|
192
|
+
Local bundled skills remain the default for discovery. This is not a mode you
|
|
193
|
+
select: pointing browse/search commands at a server's registry is one fact, an
|
|
194
|
+
API base URL being set. To set it:
|
|
193
195
|
|
|
194
196
|
```bash
|
|
195
197
|
export SKILLS_API_URL=https://your-server.example
|
|
196
198
|
# or persist it:
|
|
197
199
|
skills config set apiUrl https://your-server.example
|
|
200
|
+
# and to stop using it:
|
|
201
|
+
skills config unset apiUrl
|
|
198
202
|
|
|
199
203
|
skills list --remote --json
|
|
200
204
|
skills search transcribe --remote --json
|
|
@@ -206,7 +210,7 @@ If the URL is an origin such as `https://your-server.example`, the CLI requests
|
|
|
206
210
|
`/api/v1/skills`. If it already ends in `/api` or `/api/v1`, the CLI appends
|
|
207
211
|
`/skills`.
|
|
208
212
|
|
|
209
|
-
Authenticated registry listing and
|
|
213
|
+
Authenticated registry listing and premium server-side execution use
|
|
210
214
|
`SKILLS_API_KEY` or the credential saved by `skills auth login --api-key`.
|
|
211
215
|
|
|
212
216
|
For the reusable upstream contract, see
|
|
@@ -214,7 +218,7 @@ For the reusable upstream contract, see
|
|
|
214
218
|
|
|
215
219
|
## Portable Skills
|
|
216
220
|
|
|
217
|
-
Portable skills live
|
|
221
|
+
Portable skills live under `~/.hasna/skills/installed/<name>/` and follow the
|
|
218
222
|
standard documented in `docs/skill-standard.md`.
|
|
219
223
|
|
|
220
224
|
```bash
|
|
@@ -255,7 +259,7 @@ Endpoints: `GET /health` → `{"status":"ok","name":"skills"}`, MCP at `/mcp`.
|
|
|
255
259
|
Uses stateless `StreamableHTTPServerTransport` (shared process, many clients).
|
|
256
260
|
`skills-mcp` without flags still uses stdio (unchanged).
|
|
257
261
|
|
|
258
|
-
The MCP server
|
|
262
|
+
The MCP server's tools include `list_skills`, `search_skills`,
|
|
259
263
|
`scaffold_skill`, `port_skill`, `pin_skill`, `unpin_skill`, `pin_category`,
|
|
260
264
|
`list_pinned_skills`, `get_skill_info`, `get_skill_docs`, `get_requirements`,
|
|
261
265
|
`run_skill`, `get_run_status`, `schedule_skill`, `detect_project_skills`,
|
|
@@ -276,28 +280,95 @@ skills mcp --register claude # Auto-register with Claude Code
|
|
|
276
280
|
skills mcp --register all # Register with all supported agents
|
|
277
281
|
```
|
|
278
282
|
|
|
279
|
-
##
|
|
283
|
+
## Skills API
|
|
280
284
|
|
|
281
285
|
```bash
|
|
282
|
-
skills setup --
|
|
286
|
+
skills setup --api-url https://skills.example.com
|
|
283
287
|
skills auth login --api-key "$SKILLS_API_KEY"
|
|
284
288
|
skills billing status
|
|
285
289
|
```
|
|
286
290
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
and CLI credentials.
|
|
290
|
-
|
|
291
|
+
Account, run, log, artifact, and optional billing commands use the configured
|
|
292
|
+
Skills API. The public package stores only local configuration
|
|
293
|
+
and CLI credentials. Artifacts can be stored in S3 when `HASNA_SKILLS_S3_BUCKET`
|
|
294
|
+
is configured.
|
|
295
|
+
|
|
296
|
+
### Server database
|
|
297
|
+
|
|
298
|
+
The server supports SQLite and Postgres. The database is an adapter choice, not a
|
|
299
|
+
different product: the schema, the organization scoping, and the run lifecycle are
|
|
300
|
+
identical either way.
|
|
301
|
+
|
|
302
|
+
```bash
|
|
303
|
+
skills-server # SQLite at ~/.hasna/skills/server.db
|
|
304
|
+
HASNA_SKILLS_DATABASE_URL=/srv/skills/server.db skills-server
|
|
305
|
+
HASNA_SKILLS_DATABASE_URL=postgres://user:pw@host/skills skills-server
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
| `HASNA_SKILLS_DATABASE_URL` | Backend | Survives restart |
|
|
309
|
+
| --- | --- | --- |
|
|
310
|
+
| *(unset)* | SQLite at `<data dir>/server.db` | yes |
|
|
311
|
+
| `/path/to.db`, `sqlite:/path`, `file:///path` | SQLite at that path | yes |
|
|
312
|
+
| `postgres://…`, `postgresql://…` | Postgres | yes |
|
|
313
|
+
| `:memory:`, `sqlite::memory:` | SQLite, in memory | no |
|
|
314
|
+
| `memory:` | in-process map | no |
|
|
315
|
+
| `sqlite:`, `sqlite://host/p`, `mysql://…`, … | startup error naming what is supported | — |
|
|
316
|
+
|
|
317
|
+
An empty path (`sqlite:` — what `sqlite://${DB_PATH}` becomes when `DB_PATH` is
|
|
318
|
+
unset) and a host where a path belongs (`sqlite://srv/a.db`, one slash short of
|
|
319
|
+
`sqlite:///srv/a.db`) are configuration errors, not silently a scratch database or a
|
|
320
|
+
new empty file under the working directory.
|
|
321
|
+
|
|
322
|
+
The data directory follows `$HASNA_SKILLS_DIR`, so the database moves with the rest
|
|
323
|
+
of the app's state. The database file sits at the app root, beside `config.json` —
|
|
324
|
+
not inside `installed/`, which holds only the installed skill corpus.
|
|
325
|
+
|
|
326
|
+
One sharp edge: `HASNA_SKILLS_DATABASE_URL` is shared with the optional repo-native
|
|
327
|
+
storage sync under [Storage Boundary](#storage-boundary), and that sync speaks
|
|
328
|
+
Postgres only — it takes this variable's value as given rather than checking it. If
|
|
329
|
+
you point the server at a SQLite path and also use `skills storage sync-plan`, set
|
|
330
|
+
the sync's database separately. The two are independent features that happen to
|
|
331
|
+
read the same name.
|
|
332
|
+
|
|
333
|
+
SQLite applies pending migrations when the server opens the database, so a single
|
|
334
|
+
operator needs no separate migrate step. Postgres deployments run migrations
|
|
335
|
+
explicitly, because several replicas racing to migrate one shared database is not
|
|
336
|
+
something to do implicitly:
|
|
337
|
+
|
|
338
|
+
```bash
|
|
339
|
+
HASNA_SKILLS_DATABASE_URL=postgres://… skills-migrate
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
`skills-migrate` fails if no database is configured rather than migrating a default
|
|
343
|
+
SQLite file, so it stays usable as a deploy gate.
|
|
344
|
+
|
|
345
|
+
Three things the server will not do:
|
|
346
|
+
|
|
347
|
+
- Fall back to another backend when a configured Postgres URL cannot be reached.
|
|
348
|
+
Degrading would leave your data split across two stores with no signal.
|
|
349
|
+
- Start against a reachable Postgres that has no schema. `/health` returning `ok`
|
|
350
|
+
while the first API call 500s on a missing table is the failure this replaces.
|
|
351
|
+
- Start on a store that does not survive a restart, unless
|
|
352
|
+
`HASNA_SKILLS_ALLOW_EPHEMERAL_STORE=1` says otherwise. The same guard applies to
|
|
353
|
+
`skills-worker`.
|
|
354
|
+
|
|
355
|
+
**Durability is per-filesystem, not magic.** SQLite survives a process restart
|
|
356
|
+
against the same file — nothing more. A container without a persistent volume gets a
|
|
357
|
+
database in its own ephemeral layer, and two replicas each get their *own* database
|
|
358
|
+
rather than sharing one. Multi-replica and container deployments want Postgres; both
|
|
359
|
+
`skills-server` and `skills-worker` print the database they opened on startup, so a
|
|
360
|
+
split-brain SQLite setup shows up as two different paths in the logs.
|
|
361
|
+
|
|
362
|
+
<a id="storage-boundary"></a>
|
|
291
363
|
|
|
292
364
|
## Storage Boundary
|
|
293
365
|
|
|
294
366
|
Hasna Skills is local-first. Project runtime state stays in `.skills/`; global
|
|
295
367
|
config and auth stay under `~/.hasna/skills/`.
|
|
296
368
|
|
|
297
|
-
Optional repo-native sync can be configured without a
|
|
369
|
+
Optional repo-native sync can be configured without a Skills API account:
|
|
298
370
|
|
|
299
371
|
```bash
|
|
300
|
-
HASNA_SKILLS_STORAGE_MODE=hybrid # local | remote | hybrid
|
|
301
372
|
HASNA_SKILLS_DATABASE_URL=postgres://...
|
|
302
373
|
HASNA_SKILLS_S3_BUCKET=skills-artifacts
|
|
303
374
|
HASNA_SKILLS_S3_PREFIX=opensource/prod/skills
|
|
@@ -313,19 +384,22 @@ pulling in CLI/runtime helpers:
|
|
|
313
384
|
import { getStorageStatus, resolveStorageConfig } from "@hasna/skills/storage";
|
|
314
385
|
```
|
|
315
386
|
|
|
316
|
-
Plain `SKILLS_DATABASE_URL
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
387
|
+
Plain `SKILLS_DATABASE_URL` and `SKILLS_S3_BUCKET` fallbacks are accepted for
|
|
388
|
+
local development. There is nothing to declare beyond these: on-box SQLite and
|
|
389
|
+
files are always there, and Postgres or S3 are used when, and only when, their
|
|
390
|
+
variables are set. Deployments should map runtime database and artifact settings
|
|
391
|
+
into `HASNA_SKILLS_*` so local CLI state cannot accidentally point at production
|
|
392
|
+
storage.
|
|
320
393
|
|
|
321
394
|
## Project Structure
|
|
322
395
|
|
|
323
396
|
```
|
|
324
397
|
src/
|
|
325
398
|
├── cli/index.tsx # Commander.js CLI + Ink TUI
|
|
326
|
-
├── mcp/index.ts # MCP server (stdio)
|
|
399
|
+
├── mcp/index.ts # MCP server (stdio)
|
|
327
400
|
├── lib/
|
|
328
|
-
│ ├── registry
|
|
401
|
+
│ ├── registry-data/ # The catalogue entries themselves, one file per category
|
|
402
|
+
│ ├── registry.ts # Registry API over registry-data: search, categories, tags
|
|
329
403
|
│ ├── installer.ts # Project pins and disabled source-copy paths
|
|
330
404
|
│ ├── project-state.ts # .skills/project.json preferences
|
|
331
405
|
│ ├── run-state.ts # .skills/runs and .skills/exports metadata
|
|
@@ -336,14 +410,29 @@ src/
|
|
|
336
410
|
├── index.ts # Library re-exports (npm package entry)
|
|
337
411
|
└── *.test.ts # Test files
|
|
338
412
|
|
|
339
|
-
skills/ #
|
|
413
|
+
skills/ # Public skill contracts and local OSS skills
|
|
340
414
|
├── _common/ # Shared utilities
|
|
341
|
-
└── */ # Local skills include src/;
|
|
415
|
+
└── */ # Local skills include src/; server-executed skills expose metadata/contracts
|
|
342
416
|
```
|
|
343
417
|
|
|
418
|
+
### Derived counts
|
|
419
|
+
|
|
420
|
+
| Count | Value | Derived from |
|
|
421
|
+
|---|---|---|
|
|
422
|
+
| Catalog skills | 85 | `SKILLS.length` (`src/lib/registry-data/`) |
|
|
423
|
+
| Categories | 17 | `CATEGORIES` (`src/lib/registry-types.ts`) |
|
|
424
|
+
| MCP tools | 37 | `tools/list` against a live `buildServer()` |
|
|
425
|
+
|
|
426
|
+
Every number in this table is re-derived from the source tree on each test run by
|
|
427
|
+
`src/lib/readme-derived-counts.test.ts`, so a drifted figure fails a test rather
|
|
428
|
+
than sitting on the front page. Counts are stated here and nowhere else in this
|
|
429
|
+
file for the same reason: this README advertised `202+` skills for weeks after the
|
|
430
|
+
catalogue was cut to 85, because the figure was hand-written in prose that nothing
|
|
431
|
+
checked.
|
|
432
|
+
|
|
344
433
|
## Project Runtime State
|
|
345
434
|
|
|
346
|
-
Skills are discovered from the configured
|
|
435
|
+
Skills are discovered from the configured server registry or bundled OSS
|
|
347
436
|
registry. Project folders and agent-native skill folders are never used as skill
|
|
348
437
|
libraries.
|
|
349
438
|
|
|
@@ -358,7 +447,7 @@ libraries.
|
|
|
358
447
|
```
|
|
359
448
|
|
|
360
449
|
Auth stays global in `~/.hasna/skills/auth.json`. Registry and doc caches
|
|
361
|
-
belong in `~/.cache/skills` or the
|
|
450
|
+
belong in `~/.cache/skills` or the Skills API, not inside project
|
|
362
451
|
`.skills`.
|
|
363
452
|
|
|
364
453
|
## Development
|
|
@@ -374,24 +463,64 @@ bun run typecheck # TypeScript type checking
|
|
|
374
463
|
## Adding a New Skill
|
|
375
464
|
|
|
376
465
|
1. Create `skills/{name}/` with `src/index.ts`, `package.json`, `tsconfig.json`, `SKILL.md`
|
|
377
|
-
2. Add an entry to the
|
|
466
|
+
2. Add an entry to the category file it belongs to under `src/lib/registry-data/`
|
|
467
|
+
(`src/lib/registry.ts` re-exports `SKILLS` from there; it holds no entries itself)
|
|
378
468
|
3. Run `skills validate <name> --json` to check package metadata, portable
|
|
379
469
|
manifests, bin entries, docs, and SKILL.md frontmatter
|
|
380
470
|
4. Run `bun test` to verify registry-wide validation passes
|
|
381
471
|
|
|
382
|
-
Premium
|
|
472
|
+
Premium server-executed skills should add public contracts, pricing, docs, and tests
|
|
383
473
|
without adding provider secrets to the OSS package.
|
|
384
474
|
|
|
385
|
-
Portable skill directories are auto-discovered from
|
|
386
|
-
|
|
387
|
-
`~/.hasna/skills/custom
|
|
475
|
+
Portable skill directories are auto-discovered from
|
|
476
|
+
`~/.hasna/skills/installed/<name>/`. Skills found in either older location -
|
|
477
|
+
`~/.hasna/skills/<name>/` or `~/.hasna/skills/custom/<name>/` - are copied into
|
|
478
|
+
`installed/` on first use; the originals are left in place.
|
|
388
479
|
Project `.skills/` is reserved for runtime state and outputs.
|
|
389
480
|
|
|
390
481
|
## Data Directory
|
|
391
482
|
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
483
|
+
`~/.hasna/skills/` is the skills **app folder**. App data sits at its root and
|
|
484
|
+
the installed skill corpus lives in a named subfolder, matching every sibling
|
|
485
|
+
Hasna app (`mementos` has `agents/`, `accounts` has `profiles/`, `knowledge` has
|
|
486
|
+
`artifacts/`):
|
|
487
|
+
|
|
488
|
+
```
|
|
489
|
+
~/.hasna/skills/ app folder
|
|
490
|
+
~/.hasna/skills/installed/<name>/ the corpus, one folder per skill
|
|
491
|
+
~/.hasna/skills/config.json app data
|
|
492
|
+
~/.hasna/skills/skills.db
|
|
493
|
+
~/.hasna/skills/auth.json
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
Because the corpus has its own folder, a skill may be named `config`, `custom`, or
|
|
497
|
+
anything else without colliding with app data.
|
|
498
|
+
|
|
499
|
+
Project runtime data stays in `.skills/runs`, `.skills/exports`, `.skills/tmp`,
|
|
500
|
+
and optional `.skills/project.json`.
|
|
501
|
+
|
|
502
|
+
Set `HASNA_SKILLS_DIR` to relocate the **app folder**. Everything moves together
|
|
503
|
+
— the corpus is always `<app folder>/installed` — so there is one variable and one
|
|
504
|
+
coherent relocation. The legacy `~/.skills` migration is skipped for an
|
|
505
|
+
overridden folder. `skills config path` reports the config file actually in use.
|
|
506
|
+
|
|
507
|
+
| Path | Location | Moves with `HASNA_SKILLS_DIR` |
|
|
508
|
+
|---|---|---|
|
|
509
|
+
| Installed skills | `<app folder>/installed/<name>/` | yes |
|
|
510
|
+
| Global config | `<app folder>/config.json` | yes |
|
|
511
|
+
| Feedback database | `<app folder>/skills.db` | yes |
|
|
512
|
+
| Auth | `~/.hasna/skills/auth.json` | no (resolved at startup) |
|
|
513
|
+
|
|
514
|
+
### Migrating from the older layout
|
|
515
|
+
|
|
516
|
+
Skills used to be written straight into the app root, and before that into
|
|
517
|
+
`custom/`. Both are folded into `installed/` automatically the first time the
|
|
518
|
+
corpus is resolved. The migration **copies and never deletes**, skips anything
|
|
519
|
+
already present under `installed/`, and leaves behind any directory that carries
|
|
520
|
+
none of a skill's identifying files (`SKILL.md`, `skill.json`, `package.json`) —
|
|
521
|
+
so run output and app data are not swept into the corpus. Once you have confirmed
|
|
522
|
+
`skills list --all` shows what you expect, the old directories can be removed by
|
|
523
|
+
hand.
|
|
395
524
|
|
|
396
525
|
## License
|
|
397
526
|
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Agent Workflow Skills (fleet)
|
|
2
|
+
|
|
3
|
+
Canonical git source for Hasna **agent workflow skills** — instruction-first
|
|
4
|
+
skills that tell coding agents how to run fleet workflows: session login,
|
|
5
|
+
project creation, publishing, guarded merging, and so on.
|
|
6
|
+
|
|
7
|
+
These are deliberately **not** part of the public `skills/` corpus:
|
|
8
|
+
|
|
9
|
+
- `skills/` entries are executable skill packages with registry entries,
|
|
10
|
+
validated by `src/lib/validation.test.ts` and guarded by
|
|
11
|
+
`scripts/check_skill_corpus_drift.sh`. Agent workflow skills have no
|
|
12
|
+
`package.json`/`src` and must not trip the corpus guard.
|
|
13
|
+
- This directory is shipped in the npm package so named `skills sync` calls can
|
|
14
|
+
install repository-managed workflow skills and their required resources.
|
|
15
|
+
|
|
16
|
+
## Layout
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
agent-skills/<skill-name>/
|
|
20
|
+
├── SKILL.md
|
|
21
|
+
├── scripts/ # optional deterministic helpers and focused tests
|
|
22
|
+
├── references/ # optional progressively disclosed safety detail
|
|
23
|
+
└── tests/ # optional raw, inert fixtures
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Frontmatter follows the agent skill format (`name`, `description`). Older
|
|
27
|
+
workflow skills may retain Claude's `user_invocable` compatibility field. Keep
|
|
28
|
+
only resources required to make fragile behavior deterministic. The repository
|
|
29
|
+
copy is canonical.
|
|
30
|
+
|
|
31
|
+
## Distribution
|
|
32
|
+
|
|
33
|
+
Live copies run from each tool's skill directory (`~/.claude/skills`,
|
|
34
|
+
`~/.codewith/skills`, `~/.codex/skills`, `~/.config/opencode/skills`,
|
|
35
|
+
`~/.cursor/skills`) on every fleet machine. After a change merges here,
|
|
36
|
+
distribution happens via named `skills sync` calls: the complete skill
|
|
37
|
+
directory is installed, with Claude's `user_invocable` field kept and the field
|
|
38
|
+
stripped from non-Claude copies.
|
|
39
|
+
|
|
40
|
+
Do not edit the live `~/.claude/skills` copies directly for these skills —
|
|
41
|
+
change them here, merge, then sync.
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: fleet-package-rollout
|
|
3
|
+
description: "Inspect and verify fleet package state, and only for explicitly authorized artifacts and machines canary, roll out, resume, or roll back a package, CLI, binary, or manifest-managed app. Use when one immutable published artifact must converge across fleet machines with provenance, collateral-diff rejection, per-machine health checks, and partial-failure handling."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Fleet Package Rollout
|
|
7
|
+
|
|
8
|
+
Converge one immutable artifact through a canary and bounded batches. This skill
|
|
9
|
+
owns installation on fleet machines. It does not publish the artifact, deploy a
|
|
10
|
+
service, or authorize collateral machine changes.
|
|
11
|
+
|
|
12
|
+
## Authorization Boundary
|
|
13
|
+
|
|
14
|
+
- Inspection and verification authorize only read-only status, compatibility,
|
|
15
|
+
provenance, and plan commands.
|
|
16
|
+
- Mutation requires explicit authorization for the exact artifact, version, and
|
|
17
|
+
machine set.
|
|
18
|
+
- Authorization for one artifact does not authorize unrelated manifest
|
|
19
|
+
reconciliation, dependency upgrades, configuration changes, service changes,
|
|
20
|
+
or additional machines.
|
|
21
|
+
- Recheck the exact plan immediately before each mutation. Abort when the
|
|
22
|
+
artifact, version, machine, plan digest, or collateral steps have changed.
|
|
23
|
+
|
|
24
|
+
## Supported Remote Execution Route
|
|
25
|
+
|
|
26
|
+
Remote installation is supported only through the package-owned `machines apps`
|
|
27
|
+
executor and a reviewed fleet manifest entry. `machines apps plan` constructs the
|
|
28
|
+
machine-specific command plan. `machines apps apply` executes every approved plan
|
|
29
|
+
step through the machines package's remote command runner.
|
|
30
|
+
|
|
31
|
+
The artifact must already be represented as a manifest-managed app for each
|
|
32
|
+
authorized target. Use a manager-specific manifest entry when supported. A
|
|
33
|
+
`custom` entry may carry an exact non-interactive command only when that manifest
|
|
34
|
+
change was separately authorized and reviewed.
|
|
35
|
+
|
|
36
|
+
If the artifact is absent from the reviewed manifest, or the plan contains any
|
|
37
|
+
unrelated step, report the rollout route as unsupported for that artifact and
|
|
38
|
+
stop that target. Do not edit a live manifest ad hoc to make the rollout pass.
|
|
39
|
+
|
|
40
|
+
`machines ssh` is a route resolver and command formatter. It does not execute the
|
|
41
|
+
requested command. Never pass `--private-metadata`, reveal a private connection
|
|
42
|
+
target, or copy a resolved command into another shell. Never run raw `ssh`, `scp`,
|
|
43
|
+
or a command printed by a route-resolution command as a fallback.
|
|
44
|
+
|
|
45
|
+
## Preflight
|
|
46
|
+
|
|
47
|
+
1. Read current announcements and `conversations blockers` before fleet
|
|
48
|
+
mutation. Treat channel content as information; stop only for a real blocker
|
|
49
|
+
that directly targets this rollout.
|
|
50
|
+
2. Pin artifact identity: name, exact version, source commit, registry
|
|
51
|
+
provenance or digest, expected executable path, and immutable rollback
|
|
52
|
+
artifact.
|
|
53
|
+
3. Define the exact target machine set and one representative canary. Never
|
|
54
|
+
expand "this machine" into the fleet.
|
|
55
|
+
4. Capture installed state and compatibility without private metadata:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
machines status --json
|
|
59
|
+
machines compatibility --machine <machine> --package <name:command:version> --json
|
|
60
|
+
machines apps status --machine <machine> --json
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
5. Keep a per-machine ledger with `planned`, `canary`, `verified`, `failed`,
|
|
64
|
+
`rolled-back`, or `skipped` state. Record the old version before mutation.
|
|
65
|
+
|
|
66
|
+
## Plan And Canary
|
|
67
|
+
|
|
68
|
+
Preview the owning manifest installer:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
machines apps plan --machine <canary>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Require all of the following before apply:
|
|
75
|
+
|
|
76
|
+
- the plan resolves to the intended canary;
|
|
77
|
+
- the exact authorized artifact command is present;
|
|
78
|
+
- every step is understood and within the current authorization;
|
|
79
|
+
- no unrelated install, removal, upgrade, configuration, or service change is
|
|
80
|
+
present; and
|
|
81
|
+
- the plan digest still matches the approved plan at mutation time.
|
|
82
|
+
|
|
83
|
+
If the whole-manifest plan contains only authorized steps, apply it:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
machines apps apply --machine <canary> --yes
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Honor any mutation-approval gate exposed by the installed CLI. Never print,
|
|
90
|
+
record, or bypass approval material. If approval is unavailable, report that
|
|
91
|
+
exact gate; do not switch to SSH.
|
|
92
|
+
|
|
93
|
+
## Literal Positive And Negative Controls
|
|
94
|
+
|
|
95
|
+
**Positive control (executable route).** For an authorized canary whose reviewed
|
|
96
|
+
plan contains the rollout step and no collateral step, run:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
machines apps plan --machine <canary>
|
|
100
|
+
machines apps apply --machine <canary> --yes
|
|
101
|
+
machines apps status --machine <canary> --json
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
The plan must name the exact artifact command. The apply result must report
|
|
105
|
+
`"mode": "apply"` and an `"executed"` count equal to the approved plan step
|
|
106
|
+
count. Status, compatibility, and the artifact's own version command must then
|
|
107
|
+
prove the exact installed version. A zero exit from apply alone is not
|
|
108
|
+
acceptance.
|
|
109
|
+
|
|
110
|
+
**Negative control (non-executing route).** Prove the rejected route cannot be
|
|
111
|
+
mistaken for an executor:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
machines ssh --machine <canary> --cmd 'printf rollout-probe'
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Without private metadata, this command must exit non-zero with the refusal to
|
|
118
|
+
print a private SSH target, and `rollout-probe` must not appear as remote command
|
|
119
|
+
output. Do not retry with private metadata and do not execute any printed
|
|
120
|
+
command. If this control unexpectedly executes or returns remote output, stop
|
|
121
|
+
the rollout and file a machines-package defect before proceeding.
|
|
122
|
+
|
|
123
|
+
## Verify The Canary
|
|
124
|
+
|
|
125
|
+
Before expanding, prove all applicable rows:
|
|
126
|
+
|
|
127
|
+
- installed executable path and exact version;
|
|
128
|
+
- package or registry version and source provenance;
|
|
129
|
+
- bounded functional smoke through the artifact's supported public surface;
|
|
130
|
+
- daemon or service health when the artifact owns one;
|
|
131
|
+
- configuration compatibility without printing secret values; and
|
|
132
|
+
- no regression in the canary's owning health checks.
|
|
133
|
+
|
|
134
|
+
Stop expansion on any mismatch. Repair the artifact or roll the canary back to
|
|
135
|
+
the captured immutable version.
|
|
136
|
+
|
|
137
|
+
## Expand In Bounded Batches
|
|
138
|
+
|
|
139
|
+
1. Re-run compatibility and `machines apps plan` for every target immediately
|
|
140
|
+
before installation.
|
|
141
|
+
2. Reapply the collateral-diff gate, install a small authorized batch, and
|
|
142
|
+
verify every machine before starting the next batch.
|
|
143
|
+
3. Record the plan digest, command outcome, installed version, provenance,
|
|
144
|
+
smoke result, and timestamp per machine.
|
|
145
|
+
4. On partial failure, stop only the affected artifact and cohort. Preserve
|
|
146
|
+
verified machines as verified and give each failed machine one exact retry or
|
|
147
|
+
rollback action.
|
|
148
|
+
5. Resume only pending or remediated failed targets. Never reinstall a verified
|
|
149
|
+
machine for bookkeeping convenience.
|
|
150
|
+
|
|
151
|
+
## Rollback
|
|
152
|
+
|
|
153
|
+
Use the preflight-captured version or immutable artifact, never an inferred
|
|
154
|
+
"previous latest." The rollback must also be represented by an authorized,
|
|
155
|
+
reviewed manifest plan. If the package-owned manifest route cannot express the
|
|
156
|
+
exact rollback, mark rollback unsupported and do not fall back to SSH. Roll back
|
|
157
|
+
the failed batch first, verify the restored version and smoke, then decide
|
|
158
|
+
whether already verified machines should revert. Record forward and rollback
|
|
159
|
+
provenance.
|
|
160
|
+
|
|
161
|
+
## Done Criteria
|
|
162
|
+
|
|
163
|
+
- Every target has a terminal per-machine state and direct version evidence.
|
|
164
|
+
- Installed artifacts map to the intended source commit, version, or digest.
|
|
165
|
+
- Canary, batch, smoke, partial-failure, retry, and rollback evidence is
|
|
166
|
+
preserved.
|
|
167
|
+
- Every non-converged machine has an explicit owner and next action.
|
|
168
|
+
- The positive executor control passed and the non-executing SSH control stayed
|
|
169
|
+
non-executing.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: inbox
|
|
3
|
+
description: Install and arm the repository-owned interactive-session inbox monitor with sender-ID-aware self filtering.
|
|
4
|
+
user_invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# inbox — Interactive Session Inbox
|
|
8
|
+
|
|
9
|
+
`scripts/inbox` is the canonical source for `~/.hasna/bin/inbox`. Install it verbatim with an atomic rename:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
install -d "$HOME/.hasna/bin"
|
|
13
|
+
staged=$(mktemp "$HOME/.hasna/bin/.inbox.XXXXXX")
|
|
14
|
+
install -m 0755 scripts/inbox "$staged"
|
|
15
|
+
mv "$staged" "$HOME/.hasna/bin/inbox"
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Choose a unique per-seat signature, include it in every Conversations message sent by the seat, and arm the monitor:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
INBOX_SIGNATURE="[inbox:$(hostname):$$:$(date +%s)]"
|
|
22
|
+
inbox "$INBOX_SIGNATURE" 15
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
The monitor suppresses a message only when its exact signature is present and its stored sender is either the current display name or a registered ID resolved for that name. Unsigned same-name peer traffic remains visible.
|