@hasna/skills 0.1.62 → 0.1.64
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 +38 -12
- package/bin/index.js +15743 -21709
- package/bin/mcp.js +3866 -11522
- package/bin/migrate.js +281 -35
- package/bin/server.js +5805 -2682
- package/bin/worker.js +5280 -2388
- package/dist/cli/commands/publish.d.ts +2 -0
- package/dist/cli/commands/registry-reconcile.d.ts +2 -0
- package/dist/cli/components/App.d.ts +2 -1
- package/dist/cli/components/CategorySelect.d.ts +2 -1
- package/dist/cli/components/Header.d.ts +2 -1
- package/dist/cli/components/InstallProgress.d.ts +2 -1
- package/dist/cli/components/SearchView.d.ts +2 -1
- package/dist/cli/components/SkillSelect.d.ts +2 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.js +5386 -13739
- package/dist/lib/agent-sync.d.ts +61 -6
- package/dist/lib/auth-store.d.ts +37 -0
- package/dist/lib/config.d.ts +51 -0
- package/dist/lib/home-adoption.d.ts +91 -0
- package/dist/lib/home-census.d.ts +26 -0
- package/dist/lib/home-migration.d.ts +60 -0
- package/dist/lib/native-storage.d.ts +1 -1
- package/dist/lib/portable-skills-files.d.ts +21 -1
- package/dist/lib/portable-skills-types.d.ts +46 -0
- package/dist/lib/portable-skills.d.ts +35 -6
- package/dist/lib/pull.d.ts +97 -0
- package/dist/lib/registry-reconcile.d.ts +114 -0
- package/dist/lib/registry.d.ts +7 -4
- package/dist/lib/remote-client.d.ts +124 -1
- package/dist/lib/remote-registry.d.ts +26 -0
- package/dist/lib/revision.d.ts +29 -0
- package/dist/lib/run-state.d.ts +5 -0
- package/dist/lib/skill-bundles.d.ts +54 -0
- package/dist/lib/skill-contract.d.ts +35 -0
- package/dist/lib/skill-hash.d.ts +77 -0
- package/dist/sdk/cancel.d.ts +30 -0
- package/dist/sdk/dispatcher.d.ts +40 -0
- package/dist/sdk/event-sink.d.ts +2 -0
- package/dist/sdk/events.d.ts +79 -0
- package/dist/sdk/execution/admission.d.ts +44 -0
- package/dist/sdk/execution/dispatchers/e2b.d.ts +17 -0
- package/dist/sdk/execution/dispatchers/ecs.d.ts +151 -0
- package/dist/sdk/execution/image-profile.d.ts +73 -0
- package/dist/sdk/execution/index.d.ts +15 -0
- package/dist/sdk/execution/receipts.d.ts +44 -0
- package/dist/sdk/execution/state-machine.d.ts +38 -0
- package/dist/sdk/execution/storage.d.ts +158 -0
- package/dist/sdk/execution/types.d.ts +130 -0
- package/dist/sdk/executor.d.ts +17 -0
- package/dist/sdk/governance-store.d.ts +156 -0
- package/dist/sdk/governance.d.ts +92 -0
- package/dist/sdk/index.d.ts +26 -0
- package/dist/sdk/index.js +49728 -0
- package/dist/sdk/offline.d.ts +16 -0
- package/dist/sdk/outputs.d.ts +71 -0
- package/dist/sdk/registry.d.ts +28 -0
- package/dist/sdk/runs.d.ts +229 -0
- package/dist/sdk/server.d.ts +35 -0
- package/dist/sdk/spend.d.ts +36 -0
- package/dist/sdk/storage.d.ts +25 -0
- package/dist/server/app.d.ts +42 -0
- package/dist/server/artifact-storage.d.ts +102 -0
- package/dist/server/auth.d.ts +5 -0
- package/dist/server/config.d.ts +50 -0
- package/dist/server/database-url.d.ts +42 -0
- package/dist/server/handlers.d.ts +3 -0
- package/dist/server/index.d.ts +2 -0
- package/dist/server/migrate.d.ts +13 -0
- package/dist/server/migrations-dir.d.ts +18 -0
- package/dist/server/redaction.d.ts +1 -0
- package/dist/server/registry.d.ts +5 -0
- package/dist/server/rows.d.ts +24 -0
- package/dist/server/skills-api.d.ts +170 -0
- package/dist/server/sqlite-store.d.ts +131 -0
- package/dist/server/store-fixtures.d.ts +25 -0
- package/dist/server/store.d.ts +170 -0
- package/dist/server/types.d.ts +337 -0
- package/dist/server/worker.d.ts +4 -0
- package/dist/storage.js +39 -2
- package/docs/skill-standard.md +211 -39
- package/migrations/postgres/0003_run_outputs_governance.sql +83 -0
- package/migrations/postgres/0004_hosted_pins.sql +28 -0
- package/migrations/postgres/0005_revision_tombstone_registry.sql +37 -0
- package/migrations/postgres/0005_tag_projection.sql +36 -0
- package/migrations/sqlite/0003_run_outputs_governance.sql +58 -0
- package/migrations/sqlite/0004_hosted_pins.sql +21 -0
- package/migrations/sqlite/0005_revision_tombstone_registry.sql +18 -0
- package/migrations/sqlite/0005_tag_projection.sql +25 -0
- package/package.json +12 -8
- package/schemas/skill.schema.json +181 -0
- package/agent-skills/README.md +0 -41
- package/agent-skills/fleet-package-rollout/SKILL.md +0 -169
- package/agent-skills/inbox/SKILL.md +0 -25
- package/agent-skills/inbox/scripts/inbox +0 -109
- package/agent-skills/inbox/tests/test_registered_sender_id.sh +0 -92
- package/agent-skills/inbox-monitor/SKILL.md +0 -41
- package/agent-skills/inbox-monitor/scripts/inbox_monitor.sh +0 -91
- package/agent-skills/inbox-monitor/scripts/test_inbox_monitor.sh +0 -71
- package/agent-skills/merge-pr/SKILL.md +0 -85
- package/agent-skills/merge-pr/references/merge-safety.md +0 -82
- package/agent-skills/merge-pr/scripts/merge_pr_guard.py +0 -694
- package/agent-skills/merge-pr/scripts/test_merge_pr_guard.py +0 -647
- package/agent-skills/merge-pr/tests/fixtures/multi-commit-synthesized.json +0 -28
- package/agent-skills/merge-pr/tests/fixtures/trailer-free-provider.json +0 -28
- package/agent-skills/skill-goal-execute/SKILL.md +0 -115
- package/agent-skills/skill-login/SKILL.md +0 -109
- package/agent-skills/skill-project-create/SKILL.md +0 -91
- package/agent-skills/skill-publish/SKILL.md +0 -254
- package/agent-skills/skill-publish/scripts/capture_registry.js +0 -47
- package/agent-skills/skill-publish/scripts/publish_with_git_head.sh +0 -143
- package/agent-skills/skill-publish/scripts/test_publish_with_git_head.sh +0 -231
- package/skills/_common/auth.ts +0 -45
- package/skills/_common/http-client.ts +0 -143
- package/skills/_common/index.ts +0 -26
- package/skills/_common/install.sh +0 -7
- package/skills/_common/installer.ts +0 -72
- package/skills/_common/skill-install.ts +0 -37
- package/skills/_common/vision.ts +0 -374
- package/skills/ad-creative-pack/SKILL.md +0 -55
- package/skills/ad-creative-pack/package.json +0 -10
- package/skills/analyze-data/CLAUDE.md +0 -16
- package/skills/analyze-data/SKILL.md +0 -112
- package/skills/analyze-data/package.json +0 -23
- package/skills/analyze-data/src/analysis.ts +0 -401
- package/skills/analyze-data/src/cli.ts +0 -66
- package/skills/analyze-data/src/formatters.ts +0 -235
- package/skills/analyze-data/src/index.ts +0 -74
- package/skills/analyze-data/src/logger.ts +0 -36
- package/skills/analyze-data/src/parsers.ts +0 -57
- package/skills/analyze-data/src/stats.ts +0 -151
- package/skills/analyze-data/src/types.ts +0 -85
- package/skills/analyze-data/tsconfig.json +0 -19
- package/skills/api-docs-portal/SKILL.md +0 -84
- package/skills/api-docs-portal/package.json +0 -35
- package/skills/api-docs-portal/src/index.ts +0 -919
- package/skills/api-docs-portal/tsconfig.json +0 -17
- package/skills/api-test-suite/CLAUDE.md +0 -19
- package/skills/api-test-suite/package.json +0 -27
- package/skills/api-test-suite/src/index.ts +0 -381
- package/skills/api-test-suite/tsconfig.json +0 -10
- package/skills/audio-extract/CLAUDE.md +0 -9
- package/skills/audio-extract/SKILL.md +0 -73
- package/skills/audio-extract/package.json +0 -23
- package/skills/audio-extract/src/index.ts +0 -323
- package/skills/audio-extract/tsconfig.json +0 -11
- package/skills/bio-sequence-tool/CLAUDE.md +0 -19
- package/skills/bio-sequence-tool/package.json +0 -27
- package/skills/bio-sequence-tool/src/index.ts +0 -85
- package/skills/bio-sequence-tool/tsconfig.json +0 -10
- package/skills/blog-article/CLAUDE.md +0 -12
- package/skills/blog-article/SKILL.md +0 -55
- package/skills/blog-article/package.json +0 -10
- package/skills/blog-article/tsconfig.json +0 -10
- package/skills/brand-assets/SKILL.md +0 -118
- package/skills/brand-assets/package.json +0 -35
- package/skills/brand-assets/src/cli.ts +0 -155
- package/skills/brand-assets/src/constants.ts +0 -8
- package/skills/brand-assets/src/extract.ts +0 -236
- package/skills/brand-assets/src/index.ts +0 -668
- package/skills/brand-assets/src/types.ts +0 -59
- package/skills/brand-assets/tsconfig.json +0 -17
- package/skills/brand-kit/SKILL.md +0 -54
- package/skills/brand-kit/package.json +0 -10
- package/skills/businessactivity/CLAUDE.md +0 -176
- package/skills/businessactivity/LICENSE +0 -192
- package/skills/businessactivity/README.md +0 -287
- package/skills/businessactivity/package.json +0 -25
- package/skills/businessactivity/scripts/publish.ts +0 -210
- package/skills/businessactivity/src/commands/activity.ts +0 -211
- package/skills/businessactivity/src/commands/function.ts +0 -227
- package/skills/businessactivity/src/commands/owner.ts +0 -193
- package/skills/businessactivity/src/commands/profile.ts +0 -121
- package/skills/businessactivity/src/commands/responsibility.ts +0 -264
- package/skills/businessactivity/src/commands/team.ts +0 -244
- package/skills/businessactivity/src/commands/workflow.ts +0 -359
- package/skills/businessactivity/src/index.ts +0 -3
- package/skills/businessactivity/src/lib/config.ts +0 -167
- package/skills/businessactivity/src/lib/output.ts +0 -76
- package/skills/businessactivity/src/lib/paths.ts +0 -79
- package/skills/businessactivity/src/lib/storage.ts +0 -95
- package/skills/businessactivity/src/types/index.ts +0 -86
- package/skills/businessactivity/tsconfig.json +0 -29
- package/skills/codefix/LICENSE +0 -192
- package/skills/codefix/README.md +0 -232
- package/skills/codefix/SKILL.md +0 -94
- package/skills/codefix/package.json +0 -21
- package/skills/codefix/src/fixers/batch.ts +0 -213
- package/skills/codefix/src/fixers/detector.ts +0 -160
- package/skills/codefix/src/fixers/index.ts +0 -7
- package/skills/codefix/src/fixers/runner.ts +0 -522
- package/skills/codefix/src/index-local.ts +0 -431
- package/skills/codefix/src/index.ts +0 -4
- package/skills/codefix/src/types.ts +0 -211
- package/skills/codefix/tsconfig.json +0 -15
- package/skills/commitpush/SKILL.md +0 -57
- package/skills/commitpush/package.json +0 -33
- package/skills/commitpush/src/index.ts +0 -34
- package/skills/commitpush/tsconfig.json +0 -17
- package/skills/commitpushpr/SKILL.md +0 -55
- package/skills/commitpushpr/package.json +0 -33
- package/skills/commitpushpr/src/index.ts +0 -34
- package/skills/commitpushpr/tsconfig.json +0 -17
- package/skills/compress-video/CLAUDE.md +0 -9
- package/skills/compress-video/SKILL.md +0 -79
- package/skills/compress-video/package.json +0 -23
- package/skills/compress-video/src/index.ts +0 -473
- package/skills/compress-video/tsconfig.json +0 -11
- package/skills/contract-review-report/SKILL.md +0 -52
- package/skills/contract-review-report/package.json +0 -10
- package/skills/customer-feedback-report/SKILL.md +0 -52
- package/skills/customer-feedback-report/package.json +0 -10
- package/skills/dashboard-builder/CLAUDE.md +0 -19
- package/skills/dashboard-builder/package.json +0 -29
- package/skills/dashboard-builder/src/index.ts +0 -150
- package/skills/dashboard-builder/tsconfig.json +0 -10
- package/skills/data-anonymizer/CLAUDE.md +0 -19
- package/skills/data-anonymizer/package.json +0 -27
- package/skills/data-anonymizer/src/index.ts +0 -183
- package/skills/data-anonymizer/tsconfig.json +0 -10
- package/skills/database-explorer/CLAUDE.md +0 -19
- package/skills/database-explorer/package.json +0 -29
- package/skills/database-explorer/src/index.ts +0 -95
- package/skills/database-explorer/tsconfig.json +0 -10
- package/skills/diff-viewer/CLAUDE.md +0 -19
- package/skills/diff-viewer/package.json +0 -30
- package/skills/diff-viewer/src/index.ts +0 -164
- package/skills/diff-viewer/tsconfig.json +0 -10
- package/skills/doc-read/SKILL.md +0 -45
- package/skills/doc-read/package.json +0 -29
- package/skills/doc-read/src/index.ts +0 -324
- package/skills/doc-read/tsconfig.json +0 -8
- package/skills/domainpurchase/LICENSE +0 -192
- package/skills/domainpurchase/SKILL.md +0 -29
- package/skills/domainpurchase/package.json +0 -30
- package/skills/domainpurchase/src/index.ts +0 -3
- package/skills/domainpurchase/tsconfig.json +0 -21
- package/skills/email-sequence/SKILL.md +0 -53
- package/skills/email-sequence/package.json +0 -10
- package/skills/experiment-power-calculator/CLAUDE.md +0 -19
- package/skills/experiment-power-calculator/package.json +0 -29
- package/skills/experiment-power-calculator/src/index.ts +0 -86
- package/skills/experiment-power-calculator/tsconfig.json +0 -10
- package/skills/extract-frames/CLAUDE.md +0 -19
- package/skills/extract-frames/package.json +0 -27
- package/skills/extract-frames/src/index.ts +0 -616
- package/skills/extract-frames/tsconfig.json +0 -10
- package/skills/file-organizer/CLAUDE.md +0 -19
- package/skills/file-organizer/package.json +0 -27
- package/skills/file-organizer/src/index.ts +0 -91
- package/skills/file-organizer/tsconfig.json +0 -10
- package/skills/folder-tree/CLAUDE.md +0 -19
- package/skills/folder-tree/package.json +0 -29
- package/skills/folder-tree/src/index.ts +0 -568
- package/skills/folder-tree/tsconfig.json +0 -10
- package/skills/form-filler/CLAUDE.md +0 -19
- package/skills/form-filler/package.json +0 -29
- package/skills/form-filler/src/index.ts +0 -81
- package/skills/form-filler/tsconfig.json +0 -10
- package/skills/generate-api-client/CLAUDE.md +0 -19
- package/skills/generate-api-client/package.json +0 -29
- package/skills/generate-api-client/src/generator.ts +0 -47
- package/skills/generate-api-client/src/index.ts +0 -92
- package/skills/generate-api-client/src/logger.ts +0 -34
- package/skills/generate-api-client/src/python-generator.ts +0 -245
- package/skills/generate-api-client/src/spec-loader.ts +0 -48
- package/skills/generate-api-client/src/type-mappers.ts +0 -79
- package/skills/generate-api-client/src/types.ts +0 -76
- package/skills/generate-api-client/src/typescript-generator.ts +0 -247
- package/skills/generate-api-client/tsconfig.json +0 -10
- package/skills/generate-chart/CLAUDE.md +0 -19
- package/skills/generate-chart/package.json +0 -27
- package/skills/generate-chart/src/index.ts +0 -510
- package/skills/generate-chart/tsconfig.json +0 -10
- package/skills/generate-dockerfile/CLAUDE.md +0 -19
- package/skills/generate-dockerfile/package.json +0 -27
- package/skills/generate-dockerfile/src/cli.ts +0 -78
- package/skills/generate-dockerfile/src/dockerfile-templates.ts +0 -392
- package/skills/generate-dockerfile/src/index.ts +0 -81
- package/skills/generate-dockerfile/src/logger.ts +0 -30
- package/skills/generate-dockerfile/src/project-detection.ts +0 -68
- package/skills/generate-dockerfile/src/support-files.ts +0 -171
- package/skills/generate-dockerfile/src/types.ts +0 -29
- package/skills/generate-dockerfile/tsconfig.json +0 -10
- package/skills/generate-env/CLAUDE.md +0 -19
- package/skills/generate-env/package.json +0 -29
- package/skills/generate-env/src/cli.ts +0 -85
- package/skills/generate-env/src/detection.ts +0 -161
- package/skills/generate-env/src/env-data.ts +0 -66
- package/skills/generate-env/src/generators.ts +0 -240
- package/skills/generate-env/src/index.ts +0 -120
- package/skills/generate-env/src/runtime.ts +0 -30
- package/skills/generate-env/src/types.ts +0 -32
- package/skills/generate-env/tsconfig.json +0 -10
- package/skills/generate-favicon/CLAUDE.md +0 -19
- package/skills/generate-favicon/package.json +0 -29
- package/skills/generate-favicon/src/index.ts +0 -421
- package/skills/generate-favicon/tsconfig.json +0 -10
- package/skills/generate-qrcode/CLAUDE.md +0 -19
- package/skills/generate-qrcode/package.json +0 -30
- package/skills/generate-qrcode/src/index.ts +0 -584
- package/skills/generate-qrcode/tsconfig.json +0 -10
- package/skills/generate-resume/CLAUDE.md +0 -19
- package/skills/generate-resume/package.json +0 -27
- package/skills/generate-resume/src/cli.ts +0 -157
- package/skills/generate-resume/src/index.ts +0 -178
- package/skills/generate-resume/src/parsers.ts +0 -95
- package/skills/generate-resume/src/renderers.ts +0 -538
- package/skills/generate-resume/src/security.ts +0 -39
- package/skills/generate-resume/src/types.ts +0 -86
- package/skills/generate-resume/tsconfig.json +0 -10
- package/skills/generate-sitemap/CLAUDE.md +0 -19
- package/skills/generate-sitemap/package.json +0 -27
- package/skills/generate-sitemap/src/index.ts +0 -626
- package/skills/generate-sitemap/tsconfig.json +0 -10
- package/skills/gif-maker/CLAUDE.md +0 -19
- package/skills/gif-maker/package.json +0 -30
- package/skills/gif-maker/src/index.ts +0 -600
- package/skills/gif-maker/tsconfig.json +0 -10
- package/skills/hook/LICENSE +0 -192
- package/skills/hook/README.md +0 -74
- package/skills/hook/SKILL.md +0 -85
- package/skills/hook/bunfig.toml +0 -5
- package/skills/hook/package.json +0 -28
- package/skills/hook/src/commands/create.ts +0 -112
- package/skills/hook/src/commands/events.ts +0 -37
- package/skills/hook/src/commands/validate.ts +0 -117
- package/skills/hook/src/index.ts +0 -118
- package/skills/hook/src/templates/root.ts +0 -196
- package/skills/hook/src/templates/source.ts +0 -647
- package/skills/hook/tsconfig.json +0 -18
- package/skills/http-server/CLAUDE.md +0 -19
- package/skills/http-server/package.json +0 -29
- package/skills/http-server/src/index.ts +0 -51
- package/skills/http-server/tsconfig.json +0 -10
- package/skills/implementation/LICENSE +0 -192
- package/skills/implementation/README.md +0 -53
- package/skills/implementation/SKILL.md +0 -57
- package/skills/implementation/bunfig.toml +0 -5
- package/skills/implementation/package.json +0 -28
- package/skills/implementation/src/commands/create.ts +0 -187
- package/skills/implementation/src/index.ts +0 -62
- package/skills/implementation/tsconfig.json +0 -18
- package/skills/implementation-plan/CLAUDE.md +0 -19
- package/skills/implementation-plan/package.json +0 -29
- package/skills/implementation-plan/src/index.ts +0 -520
- package/skills/implementation-plan/tsconfig.json +0 -10
- package/skills/implementation-todo/CLAUDE.md +0 -19
- package/skills/implementation-todo/package.json +0 -29
- package/skills/implementation-todo/src/index.ts +0 -429
- package/skills/implementation-todo/tsconfig.json +0 -10
- package/skills/invoice/.env.example +0 -3
- package/skills/invoice/CLAUDE.md +0 -31
- package/skills/invoice/LICENSE +0 -192
- package/skills/invoice/README.md +0 -70
- package/skills/invoice/package.json +0 -26
- package/skills/invoice/src/commands/companies.ts +0 -202
- package/skills/invoice/src/commands/config.ts +0 -132
- package/skills/invoice/src/commands/generate.ts +0 -177
- package/skills/invoice/src/commands/invoices.ts +0 -218
- package/skills/invoice/src/index.ts +0 -3
- package/skills/invoice/src/lib/api.ts +0 -124
- package/skills/invoice/src/lib/storage.ts +0 -171
- package/skills/invoice/src/types/index.ts +0 -86
- package/skills/invoice/src/utils/logger.ts +0 -33
- package/skills/invoice/src/utils/paths.ts +0 -25
- package/skills/invoice/tsconfig.json +0 -23
- package/skills/invoice-reconciliation/SKILL.md +0 -98
- package/skills/invoice-reconciliation/package.json +0 -36
- package/skills/invoice-reconciliation/src/index.ts +0 -743
- package/skills/invoice-reconciliation/tsconfig.json +0 -17
- package/skills/landing-page-pack/SKILL.md +0 -55
- package/skills/landing-page-pack/package.json +0 -10
- package/skills/latex-table-generator/CLAUDE.md +0 -19
- package/skills/latex-table-generator/package.json +0 -29
- package/skills/latex-table-generator/src/index.ts +0 -113
- package/skills/latex-table-generator/tsconfig.json +0 -10
- package/skills/logo-design/SKILL.md +0 -94
- package/skills/logo-design/package.json +0 -35
- package/skills/logo-design/src/cli.ts +0 -132
- package/skills/logo-design/src/constants.ts +0 -5
- package/skills/logo-design/src/docs.ts +0 -102
- package/skills/logo-design/src/geometry.ts +0 -324
- package/skills/logo-design/src/index.ts +0 -212
- package/skills/logo-design/src/palette.ts +0 -258
- package/skills/logo-design/src/types.ts +0 -50
- package/skills/logo-design/tsconfig.json +0 -17
- package/skills/lorem-generator/CLAUDE.md +0 -19
- package/skills/lorem-generator/package.json +0 -29
- package/skills/lorem-generator/src/index.ts +0 -59
- package/skills/lorem-generator/tsconfig.json +0 -10
- package/skills/managemcp/CLAUDE.md +0 -14
- package/skills/managemcp/README.md +0 -24
- package/skills/managemcp/package.json +0 -16
- package/skills/managemcp/src/index.ts +0 -3
- package/skills/managemcp/tsconfig.json +0 -27
- package/skills/markdown-validator/CLAUDE.md +0 -19
- package/skills/markdown-validator/package.json +0 -29
- package/skills/markdown-validator/src/index.ts +0 -92
- package/skills/markdown-validator/tsconfig.json +0 -10
- package/skills/market-research-report/SKILL.md +0 -51
- package/skills/market-research-report/package.json +0 -10
- package/skills/meeting-pack/SKILL.md +0 -52
- package/skills/meeting-pack/package.json +0 -10
- package/skills/merge-pdfs/CLAUDE.md +0 -19
- package/skills/merge-pdfs/package.json +0 -31
- package/skills/merge-pdfs/src/index.ts +0 -427
- package/skills/merge-pdfs/tsconfig.json +0 -10
- package/skills/migration-plan-pack/SKILL.md +0 -56
- package/skills/migration-plan-pack/package.json +0 -10
- package/skills/monitor/SKILL.md +0 -69
- package/skills/monitor/package.json +0 -33
- package/skills/monitor/src/index.ts +0 -34
- package/skills/monitor/tsconfig.json +0 -17
- package/skills/one-page-website/SKILL.md +0 -128
- package/skills/one-page-website/package.json +0 -34
- package/skills/one-page-website/src/design.ts +0 -336
- package/skills/one-page-website/src/docs.ts +0 -159
- package/skills/one-page-website/src/index.ts +0 -357
- package/skills/one-page-website/src/page.ts +0 -340
- package/skills/one-page-website/src/styles.ts +0 -508
- package/skills/one-page-website/src/types.ts +0 -78
- package/skills/one-page-website/tsconfig.json +0 -17
- package/skills/pdf-generate/CLAUDE.md +0 -19
- package/skills/pdf-generate/SKILL.md +0 -86
- package/skills/pdf-generate/package.json +0 -21
- package/skills/pdf-generate/src/cli.ts +0 -162
- package/skills/pdf-generate/src/html.ts +0 -84
- package/skills/pdf-generate/src/index.ts +0 -62
- package/skills/pdf-generate/src/markdown.ts +0 -27
- package/skills/pdf-generate/src/pdf-writer.ts +0 -78
- package/skills/pdf-generate/src/runtime.ts +0 -34
- package/skills/pdf-generate/src/security.ts +0 -37
- package/skills/pdf-generate/src/templates.ts +0 -311
- package/skills/pdf-generate/src/types.ts +0 -28
- package/skills/pdf-generate/tsconfig.json +0 -16
- package/skills/pdf-to-dataset/SKILL.md +0 -88
- package/skills/pdf-to-dataset/package.json +0 -37
- package/skills/pdf-to-dataset/src/index.ts +0 -790
- package/skills/pdf-to-dataset/tsconfig.json +0 -17
- package/skills/pdf-to-markdown/SKILL.md +0 -81
- package/skills/pdf-to-markdown/package.json +0 -35
- package/skills/pdf-to-markdown/src/index.ts +0 -694
- package/skills/pdf-to-markdown/tsconfig.json +0 -17
- package/skills/performance-audit-report/SKILL.md +0 -49
- package/skills/performance-audit-report/package.json +0 -10
- package/skills/pitch-deck/SKILL.md +0 -51
- package/skills/pitch-deck/package.json +0 -10
- package/skills/product-mockup/SKILL.md +0 -107
- package/skills/product-mockup/package.json +0 -32
- package/skills/product-mockup/src/cli.ts +0 -150
- package/skills/product-mockup/src/design.ts +0 -151
- package/skills/product-mockup/src/docs.ts +0 -134
- package/skills/product-mockup/src/index.ts +0 -182
- package/skills/product-mockup/src/render.ts +0 -407
- package/skills/product-mockup/src/types.ts +0 -66
- package/skills/product-mockup/tsconfig.json +0 -17
- package/skills/proposal-pack/SKILL.md +0 -53
- package/skills/proposal-pack/package.json +0 -10
- package/skills/read-csv/SKILL.md +0 -62
- package/skills/read-csv/package.json +0 -37
- package/skills/read-csv/src/index.ts +0 -356
- package/skills/read-csv/tsconfig.json +0 -17
- package/skills/read-excel/SKILL.md +0 -64
- package/skills/read-excel/package.json +0 -36
- package/skills/read-excel/src/index.ts +0 -266
- package/skills/read-excel/tsconfig.json +0 -17
- package/skills/regex-tester/CLAUDE.md +0 -19
- package/skills/regex-tester/package.json +0 -27
- package/skills/regex-tester/src/index.ts +0 -183
- package/skills/regex-tester/tsconfig.json +0 -10
- package/skills/repo-onboarding-report/SKILL.md +0 -52
- package/skills/repo-onboarding-report/package.json +0 -10
- package/skills/scancommitpr/SKILL.md +0 -178
- package/skills/scancommitpr/package.json +0 -34
- package/skills/scancommitpr/src/index.ts +0 -44
- package/skills/scancommitpr/tsconfig.json +0 -13
- package/skills/scancommitpush/SKILL.md +0 -174
- package/skills/scancommitpush/package.json +0 -32
- package/skills/scancommitpush/src/index.ts +0 -44
- package/skills/scancommitpush/tsconfig.json +0 -13
- package/skills/scientific-figure-check/CLAUDE.md +0 -19
- package/skills/scientific-figure-check/package.json +0 -29
- package/skills/scientific-figure-check/src/index.ts +0 -83
- package/skills/scientific-figure-check/tsconfig.json +0 -10
- package/skills/security-audit/CLAUDE.md +0 -19
- package/skills/security-audit/package.json +0 -27
- package/skills/security-audit/src/index.ts +0 -145
- package/skills/security-audit/tsconfig.json +0 -10
- package/skills/security-audit-report/SKILL.md +0 -52
- package/skills/security-audit-report/package.json +0 -10
- package/skills/seo-content-pack/SKILL.md +0 -54
- package/skills/seo-content-pack/package.json +0 -10
- package/skills/siteanalyze/SKILL.md +0 -25
- package/skills/siteanalyze/package.json +0 -27
- package/skills/siteanalyze/src/index.ts +0 -592
- package/skills/slide-deck-generator/SKILL.md +0 -93
- package/skills/slide-deck-generator/package.json +0 -38
- package/skills/slide-deck-generator/src/cli.ts +0 -133
- package/skills/slide-deck-generator/src/index.ts +0 -148
- package/skills/slide-deck-generator/src/model.ts +0 -307
- package/skills/slide-deck-generator/src/pptx.ts +0 -143
- package/skills/slide-deck-generator/src/render.ts +0 -248
- package/skills/slide-deck-generator/src/types.ts +0 -114
- package/skills/slide-deck-generator/src/utils.ts +0 -53
- package/skills/slide-deck-generator/tsconfig.json +0 -17
- package/skills/social-content-calendar/SKILL.md +0 -54
- package/skills/social-content-calendar/package.json +0 -10
- package/skills/split-pdf/CLAUDE.md +0 -19
- package/skills/split-pdf/package.json +0 -30
- package/skills/split-pdf/src/index.ts +0 -301
- package/skills/split-pdf/tsconfig.json +0 -10
- package/skills/statistical-test-selector/CLAUDE.md +0 -19
- package/skills/statistical-test-selector/package.json +0 -27
- package/skills/statistical-test-selector/src/index.ts +0 -75
- package/skills/statistical-test-selector/tsconfig.json +0 -10
- package/skills/test-suite-generator/SKILL.md +0 -51
- package/skills/test-suite-generator/package.json +0 -10
- package/skills/tmux-session/SKILL.md +0 -109
- package/skills/tmux-session/package.json +0 -33
- package/skills/tmux-session/src/index.ts +0 -34
- package/skills/tmux-session/tsconfig.json +0 -17
- package/skills/todos-plan/SKILL.md +0 -363
- package/skills/todos-plan/agents/openai.yaml +0 -4
- package/skills/todos-plan/package.json +0 -9
- package/skills/todos-plan/src/index.ts +0 -68
- package/skills/tsconfig.base.json +0 -12
- package/skills/validate-config/CLAUDE.md +0 -19
- package/skills/validate-config/package.json +0 -29
- package/skills/validate-config/src/index.ts +0 -56
- package/skills/validate-config/tsconfig.json +0 -10
- package/skills/video-downloader/CLAUDE.md +0 -19
- package/skills/video-downloader/package.json +0 -29
- package/skills/video-downloader/src/index.ts +0 -561
- package/skills/video-downloader/tsconfig.json +0 -10
- package/skills/video-highlight-pack/SKILL.md +0 -54
- package/skills/video-highlight-pack/package.json +0 -10
- package/skills/watermark/CLAUDE.md +0 -19
- package/skills/watermark/package.json +0 -32
- package/skills/watermark/src/index.ts +0 -587
- package/skills/watermark/tsconfig.json +0 -10
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "../tsconfig.base.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"module": "ESNext",
|
|
5
|
-
"outDir": "./dist",
|
|
6
|
-
"rootDir": "./src",
|
|
7
|
-
"resolveJsonModule": true,
|
|
8
|
-
"noEmit": true
|
|
9
|
-
},
|
|
10
|
-
"include": [
|
|
11
|
-
"src/**/*"
|
|
12
|
-
],
|
|
13
|
-
"exclude": [
|
|
14
|
-
"node_modules",
|
|
15
|
-
"dist"
|
|
16
|
-
]
|
|
17
|
-
}
|
|
@@ -1,363 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: todos-plan
|
|
3
|
-
description: "Create, edit, verify, execute, route, or synchronize Todos plans while preserving provider roles, authenticated authority, full stable IDs, and durable task evidence."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Todos Plan
|
|
7
|
-
|
|
8
|
-
Use the Todos CLI as the source of truth. Markdown plan files are durable
|
|
9
|
-
human-readable artifacts; they do not replace task or plan rows. Never edit a
|
|
10
|
-
Todos database, hosted row, generated registry, or cached task store directly.
|
|
11
|
-
|
|
12
|
-
## Required Operation-Authority Gate
|
|
13
|
-
|
|
14
|
-
Apply this gate before every non-help Todos read or write.
|
|
15
|
-
|
|
16
|
-
1. Feature-detect the installed surface with metadata-only help:
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
todos --help
|
|
20
|
-
todos <command> --help
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
A command or flag absent from installed help is unsupported. Help presence
|
|
24
|
-
is necessary but not sufficient: the selected authenticated authority must
|
|
25
|
-
also support the exact invocation. On `REMOTE_COMMAND_UNSUPPORTED` or an
|
|
26
|
-
equivalent capability error, stop instead of substituting another CLI,
|
|
27
|
-
bootstrapping a localhost service, extracting internal source, or silently
|
|
28
|
-
changing the data path.
|
|
29
|
-
2. Record a non-secret provider-role table from package-owned configuration and
|
|
30
|
-
authenticated readback:
|
|
31
|
-
|
|
32
|
-
| Role | Required proof |
|
|
33
|
-
|---|---|
|
|
34
|
-
| Product story | `user-hosted` or `Hasna SaaS`. Hasna-operated AWS dogfood is customer-zero of the user-hosted story. |
|
|
35
|
-
| Client data path | A local SQLite file or the server HTTP API. A client never opens PostgreSQL directly. |
|
|
36
|
-
| Server operator | The party operating the authenticated Todos server. |
|
|
37
|
-
| Authenticated authority | Exact API origin, tenant, and principal returned by the installed client. |
|
|
38
|
-
| Server backend | `sqlite` or `postgresql`, selected by server database configuration. This is storage, not authorization. |
|
|
39
|
-
| Plan-artifact writer | The package-owned atomic writer and receipt lookup used for Markdown artifacts. |
|
|
40
|
-
|
|
41
|
-
These are independent facts. Hasna SaaS is a product story, not a backend.
|
|
42
|
-
The server backend does not authorize a task operation. Do not derive
|
|
43
|
-
authority from a location word, provider name, hostname guess, or retired
|
|
44
|
-
placement enum.
|
|
45
|
-
3. Before production task data access, run the installed authenticated health
|
|
46
|
-
check:
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
todos health --json
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
Require a successful authenticated HTTP authority with the intended tenant
|
|
53
|
-
and no silent fallback. A local SQLite result is valid only for an explicitly
|
|
54
|
-
selected on-box user-hosted workflow. Ambiguous authority, failed auth,
|
|
55
|
-
unavailable routing, unsupported commands, or an unexpected backend fails
|
|
56
|
-
closed. Never fall back from an authenticated production authority to a
|
|
57
|
-
local file after an error.
|
|
58
|
-
4. Resolve the project through the authenticated authority, capture its full
|
|
59
|
-
UUID, and prove scoped status:
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
todos --json projects --show <project-ref>
|
|
63
|
-
todos status --project <full-project-uuid> --json
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
Require the returned project identity, tenant, and authority to match the
|
|
67
|
-
intended operation. Never continue from a short ID, stale slug, pathname
|
|
68
|
-
guess, or cross-project result.
|
|
69
|
-
5. Before an object-specific operation, prove the exact full stable UUID with
|
|
70
|
-
the corresponding singleton read:
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
todos inspect <full-task-uuid>
|
|
74
|
-
todos plans --show <full-plan-uuid>
|
|
75
|
-
todos --json lists --show <full-task-list-uuid>
|
|
76
|
-
todos template-preview <full-template-uuid>
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
Use the full UUID returned by the authority for every later read or
|
|
80
|
-
mutation. If exact identity cannot be proven, stop.
|
|
81
|
-
|
|
82
|
-
Never print credentials or raw authentication material.
|
|
83
|
-
|
|
84
|
-
## Production Collection and Completeness Gate
|
|
85
|
-
|
|
86
|
-
Prefer exact full-ID singleton reads. If a production list, search, history, or
|
|
87
|
-
export is required to resolve or verify an object, use only a package-owned
|
|
88
|
-
producer and reviewed collector that enforce caller- or policy-selected
|
|
89
|
-
positive aggregate caps for calls, items, serialized bytes, and wall time
|
|
90
|
-
before materialization. The collector must own every producer call under the
|
|
91
|
-
remaining budgets, validate complete responses incrementally without uncapped
|
|
92
|
-
buffering, stop at the first excess, and discard the entire result on failure.
|
|
93
|
-
|
|
94
|
-
Drain every page within those aggregate caps. Reject repeated cursors, invalid
|
|
95
|
-
or partial JSON, trailing unvalidated data, producer failure, timeout, any cap
|
|
96
|
-
hit, scope drift, or a missing or ambiguous terminal signal. A larger cap,
|
|
97
|
-
consumer-side truncation, shell pipeline, generic timeout wrapper, or absence
|
|
98
|
-
from an incomplete result cannot prove completeness. Only an explicit terminal
|
|
99
|
-
marker such as `has_more=false` or equivalent exhaustion metadata can.
|
|
100
|
-
|
|
101
|
-
## Fresh Production Mutation Gate
|
|
102
|
-
|
|
103
|
-
Immediately before every production mutation:
|
|
104
|
-
|
|
105
|
-
1. Re-read the exact full-UUID target and every exact parent object from the
|
|
106
|
-
same authenticated authority.
|
|
107
|
-
2. Preserve the authority-issued revision, version, ETag, or equivalent
|
|
108
|
-
compare-and-swap token for the object being changed. Revalidate project,
|
|
109
|
-
plan, task-list, task, lock, dependency, and approval scope as applicable.
|
|
110
|
-
3. Submit the mutation conditionally against that fresh token. Each mutation,
|
|
111
|
-
including a comment, verification record, update, approval, completion,
|
|
112
|
-
deletion, lock change, or dependency change, needs its own fresh pre-read
|
|
113
|
-
and token. Never reuse a token or treat one successful write as authority
|
|
114
|
-
for a later write.
|
|
115
|
-
4. Re-read every exact affected UUID from the same authority and verify the
|
|
116
|
-
intended transition while preserving unrelated fields.
|
|
117
|
-
|
|
118
|
-
A read followed by an unconditional write is not a drift gate. If installed
|
|
119
|
-
help and the active authority do not expose a version token and conditional
|
|
120
|
-
mutation control for the exact operation, that production mutation is
|
|
121
|
-
non-runnable.
|
|
122
|
-
|
|
123
|
-
For every production create or append operation, additionally require:
|
|
124
|
-
|
|
125
|
-
- every exact stable parent UUID advertised by the data model;
|
|
126
|
-
- separate caller-stable operation and step identities plus the
|
|
127
|
-
authority-documented deterministic C3 key bound to exact immutable
|
|
128
|
-
semantics, parents, payload, and preconditions; and
|
|
129
|
-
- reconciliation through the same authority by the returned full UUID or an
|
|
130
|
-
exact idempotency-key lookup.
|
|
131
|
-
|
|
132
|
-
After a timeout or ambiguous response, reconcile before any retry. One matching
|
|
133
|
-
accepted object may be accepted only after its exact step-bound receipt and
|
|
134
|
-
full readback. Zero accepted effects is not success. A single retry is
|
|
135
|
-
permitted only under C8. Any accepted step enters C9 forward repair or
|
|
136
|
-
receipt-scoped compensation instead of retry. Never issue a blind replacement
|
|
137
|
-
create.
|
|
138
|
-
|
|
139
|
-
## Named C1-C9 Production Mutation Envelope
|
|
140
|
-
|
|
141
|
-
Every production create, update, completion, approval, assignment, dependency
|
|
142
|
-
or lock change, delete, comment, verification/evidence record, export, plan
|
|
143
|
-
artifact write, or other state mutation must close one immutable envelope whose
|
|
144
|
-
fields are explicitly named `C1` through `C9`. Existing outcome authorization
|
|
145
|
-
is enough; do not insert a duplicate approval. If the authenticated authority
|
|
146
|
-
or package-owned plan-artifact writer cannot prove a clause, that path is
|
|
147
|
-
non-runnable.
|
|
148
|
-
|
|
149
|
-
- **C1 Authority, provider roles, full targets, and immediate preimage.**
|
|
150
|
-
Record the product story, provider-role table, authenticated authority and
|
|
151
|
-
tenant, server backend, full project UUID, and every full plan, task-list,
|
|
152
|
-
task, template, export, and artifact target. Immediately before submission,
|
|
153
|
-
perform bounded complete same-authority reads of every existing target and
|
|
154
|
-
parent, preserving required full fields and revisions/ETags. For create,
|
|
155
|
-
require exact bounded terminal authority-issued absence; for an artifact,
|
|
156
|
-
capture exact absence or the full byte preimage and SHA-256.
|
|
157
|
-
- **C2 Authority-enforced exact-prestate precondition.** Require
|
|
158
|
-
create-if-absent for row creates/appends and a fresh exact full-target-UUID
|
|
159
|
-
CAS/`If-Match` for every existing-row mutation. Bind each precondition to the
|
|
160
|
-
full UUID and complete C1 state or authority-issued revision. Artifact
|
|
161
|
-
creation must be atomic no-overwrite; replacement must be an atomic expected
|
|
162
|
-
full-preimage mutation bound to the prior SHA-256 and bytes. Client-side
|
|
163
|
-
checks, editor saves, shell redirection, and read-then-unconditional-write do
|
|
164
|
-
not qualify.
|
|
165
|
-
- **C3 Stable distinct step identities and deterministic keys.** Create one
|
|
166
|
-
caller-stable operation identity and a distinct caller-stable step identity
|
|
167
|
-
for every ordered manifest entry, including a singleton. Supply the
|
|
168
|
-
authority-documented deterministic key for each step, bound to operation ID,
|
|
169
|
-
step ID, ordinal, immutable semantics, all full targets, canonical payload
|
|
170
|
-
or artifact digest, and exact C1/C2 state. Never invent a key algorithm or
|
|
171
|
-
reuse identities or keys for a resubmission.
|
|
172
|
-
- **C4 Immutable step-bound receipts.** Require exactly one immutable receipt
|
|
173
|
-
from the authority or package-owned artifact writer for every ordered step.
|
|
174
|
-
It must bind operation ID, distinct step ID, ordinal, deterministic key,
|
|
175
|
-
authority/tenant, full targets, consumed pre-state, canonical payload digest,
|
|
176
|
-
disposition, accepted effect if any, resulting revision or artifact
|
|
177
|
-
SHA-256/byte length, and exact receipt identity. Multi-step work also needs an
|
|
178
|
-
immutable coordinator receipt binding the ordered step receipts and terminal
|
|
179
|
-
aggregate state.
|
|
180
|
-
- **C5 Exact terminal lookup with hard caps.** Look up the exact receipt,
|
|
181
|
-
operation, or deterministic key through the same authority under positive
|
|
182
|
-
finite authority-enforced aggregate caps for calls, items, serialized bytes,
|
|
183
|
-
and wall time. The artifact writer must provide an equivalent exact terminal
|
|
184
|
-
receipt lookup. Client-only limits, manual cursor chasing, shell timeouts, or
|
|
185
|
-
an uncapped filesystem scan do not qualify.
|
|
186
|
-
- **C6 Fail closed.** Do not claim success or execute a dependent step if any
|
|
187
|
-
cap is missing, zero, unlimited, client-only, or hit; output is partial,
|
|
188
|
-
incomplete, nonterminal, invalid, or scope-drifted; or lookup returns zero or
|
|
189
|
-
multiple matches. A terminal zero-effect result is nonacceptance, not
|
|
190
|
-
success, and may enter only C8.
|
|
191
|
-
- **C7 Exactly-one result, full readback, and duplicate proof.** Require
|
|
192
|
-
exactly one matching immutable step receipt and exactly one accepted effect
|
|
193
|
-
for every accepted ordered step, plus the matching coordinator receipt for
|
|
194
|
-
multi-step work. Perform bounded complete readback of every affected UUID
|
|
195
|
-
from the same authority and exact full-byte readback of every artifact by
|
|
196
|
-
path and SHA-256. Verify requested and preserved fields, revisions,
|
|
197
|
-
identities, ordinals, parent scope, and that each deterministic key maps to
|
|
198
|
-
the same receipt, target, payload/preimage digest, exact pre-state, and
|
|
199
|
-
precondition.
|
|
200
|
-
- **C8 Restricted fresh-identity retry.** Allow at most one mutation retry,
|
|
201
|
-
only after exact C5 lookup proves exactly one immutable terminal
|
|
202
|
-
nonacceptance receipt for every submitted step and zero accepted effects for
|
|
203
|
-
the operation. Immediately before resubmission, repeat the full C1 read,
|
|
204
|
-
capture fresh C2 state, freeze a new ordered manifest, and create a new
|
|
205
|
-
operation ID, new distinct step IDs, and new deterministic keys. Ambiguous,
|
|
206
|
-
accepted, zero-match, nonterminal, incomplete, or multiply matched outcomes
|
|
207
|
-
forbid retry.
|
|
208
|
-
- **C9 Ordered immutable manifest, compensation, and repair.** Before the
|
|
209
|
-
first write, freeze an ordered immutable manifest, including a one-step
|
|
210
|
-
manifest for a singleton. Every entry contains its ordinal, operation ID,
|
|
211
|
-
distinct step ID, dependencies, full targets and parents, exact C1 state, C2
|
|
212
|
-
preconditions, deterministic key, intended receipt identity, and
|
|
213
|
-
authority-documented forward-repair or receipt-scoped compensation route.
|
|
214
|
-
Once a step is submitted, do not rewrite or blind-rerun the manifest.
|
|
215
|
-
Compensation is permitted only for an exactly identified accepted receipt;
|
|
216
|
-
every compensating write is a new operation with its own C1-C9 envelope.
|
|
217
|
-
|
|
218
|
-
Task and plan titles, descriptions, comments, verification commands and
|
|
219
|
-
summaries, completion notes, export contents, plan Markdown, and any other
|
|
220
|
-
private payload must not appear in argv, shell history, diagnostics,
|
|
221
|
-
environment variables, or ad hoc temporary files. Submit bytes only through a
|
|
222
|
-
package-owned protected input channel identified by a non-secret opaque
|
|
223
|
-
descriptor. The descriptor may appear in argv only when it neither reveals nor
|
|
224
|
-
encodes the private value. If the installed package exposes only direct
|
|
225
|
-
positional or flag values for a private field, that production mutation is
|
|
226
|
-
non-runnable.
|
|
227
|
-
|
|
228
|
-
## Inputs
|
|
229
|
-
|
|
230
|
-
Resolve these at runtime; none has a built-in default:
|
|
231
|
-
|
|
232
|
-
- `<full-project-uuid>`: authoritative project UUID.
|
|
233
|
-
- `<full-plan-uuid>`: authoritative plan UUID when the plan exists.
|
|
234
|
-
- `<full-task-uuid>`: authoritative task UUID for the current work item.
|
|
235
|
-
- `<plan-slug>`: caller- or policy-selected stable lowercase slug.
|
|
236
|
-
- `<agent-name>`: inherited agent identity when task state is updated.
|
|
237
|
-
|
|
238
|
-
Commands containing angle-bracket placeholders are illustrative. Replace every
|
|
239
|
-
placeholder with an authority-proven value before execution.
|
|
240
|
-
|
|
241
|
-
## Authoring Workflow
|
|
242
|
-
|
|
243
|
-
1. Apply the Required Operation-Authority Gate.
|
|
244
|
-
2. Inspect the exact current task and, when present, the exact plan:
|
|
245
|
-
|
|
246
|
-
```bash
|
|
247
|
-
todos inspect <full-task-uuid>
|
|
248
|
-
todos plans --show <full-plan-uuid>
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
3. Create or update the relative Markdown artifact through the package-owned
|
|
252
|
-
protected artifact writer:
|
|
253
|
-
|
|
254
|
-
```text
|
|
255
|
-
.hasna/todos/plans/<full-project-uuid>/<plan-slug>.md
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
Pass Markdown bytes by opaque descriptor, not argv or shell redirection.
|
|
259
|
-
For create, require atomic no-overwrite and a receipt with path, byte length,
|
|
260
|
-
SHA-256, operation ID, step ID, and deterministic key. For update, supply the
|
|
261
|
-
exact expected preimage bytes and SHA-256, require atomic replacement, and
|
|
262
|
-
retain the immutable before/after receipt. Immediately perform exact
|
|
263
|
-
full-byte readback and hash verification. If the package-owned writer lacks
|
|
264
|
-
these controls, do not write the artifact.
|
|
265
|
-
4. Use Todos CLI commands for authoritative state. Private values below are
|
|
266
|
-
represented only by package-owned opaque descriptors:
|
|
267
|
-
|
|
268
|
-
```bash
|
|
269
|
-
todos add <opaque-task-create-descriptor> --project <full-project-uuid> --plan <full-plan-uuid> <C1-C9-controls>
|
|
270
|
-
todos update <full-task-uuid> <opaque-update-descriptor> <C1-C9-controls>
|
|
271
|
-
todos comment <full-task-uuid> <opaque-comment-descriptor> <C1-C9-controls>
|
|
272
|
-
todos record-verification <full-task-uuid> <opaque-evidence-descriptor> --agent <agent-name> <C1-C9-controls>
|
|
273
|
-
```
|
|
274
|
-
|
|
275
|
-
The descriptors and `<C1-C9-controls>` are capability requirements, not
|
|
276
|
-
literal flags. Resolve only package-documented forms from current help and
|
|
277
|
-
the authenticated authority contract. Run a production form only when every
|
|
278
|
-
required control exists.
|
|
279
|
-
5. Read back every created or changed object using its returned full UUID.
|
|
280
|
-
6. Record verification as work proceeds. Complete only the task whose
|
|
281
|
-
acceptance criteria are satisfied:
|
|
282
|
-
|
|
283
|
-
```bash
|
|
284
|
-
todos --agent <agent-name> done <full-task-uuid> <opaque-completion-descriptor> <C1-C9-controls>
|
|
285
|
-
```
|
|
286
|
-
|
|
287
|
-
Task completion requires a new exact task read and fresh token after the
|
|
288
|
-
final preceding mutation.
|
|
289
|
-
|
|
290
|
-
## Plan Artifact Requirements
|
|
291
|
-
|
|
292
|
-
The relative Markdown artifact must include:
|
|
293
|
-
|
|
294
|
-
- full Todos project, plan, and task UUIDs where applicable;
|
|
295
|
-
- scope and out-of-scope boundaries;
|
|
296
|
-
- acceptance criteria and dependencies;
|
|
297
|
-
- rollout or recovery notes when relevant;
|
|
298
|
-
- verification commands and evidence references; and
|
|
299
|
-
- residual risks.
|
|
300
|
-
|
|
301
|
-
Draft-only artifacts must say that no authoritative plan row exists. Do not
|
|
302
|
-
invent placeholder UUIDs or allow workers to execute against a draft identity.
|
|
303
|
-
|
|
304
|
-
## Worker Routing
|
|
305
|
-
|
|
306
|
-
Task-triggered workers receive:
|
|
307
|
-
|
|
308
|
-
- full task, plan, and project UUIDs;
|
|
309
|
-
- repository root plus repo-relative allowed and out-of-scope paths;
|
|
310
|
-
- Todos CLI source-of-truth instruction;
|
|
311
|
-
- validation and evidence requirements; and
|
|
312
|
-
- adversarial verification requirement.
|
|
313
|
-
|
|
314
|
-
Use isolated work scopes. Do not route new repo-mutating work through prompt
|
|
315
|
-
paste. Native Codewith goals and loops are Codewith mechanisms; OpenLoops
|
|
316
|
-
workflows and runs are separate and must be named and recorded as OpenLoops
|
|
317
|
-
only when that system is actually used.
|
|
318
|
-
|
|
319
|
-
## Destructive Plan Operations
|
|
320
|
-
|
|
321
|
-
Plan completion or deletion requires exact scope already authorized by the
|
|
322
|
-
caller and the Fresh Production Mutation Gate:
|
|
323
|
-
|
|
324
|
-
```bash
|
|
325
|
-
todos plans --show <full-plan-uuid>
|
|
326
|
-
todos plans --complete <full-plan-uuid> <C1-C9-controls>
|
|
327
|
-
todos plans --delete <full-plan-uuid> <C1-C9-controls>
|
|
328
|
-
```
|
|
329
|
-
|
|
330
|
-
These forms are syntax references only. If the client cannot submit the exact
|
|
331
|
-
operation conditionally against the freshly read plan version, do not run it
|
|
332
|
-
in production. Re-read the exact plan after completion. After deletion require
|
|
333
|
-
an authoritative exact-ID tombstone or not-found result distinguishable from
|
|
334
|
-
auth, routing, transport, and incomplete collection failure.
|
|
335
|
-
|
|
336
|
-
Do not add a duplicate approval gate when the caller already authorized the
|
|
337
|
-
exact outcome. If the exact plan identity or destructive scope is new, stop.
|
|
338
|
-
|
|
339
|
-
## Done Criteria
|
|
340
|
-
|
|
341
|
-
- The Required Operation-Authority Gate passed.
|
|
342
|
-
- The provider-role table, authenticated authority, and server backend were
|
|
343
|
-
recorded as independent facts.
|
|
344
|
-
- Every required collection was producer-bounded and explicitly terminal
|
|
345
|
-
without hitting an aggregate cap.
|
|
346
|
-
- All commands and flags exist in installed help and on the active authority.
|
|
347
|
-
- The plan artifact is relative and linked to authority-proven full UUIDs.
|
|
348
|
-
- Every production mutation has a complete immutable named C1-C9 envelope.
|
|
349
|
-
- Every artifact create/update used atomic no-overwrite or exact-preimage
|
|
350
|
-
semantics, immutable receipts, and full byte/hash readback.
|
|
351
|
-
- Every existing-object mutation used a fresh same-authority CAS token and was
|
|
352
|
-
read back from the same authority.
|
|
353
|
-
- Every create or append used exact parent UUIDs, separate operation/step
|
|
354
|
-
identities, the authority-documented deterministic C3 key, and bounded
|
|
355
|
-
terminal reconciliation before success was claimed.
|
|
356
|
-
- Verification, changed files, and residual risks are recorded.
|
|
357
|
-
- Adversarial verification is reconciled before completion.
|
|
358
|
-
|
|
359
|
-
## Related
|
|
360
|
-
|
|
361
|
-
- [[todos-plans]] — plan, template, and task-list CLI operations.
|
|
362
|
-
- [[todos-progress]] — comments, locking, dependencies, and history.
|
|
363
|
-
- [[todos-filter]] — bounded task listing, filtering, and export views.
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bun
|
|
2
|
-
import { spawnSync } from "node:child_process";
|
|
3
|
-
|
|
4
|
-
const CHECKLIST = [
|
|
5
|
-
"Read the Todos plan with: todos plans --show <plan-id>",
|
|
6
|
-
"Inspect and start exactly one task before editing.",
|
|
7
|
-
"Keep the Markdown plan artifact under .hasna/todos/plans/<project-id>/.",
|
|
8
|
-
"Use Todos CLI for task status, comments, dependencies, and verification.",
|
|
9
|
-
"Record validation evidence before marking a task done.",
|
|
10
|
-
];
|
|
11
|
-
|
|
12
|
-
function usage(): string {
|
|
13
|
-
return [
|
|
14
|
-
"todos-plan - plan authoring helper for Todos CLI source-of-truth workflows",
|
|
15
|
-
"",
|
|
16
|
-
"Usage:",
|
|
17
|
-
" todos-plan checklist",
|
|
18
|
-
" todos-plan path <project-id> <plan-slug>",
|
|
19
|
-
" todos-plan show <plan-id>",
|
|
20
|
-
"",
|
|
21
|
-
"This skill never edits Todos stores directly. It shells out to the",
|
|
22
|
-
"installed todos CLI only for explicit show commands.",
|
|
23
|
-
].join("\n");
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
function runTodos(args: string[]): number {
|
|
27
|
-
const result = spawnSync("todos", args, { stdio: "inherit" });
|
|
28
|
-
if (result.error) {
|
|
29
|
-
console.error(`todos CLI unavailable: ${result.error.message}`);
|
|
30
|
-
return 1;
|
|
31
|
-
}
|
|
32
|
-
return typeof result.status === "number" ? result.status : 1;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const [command, ...args] = process.argv.slice(2);
|
|
36
|
-
|
|
37
|
-
if (!command || command === "--help" || command === "-h") {
|
|
38
|
-
console.log(usage());
|
|
39
|
-
process.exit(0);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
if (command === "checklist") {
|
|
43
|
-
for (const item of CHECKLIST) console.log(`- ${item}`);
|
|
44
|
-
process.exit(0);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
if (command === "path") {
|
|
48
|
-
const [projectId, slug] = args;
|
|
49
|
-
if (!projectId || !slug) {
|
|
50
|
-
console.error("Usage: todos-plan path <project-id> <plan-slug>");
|
|
51
|
-
process.exit(1);
|
|
52
|
-
}
|
|
53
|
-
console.log(`.hasna/todos/plans/${projectId}/${slug}.md`);
|
|
54
|
-
process.exit(0);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
if (command === "show") {
|
|
58
|
-
const [planId] = args;
|
|
59
|
-
if (!planId) {
|
|
60
|
-
console.error("Usage: todos-plan show <plan-id>");
|
|
61
|
-
process.exit(1);
|
|
62
|
-
}
|
|
63
|
-
process.exit(runTodos(["plans", "--show", planId]));
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
console.error(`Unknown command: ${command}`);
|
|
67
|
-
console.error(usage());
|
|
68
|
-
process.exit(1);
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "validate-config",
|
|
3
|
-
"version": "0.1.0",
|
|
4
|
-
"description": "Validate Config skill",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"bin": {
|
|
7
|
-
"validate-config": "./src/index.ts"
|
|
8
|
-
},
|
|
9
|
-
"scripts": {
|
|
10
|
-
"dev": "bun run src/index.ts",
|
|
11
|
-
"build": "bun build src/index.ts --outdir dist --target node",
|
|
12
|
-
"typecheck": "tsc --noEmit"
|
|
13
|
-
},
|
|
14
|
-
"dependencies": {
|
|
15
|
-
"yaml": "^2.8.2"
|
|
16
|
-
},
|
|
17
|
-
"devDependencies": {
|
|
18
|
-
"@types/bun": "latest",
|
|
19
|
-
"typescript": "^5.7.0"
|
|
20
|
-
},
|
|
21
|
-
"publishConfig": {
|
|
22
|
-
"access": "restricted",
|
|
23
|
-
"registry": "https://registry.npmjs.org/"
|
|
24
|
-
},
|
|
25
|
-
"files": [
|
|
26
|
-
"src",
|
|
27
|
-
"tsconfig.json"
|
|
28
|
-
]
|
|
29
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bun
|
|
2
|
-
import fs from 'fs';
|
|
3
|
-
import path from 'path';
|
|
4
|
-
import yaml from 'yaml';
|
|
5
|
-
|
|
6
|
-
function main() {
|
|
7
|
-
const args = process.argv.slice(2);
|
|
8
|
-
|
|
9
|
-
if (args.includes('--help') || args.length === 0) {
|
|
10
|
-
console.log('Usage: validate-config <file-path>');
|
|
11
|
-
console.log('Options:');
|
|
12
|
-
console.log(' --help Show help');
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const filePath = args[0];
|
|
17
|
-
if (!fs.existsSync(filePath)) {
|
|
18
|
-
console.error(`Error: File not found at ${filePath}`);
|
|
19
|
-
process.exit(1);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
const fileContent = fs.readFileSync(filePath, 'utf-8');
|
|
23
|
-
const fileExtension = path.extname(filePath).toLowerCase();
|
|
24
|
-
|
|
25
|
-
let isValid = false;
|
|
26
|
-
let error = '';
|
|
27
|
-
|
|
28
|
-
if (fileExtension === '.json') {
|
|
29
|
-
try {
|
|
30
|
-
JSON.parse(fileContent);
|
|
31
|
-
isValid = true;
|
|
32
|
-
} catch (e: any) {
|
|
33
|
-
error = `Invalid JSON: ${e.message}`;
|
|
34
|
-
}
|
|
35
|
-
} else if (fileExtension === '.yaml' || fileExtension === '.yml') {
|
|
36
|
-
try {
|
|
37
|
-
yaml.parse(fileContent);
|
|
38
|
-
isValid = true;
|
|
39
|
-
} catch (e: any) {
|
|
40
|
-
error = `Invalid YAML: ${e.message}`;
|
|
41
|
-
}
|
|
42
|
-
} else {
|
|
43
|
-
error = `Unsupported file type: ${fileExtension}`;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
if (isValid) {
|
|
47
|
-
console.log(`Validation successful for ${filePath}`);
|
|
48
|
-
process.exit(0);
|
|
49
|
-
} else {
|
|
50
|
-
console.error(`Validation failed for ${filePath}`);
|
|
51
|
-
console.error(error);
|
|
52
|
-
process.exit(1);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
main();
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# video-downloader
|
|
2
|
-
|
|
3
|
-
Video Downloader skill.
|
|
4
|
-
|
|
5
|
-
## Tech Stack
|
|
6
|
-
|
|
7
|
-
- Runtime: Bun
|
|
8
|
-
- Language: TypeScript
|
|
9
|
-
- CLI: Commander.js
|
|
10
|
-
|
|
11
|
-
## CLI
|
|
12
|
-
|
|
13
|
-
```bash
|
|
14
|
-
video-downloader run
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## Data Directory
|
|
18
|
-
|
|
19
|
-
~/.skill/video-downloader/
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "video-downloader",
|
|
3
|
-
"version": "0.1.0",
|
|
4
|
-
"description": "Video Downloader skill",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"bin": {
|
|
7
|
-
"video-downloader": "./src/index.ts"
|
|
8
|
-
},
|
|
9
|
-
"scripts": {
|
|
10
|
-
"dev": "bun run src/index.ts",
|
|
11
|
-
"build": "bun build src/index.ts --outdir dist --target node",
|
|
12
|
-
"typecheck": "tsc --noEmit"
|
|
13
|
-
},
|
|
14
|
-
"dependencies": {
|
|
15
|
-
"minimist": "^1.2.8"
|
|
16
|
-
},
|
|
17
|
-
"devDependencies": {
|
|
18
|
-
"@types/bun": "latest",
|
|
19
|
-
"typescript": "^5.7.0"
|
|
20
|
-
},
|
|
21
|
-
"publishConfig": {
|
|
22
|
-
"access": "restricted",
|
|
23
|
-
"registry": "https://registry.npmjs.org/"
|
|
24
|
-
},
|
|
25
|
-
"files": [
|
|
26
|
-
"src",
|
|
27
|
-
"tsconfig.json"
|
|
28
|
-
]
|
|
29
|
-
}
|