selftune 0.2.23 → 0.2.24
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/CHANGELOG.md +6 -0
- package/README.md +93 -15
- package/apps/local-dashboard/dist/assets/index-DgY2KGP-.css +1 -0
- package/apps/local-dashboard/dist/assets/index-Dmx7LPVX.js +15 -0
- package/apps/local-dashboard/dist/assets/vendor-react-C5oyHiV1.js +11 -0
- package/apps/local-dashboard/dist/assets/{vendor-table-BIiI3YhS.js → vendor-table-Bc_bbKd8.js} +1 -1
- package/apps/local-dashboard/dist/assets/vendor-ui-B3BPIYy7.js +1 -0
- package/apps/local-dashboard/dist/index.html +5 -5
- package/cli/selftune/adapters/codex/install.ts +310 -78
- package/cli/selftune/adapters/opencode/install.ts +3 -4
- package/cli/selftune/alpha-upload/build-payloads.ts +3 -3
- package/cli/selftune/alpha-upload/stage-canonical.ts +17 -11
- package/cli/selftune/auto-update.ts +200 -8
- package/cli/selftune/canonical-export.ts +55 -25
- package/cli/selftune/command-surface.ts +397 -0
- package/cli/selftune/contribute/contribute.ts +64 -13
- package/cli/selftune/contribution-config.ts +57 -3
- package/cli/selftune/contribution-preferences.ts +117 -0
- package/cli/selftune/contribution-signals.ts +8 -4
- package/cli/selftune/contribution-staging.ts +13 -2
- package/cli/selftune/contributions.ts +55 -121
- package/cli/selftune/creator-contributions.ts +29 -10
- package/cli/selftune/cron/setup.ts +7 -3
- package/cli/selftune/dashboard-contract.ts +73 -0
- package/cli/selftune/dashboard-server.ts +168 -17
- package/cli/selftune/dashboard.ts +350 -17
- package/cli/selftune/eval/baseline.ts +21 -5
- package/cli/selftune/eval/execution-eval.ts +170 -0
- package/cli/selftune/eval/family-overlap.ts +2 -2
- package/cli/selftune/eval/hooks-to-evals.ts +228 -82
- package/cli/selftune/eval/import-skillsbench.ts +2 -2
- package/cli/selftune/eval/invocation-classifier.ts +56 -0
- package/cli/selftune/eval/synthetic-evals.ts +5 -3
- package/cli/selftune/eval/unit-test-cli.ts +7 -4
- package/cli/selftune/evolution/apply-proposal.ts +295 -0
- package/cli/selftune/evolution/engines/replay-engine.ts +79 -57
- package/cli/selftune/evolution/evolve-body.ts +100 -39
- package/cli/selftune/evolution/evolve.ts +244 -52
- package/cli/selftune/evolution/rollback.ts +0 -1
- package/cli/selftune/evolution/validate-body.ts +68 -42
- package/cli/selftune/evolution/validate-host-replay.ts +510 -60
- package/cli/selftune/evolution/validate-proposal.ts +11 -150
- package/cli/selftune/evolution/validate-routing.ts +43 -41
- package/cli/selftune/evolution/validation-contract.ts +91 -0
- package/cli/selftune/grading/auto-grade.ts +11 -7
- package/cli/selftune/grading/grade-session.ts +10 -16
- package/cli/selftune/index.ts +35 -10
- package/cli/selftune/ingestors/claude-replay.ts +15 -10
- package/cli/selftune/ingestors/codex-wrapper.ts +3 -3
- package/cli/selftune/ingestors/opencode-ingest.ts +2 -2
- package/cli/selftune/ingestors/pi-ingest.ts +3 -2
- package/cli/selftune/init.ts +27 -3
- package/cli/selftune/localdb/direct-write.ts +35 -1
- package/cli/selftune/localdb/queries/cron.ts +34 -0
- package/cli/selftune/localdb/queries/dashboard.ts +834 -0
- package/cli/selftune/localdb/queries/evolution.ts +158 -0
- package/cli/selftune/localdb/queries/execution.ts +133 -0
- package/cli/selftune/localdb/queries/json.ts +18 -0
- package/cli/selftune/localdb/queries/monitoring.ts +263 -0
- package/cli/selftune/localdb/queries/raw.ts +95 -0
- package/cli/selftune/localdb/queries/staging.ts +270 -0
- package/cli/selftune/localdb/queries/trust.ts +392 -0
- package/cli/selftune/localdb/queries.ts +60 -2288
- package/cli/selftune/localdb/schema.ts +21 -0
- package/cli/selftune/monitoring/watch.ts +96 -29
- package/cli/selftune/normalization.ts +3 -0
- package/cli/selftune/observability.ts +4 -2
- package/cli/selftune/orchestrate/cli.ts +161 -0
- package/cli/selftune/orchestrate/execute.ts +295 -0
- package/cli/selftune/orchestrate/finalize.ts +157 -0
- package/cli/selftune/orchestrate/locks.ts +40 -0
- package/cli/selftune/orchestrate/plan.ts +131 -0
- package/cli/selftune/orchestrate/post-run.ts +59 -0
- package/cli/selftune/orchestrate/prepare.ts +334 -0
- package/cli/selftune/orchestrate/report.ts +182 -0
- package/cli/selftune/orchestrate/runtime.ts +120 -0
- package/cli/selftune/orchestrate/signals.ts +48 -0
- package/cli/selftune/orchestrate.ts +150 -1173
- package/cli/selftune/repair/skill-usage.ts +5 -2
- package/cli/selftune/routes/overview.ts +5 -2
- package/cli/selftune/routes/skill-report.ts +15 -2
- package/cli/selftune/schedule.ts +5 -5
- package/cli/selftune/status.ts +39 -2
- package/cli/selftune/testing-readiness.ts +597 -0
- package/cli/selftune/types.ts +44 -4
- package/cli/selftune/uninstall.ts +2 -1
- package/cli/selftune/utils/canonical-log.ts +1 -9
- package/cli/selftune/utils/cli-error.ts +9 -0
- package/cli/selftune/utils/llm-call.ts +126 -6
- package/cli/selftune/utils/skill-discovery.ts +2 -0
- package/cli/selftune/workflows/proposals.ts +184 -0
- package/cli/selftune/workflows/skill-scaffold.ts +241 -0
- package/cli/selftune/workflows/workflows.ts +100 -26
- package/node_modules/@selftune/telemetry-contract/fixtures/complete-push.ts +1 -1
- package/node_modules/@selftune/telemetry-contract/fixtures/evidence-only-push.ts +1 -1
- package/node_modules/@selftune/telemetry-contract/fixtures/partial-push-no-sessions.ts +1 -1
- package/node_modules/@selftune/telemetry-contract/fixtures/partial-push-unresolved-parents.ts +1 -1
- package/node_modules/@selftune/telemetry-contract/src/schemas.ts +41 -1
- package/node_modules/@selftune/telemetry-contract/src/types.ts +103 -2
- package/package.json +25 -9
- package/packages/dashboard-core/AGENTS.md +18 -0
- package/packages/dashboard-core/README.md +30 -0
- package/packages/dashboard-core/index.ts +3 -0
- package/packages/dashboard-core/package.json +39 -0
- package/packages/dashboard-core/src/chrome/DashboardChrome.tsx +74 -0
- package/packages/dashboard-core/src/chrome/DashboardHeader.tsx +200 -0
- package/packages/dashboard-core/src/chrome/DashboardSidebar.tsx +219 -0
- package/packages/dashboard-core/src/chrome/RuntimeBadge.tsx +46 -0
- package/packages/dashboard-core/src/chrome/index.ts +14 -0
- package/packages/dashboard-core/src/chrome/types.ts +81 -0
- package/packages/dashboard-core/src/chrome/utils.ts +23 -0
- package/packages/dashboard-core/src/gates/FeatureGate.tsx +11 -0
- package/packages/dashboard-core/src/gates/LockedRoute.tsx +29 -0
- package/packages/dashboard-core/src/gates/UpgradeCard.tsx +89 -0
- package/packages/dashboard-core/src/gates/index.ts +3 -0
- package/packages/dashboard-core/src/host/DashboardHostProvider.tsx +62 -0
- package/packages/dashboard-core/src/host/adapter.ts +47 -0
- package/packages/dashboard-core/src/host/capabilities.ts +55 -0
- package/packages/dashboard-core/src/host/index.ts +3 -0
- package/packages/dashboard-core/src/models/analytics.ts +39 -0
- package/packages/dashboard-core/src/models/index.ts +4 -0
- package/packages/dashboard-core/src/models/overview.ts +98 -0
- package/packages/dashboard-core/src/models/runtime.ts +7 -0
- package/packages/dashboard-core/src/models/skills.ts +34 -0
- package/packages/dashboard-core/src/routes/index.ts +2 -0
- package/packages/dashboard-core/src/routes/manifest.test.ts +70 -0
- package/packages/dashboard-core/src/routes/manifest.ts +451 -0
- package/packages/dashboard-core/src/routes/types.ts +39 -0
- package/packages/dashboard-core/src/screens/analytics/AnalyticsScreen.tsx +278 -0
- package/packages/dashboard-core/src/screens/analytics/index.ts +1 -0
- package/packages/dashboard-core/src/screens/index.ts +37 -0
- package/packages/dashboard-core/src/screens/overview/OverviewComparisonSurface.test.ts +101 -0
- package/packages/dashboard-core/src/screens/overview/OverviewComparisonSurface.tsx +393 -0
- package/packages/dashboard-core/src/screens/overview/OverviewCompositionSurface.test.tsx +113 -0
- package/packages/dashboard-core/src/screens/overview/OverviewCompositionSurface.tsx +72 -0
- package/packages/dashboard-core/src/screens/overview/OverviewCoreSurface.tsx +71 -0
- package/packages/dashboard-core/src/screens/overview/OverviewOnboardingBanner.tsx +90 -0
- package/packages/dashboard-core/src/screens/overview/OverviewRunSummary.tsx +40 -0
- package/packages/dashboard-core/src/screens/overview/index.ts +16 -0
- package/packages/dashboard-core/src/screens/overview/types.ts +13 -0
- package/packages/dashboard-core/src/screens/skill-report/SkillReportDailyBreakdownSection.tsx +99 -0
- package/packages/dashboard-core/src/screens/skill-report/SkillReportDataQualityTabContent.tsx +35 -0
- package/packages/dashboard-core/src/screens/skill-report/SkillReportEvidenceRail.tsx +71 -0
- package/packages/dashboard-core/src/screens/skill-report/SkillReportEvidenceSection.tsx +63 -0
- package/packages/dashboard-core/src/screens/skill-report/SkillReportEvidenceTabContent.tsx +25 -0
- package/packages/dashboard-core/src/screens/skill-report/SkillReportInvocationsSection.tsx +24 -0
- package/packages/dashboard-core/src/screens/skill-report/SkillReportMissedQueriesSection.tsx +79 -0
- package/packages/dashboard-core/src/screens/skill-report/SkillReportScaffold.tsx +150 -0
- package/packages/dashboard-core/src/screens/skill-report/SkillReportSections.test.tsx +224 -0
- package/packages/dashboard-core/src/screens/skill-report/SkillReportTabs.test.tsx +76 -0
- package/packages/dashboard-core/src/screens/skill-report/SkillReportTabs.tsx +88 -0
- package/packages/dashboard-core/src/screens/skill-report/SkillReportTrendSection.tsx +33 -0
- package/packages/dashboard-core/src/screens/skill-report/SkillReportTrustBadge.tsx +67 -0
- package/packages/dashboard-core/src/screens/skill-report/index.ts +45 -0
- package/packages/dashboard-core/src/screens/skills/SkillsLibraryScreen.tsx +162 -0
- package/packages/dashboard-core/src/screens/skills/index.ts +6 -0
- package/packages/telemetry-contract/fixtures/complete-push.ts +1 -1
- package/packages/telemetry-contract/fixtures/evidence-only-push.ts +1 -1
- package/packages/telemetry-contract/fixtures/partial-push-no-sessions.ts +1 -1
- package/packages/telemetry-contract/fixtures/partial-push-unresolved-parents.ts +1 -1
- package/packages/telemetry-contract/src/schemas.ts +41 -1
- package/packages/telemetry-contract/src/types.ts +103 -2
- package/packages/ui/src/components/EvidenceViewer.tsx +80 -25
- package/packages/ui/src/components/OverviewPanels.tsx +67 -26
- package/packages/ui/src/primitives/tabs.tsx +7 -6
- package/packages/ui/src/types.ts +10 -0
- package/skill/SKILL.md +130 -332
- package/skill/agents/diagnosis-analyst.md +3 -3
- package/skill/agents/evolution-reviewer.md +3 -3
- package/skill/agents/integration-guide.md +3 -3
- package/skill/agents/pattern-analyst.md +2 -2
- package/skill/references/cli-quick-reference.md +89 -0
- package/skill/references/creator-playbook.md +131 -0
- package/skill/references/examples.md +48 -0
- package/skill/references/troubleshooting.md +47 -0
- package/skill/references/version-history.md +1 -1
- package/skill/selftune.contribute.json +11 -0
- package/skill/{Workflows → workflows}/Baseline.md +20 -1
- package/skill/{Workflows → workflows}/Contribute.md +23 -10
- package/skill/{Workflows → workflows}/Contributions.md +13 -5
- package/skill/workflows/CreateTestDeploy.md +170 -0
- package/skill/{Workflows → workflows}/CreatorContributions.md +18 -6
- package/skill/{Workflows → workflows}/Cron.md +1 -1
- package/skill/{Workflows → workflows}/Dashboard.md +20 -0
- package/skill/{Workflows → workflows}/Doctor.md +1 -1
- package/skill/{Workflows → workflows}/Evals.md +67 -2
- package/skill/{Workflows → workflows}/Evolve.md +119 -30
- package/skill/{Workflows → workflows}/EvolveBody.md +41 -1
- package/skill/{Workflows → workflows}/Grade.md +1 -1
- package/skill/{Workflows → workflows}/Initialize.md +8 -4
- package/skill/{Workflows → workflows}/Orchestrate.md +13 -3
- package/skill/{Workflows → workflows}/Schedule.md +3 -3
- package/skill/workflows/SignalsDashboard.md +87 -0
- package/skill/{Workflows → workflows}/UnitTest.md +19 -0
- package/skill/{Workflows → workflows}/Watch.md +42 -2
- package/skill/{Workflows → workflows}/Workflows.md +39 -2
- package/apps/local-dashboard/dist/assets/index-CwOtTrUS.css +0 -1
- package/apps/local-dashboard/dist/assets/index-f1HQpbeH.js +0 -59
- package/apps/local-dashboard/dist/assets/vendor-react-CKkiCskZ.js +0 -11
- package/apps/local-dashboard/dist/assets/vendor-ui-jVSaIZey.js +0 -12
- /package/skill/{Workflows → workflows}/AlphaUpload.md +0 -0
- /package/skill/{Workflows → workflows}/AutoActivation.md +0 -0
- /package/skill/{Workflows → workflows}/Badge.md +0 -0
- /package/skill/{Workflows → workflows}/Composability.md +0 -0
- /package/skill/{Workflows → workflows}/EvolutionMemory.md +0 -0
- /package/skill/{Workflows → workflows}/ExportCanonical.md +0 -0
- /package/skill/{Workflows → workflows}/Hook.md +0 -0
- /package/skill/{Workflows → workflows}/ImportSkillsBench.md +0 -0
- /package/skill/{Workflows → workflows}/Ingest.md +0 -0
- /package/skill/{Workflows → workflows}/PlatformHooks.md +0 -0
- /package/skill/{Workflows → workflows}/Quickstart.md +0 -0
- /package/skill/{Workflows → workflows}/Recover.md +0 -0
- /package/skill/{Workflows → workflows}/Registry.md +0 -0
- /package/skill/{Workflows → workflows}/RepairSkillUsage.md +0 -0
- /package/skill/{Workflows → workflows}/Replay.md +0 -0
- /package/skill/{Workflows → workflows}/Rollback.md +0 -0
- /package/skill/{Workflows → workflows}/Sync.md +0 -0
- /package/skill/{Workflows → workflows}/Telemetry.md +0 -0
- /package/skill/{Workflows → workflows}/Uninstall.md +0 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# CLI Quick Reference
|
|
2
|
+
|
|
3
|
+
Full flag reference for all selftune commands. Run `selftune <command> --help`
|
|
4
|
+
for the most up-to-date flags.
|
|
5
|
+
|
|
6
|
+
```bash
|
|
7
|
+
# Ingest group
|
|
8
|
+
selftune ingest claude [--since DATE] [--dry-run] [--force] [--verbose]
|
|
9
|
+
selftune ingest codex # (experimental)
|
|
10
|
+
selftune ingest opencode # (experimental)
|
|
11
|
+
selftune ingest openclaw [--agents-dir PATH] [--since DATE] [--dry-run] [--force] [--verbose] # (experimental)
|
|
12
|
+
selftune ingest pi [--sessions-dir PATH] [--since DATE] [--dry-run] [--force] [--verbose] # (experimental)
|
|
13
|
+
selftune ingest wrap-codex -- <codex args> # (experimental)
|
|
14
|
+
|
|
15
|
+
# Grade group
|
|
16
|
+
selftune grade auto --skill <name> [--expectations "..."] [--agent <name>]
|
|
17
|
+
selftune grade baseline --skill <name> --skill-path <path> [--eval-set <path>] [--agent <name>]
|
|
18
|
+
|
|
19
|
+
# Evolve group
|
|
20
|
+
selftune evolve --skill <name> --skill-path <path> [--dry-run] [--validation-mode auto|replay|judge]
|
|
21
|
+
selftune evolve body --skill <name> --skill-path <path> --target <body|routing> [--dry-run]
|
|
22
|
+
selftune evolve rollback --skill <name> --skill-path <path> [--proposal-id <id>]
|
|
23
|
+
|
|
24
|
+
# Eval group
|
|
25
|
+
selftune eval generate --skill <name> [--list-skills] [--stats] [--max N] [--seed N] [--output PATH] [--blend]
|
|
26
|
+
selftune eval unit-test --skill <name> --tests <path> [--run-agent] [--generate]
|
|
27
|
+
selftune eval import --dir <path> --skill <name> --output <path> [--match-strategy exact|fuzzy]
|
|
28
|
+
selftune eval composability --skill <name> [--window N] [--telemetry-log <path>]
|
|
29
|
+
selftune eval family-overlap --prefix <family-> | --skills <a,b,c> [--parent-skill <name>] [--min-overlap 0.3] [--min-shared 2]
|
|
30
|
+
|
|
31
|
+
# Other commands
|
|
32
|
+
selftune watch --skill <name> --skill-path <path> [--auto-rollback] [--grade-threshold N] [--no-grade-watch]
|
|
33
|
+
selftune status
|
|
34
|
+
selftune last
|
|
35
|
+
selftune doctor
|
|
36
|
+
selftune dashboard [--port <port>] [--no-open]
|
|
37
|
+
selftune contributions [status|preview <skill>|upload [--dry-run]|approve <skill>|revoke <skill>|default <ask|always|never>|reset]
|
|
38
|
+
selftune creator-contributions [status|enable --skill <name>|enable --all [--prefix <value>]|disable --skill <name>]
|
|
39
|
+
selftune contribute [--skill NAME] [--preview] [--sanitize LEVEL] [--submit]
|
|
40
|
+
selftune cron setup [--dry-run] # auto-detect platform (cron/launchd/systemd)
|
|
41
|
+
selftune cron setup --platform openclaw [--dry-run] [--tz <timezone>] # OpenClaw-specific
|
|
42
|
+
selftune cron list
|
|
43
|
+
selftune cron remove [--dry-run]
|
|
44
|
+
selftune telemetry [status|enable|disable]
|
|
45
|
+
selftune export [TABLE...] [--output/-o DIR] [--since DATE]
|
|
46
|
+
|
|
47
|
+
# Autonomous loop
|
|
48
|
+
selftune orchestrate [--dry-run] [--review-required] [--auto-approve] [--skill NAME] [--max-skills N] [--recent-window HOURS] [--sync-force] [--max-auto-grade N] [--loop] [--loop-interval SECS]
|
|
49
|
+
selftune sync [--since DATE] [--dry-run] [--force] [--no-claude] [--no-codex] [--no-opencode] [--no-openclaw] [--no-pi] [--no-repair] [--json]
|
|
50
|
+
|
|
51
|
+
# Discovery + badges
|
|
52
|
+
selftune workflows [--skill NAME] [--skill-path PATH] [--min-occurrences N] [--window N] [--json] [save <name-or-index> --skill-path PATH] [scaffold <name-or-index> --output-dir PATH --skill-name NAME --description TEXT --write --force]
|
|
53
|
+
selftune badge --skill <name> [--format svg|markdown|url] [--output PATH]
|
|
54
|
+
|
|
55
|
+
# Maintenance
|
|
56
|
+
selftune quickstart
|
|
57
|
+
selftune repair-skill-usage [--since DATE] [--dry-run]
|
|
58
|
+
selftune recover [--full] [--force] [--since DATE]
|
|
59
|
+
selftune export-canonical [--out FILE] [--platform NAME] [--record-kind KIND] [--pretty] [--push-payload]
|
|
60
|
+
selftune uninstall [--dry-run] [--keep-logs] [--npm-uninstall]
|
|
61
|
+
|
|
62
|
+
# Hook dispatch (for debugging/manual invocation)
|
|
63
|
+
selftune hook <name> # prompt-log | session-stop | skill-eval | auto-activate | skill-change-guard | evolution-guard
|
|
64
|
+
|
|
65
|
+
# Platform hooks (non-Claude-Code agents)
|
|
66
|
+
selftune codex hook
|
|
67
|
+
selftune codex install [--dry-run] [--uninstall]
|
|
68
|
+
selftune opencode hook
|
|
69
|
+
selftune opencode install [--dry-run] [--uninstall]
|
|
70
|
+
selftune cline hook
|
|
71
|
+
selftune cline install [--dry-run] [--uninstall]
|
|
72
|
+
selftune pi hook
|
|
73
|
+
selftune pi install [--dry-run] [--uninstall]
|
|
74
|
+
|
|
75
|
+
# Registry (team skill distribution)
|
|
76
|
+
selftune registry push [name] [--version=<semver>] [--summary=<text>]
|
|
77
|
+
selftune registry install <name> [--global]
|
|
78
|
+
selftune registry sync
|
|
79
|
+
selftune registry status
|
|
80
|
+
selftune registry rollback <name> [--to=<version>] [--reason=<text>]
|
|
81
|
+
selftune registry history <name>
|
|
82
|
+
selftune registry list
|
|
83
|
+
|
|
84
|
+
# Alpha enrollment (device-code flow — browser opens automatically)
|
|
85
|
+
selftune init --alpha --alpha-email <email>
|
|
86
|
+
selftune alpha upload [--dry-run]
|
|
87
|
+
selftune alpha relink
|
|
88
|
+
selftune status # shows cloud link state + upload readiness
|
|
89
|
+
```
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# Creator Playbook
|
|
2
|
+
|
|
3
|
+
Use this when you are publishing a skill other people will install.
|
|
4
|
+
|
|
5
|
+
If the user wants the operational step-by-step loop from cold start to deploy,
|
|
6
|
+
route first to `workflows/CreateTestDeploy.md`. Use this reference for the
|
|
7
|
+
packaging and after-ship interpretation layer around that loop.
|
|
8
|
+
|
|
9
|
+
The goal is simple:
|
|
10
|
+
|
|
11
|
+
1. ship a skill that routes cleanly on day one
|
|
12
|
+
2. collect privacy-safe signal after launch
|
|
13
|
+
3. turn that signal into a safe improvement loop
|
|
14
|
+
|
|
15
|
+
## Before Ship
|
|
16
|
+
|
|
17
|
+
### Decide what belongs where
|
|
18
|
+
|
|
19
|
+
| Put it in... | When it belongs there |
|
|
20
|
+
| --- | --- |
|
|
21
|
+
| `description` / routing section | The user intent that should trigger the skill |
|
|
22
|
+
| `workflows/` | Ordered procedures the agent should follow once routed |
|
|
23
|
+
| `references/` | Background knowledge, checklists, examples, or taxonomy the agent may need during execution |
|
|
24
|
+
| `scripts/` or tools | Deterministic mechanics the agent should not reinvent every run |
|
|
25
|
+
|
|
26
|
+
Rule of thumb:
|
|
27
|
+
|
|
28
|
+
- If the agent needs to **recognize** a request, fix the router.
|
|
29
|
+
- If the agent needs to **follow steps**, add or split a workflow.
|
|
30
|
+
- If the agent needs **context**, add a reference.
|
|
31
|
+
- If the agent keeps redoing the same exact logic, make it code.
|
|
32
|
+
|
|
33
|
+
### Keep the routing surface small
|
|
34
|
+
|
|
35
|
+
- Start router-first. Add only the trigger phrases and negative examples needed to call the right skill.
|
|
36
|
+
- Keep workflow detail out of the top-level description.
|
|
37
|
+
- Split into separate workflows when the execution path meaningfully changes.
|
|
38
|
+
- Add negative examples whenever a nearby intent should not trigger the skill.
|
|
39
|
+
|
|
40
|
+
### Cold-start test and deploy the skill before publishing
|
|
41
|
+
|
|
42
|
+
The default creator loop is now:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
selftune eval generate --skill my-skill
|
|
46
|
+
selftune eval unit-test --skill my-skill --generate --skill-path path/to/SKILL.md
|
|
47
|
+
selftune evolve --skill my-skill --skill-path path/to/SKILL.md --dry-run --validation-mode replay
|
|
48
|
+
selftune grade baseline --skill my-skill --skill-path path/to/SKILL.md
|
|
49
|
+
selftune evolve --skill my-skill --skill-path path/to/SKILL.md --with-baseline
|
|
50
|
+
selftune watch --skill my-skill
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
That same sequence is now packaged as the dedicated `CreateTestDeploy`
|
|
54
|
+
workflow in the shipped selftune skill, while `Evals`, `UnitTest`, `Baseline`,
|
|
55
|
+
`Evolve`, and `Watch` remain the atomic workflow docs for each individual step.
|
|
56
|
+
|
|
57
|
+
The dashboard overview, per-skill report, and `selftune status` all read from that loop and show
|
|
58
|
+
the next missing step directly, then flip to deploy-ready and watching states once the skill is shipped.
|
|
59
|
+
|
|
60
|
+
Ship only after you can explain:
|
|
61
|
+
|
|
62
|
+
- what should trigger the skill
|
|
63
|
+
- what should not
|
|
64
|
+
- where the body depends on references versus tools
|
|
65
|
+
|
|
66
|
+
### Bundle creator-directed contribution config
|
|
67
|
+
|
|
68
|
+
If you want post-ship creator signal:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
selftune creator-contributions enable --skill my-skill --creator-id <cloud-user-uuid>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
This writes `selftune.contribute.json` into the skill package so end users can opt in to privacy-safe creator-directed sharing.
|
|
75
|
+
|
|
76
|
+
The `creator_id` must be your cloud user UUID. Supported signals today are:
|
|
77
|
+
|
|
78
|
+
- `trigger`
|
|
79
|
+
- `grade`
|
|
80
|
+
- `miss_category`
|
|
81
|
+
|
|
82
|
+
## After Ship
|
|
83
|
+
|
|
84
|
+
### Tell users what to opt into
|
|
85
|
+
|
|
86
|
+
There are two different community paths:
|
|
87
|
+
|
|
88
|
+
- `selftune contributions approve <skill>`: creator-directed relay signals for your dashboard
|
|
89
|
+
- `selftune contribute --skill <skill> --submit`: sanitized community bundle submission
|
|
90
|
+
|
|
91
|
+
Relay is the lightweight always-on loop. Bundles are the deeper periodic export.
|
|
92
|
+
|
|
93
|
+
### Watch the right surfaces
|
|
94
|
+
|
|
95
|
+
After launch, the loop is:
|
|
96
|
+
|
|
97
|
+
1. open the cloud Community page or the skill detail Community tab
|
|
98
|
+
2. check whether the skill is still low-signal or has crossed the actionable threshold
|
|
99
|
+
3. inspect missed categories and grade distribution
|
|
100
|
+
4. create a contributor proposal only when the signal is coherent
|
|
101
|
+
5. approve/apply the proposal through the normal proposals flow
|
|
102
|
+
6. watch the skill after apply
|
|
103
|
+
|
|
104
|
+
Actionable threshold today:
|
|
105
|
+
|
|
106
|
+
- at least `10` total signals
|
|
107
|
+
- at least `3` distinct contributor cohorts
|
|
108
|
+
|
|
109
|
+
### Interpret signal correctly
|
|
110
|
+
|
|
111
|
+
- High missed counts with concentrated categories usually mean the **description/router** is wrong.
|
|
112
|
+
- Low grades with decent trigger rate usually mean the **body/workflow/reference/tool split** is wrong.
|
|
113
|
+
- Low-signal skills need more contributors before you trust a proposal.
|
|
114
|
+
|
|
115
|
+
## Fast Checklist
|
|
116
|
+
|
|
117
|
+
Before ship:
|
|
118
|
+
|
|
119
|
+
- router describes when to use the skill
|
|
120
|
+
- workflows describe how to do the job
|
|
121
|
+
- references carry durable context
|
|
122
|
+
- tools/scripts carry deterministic mechanics
|
|
123
|
+
- evals cover both your language and other likely phrasings
|
|
124
|
+
- `selftune.contribute.json` is bundled if you want creator-directed signal
|
|
125
|
+
|
|
126
|
+
After ship:
|
|
127
|
+
|
|
128
|
+
- community overview shows your skill by name
|
|
129
|
+
- per-skill community page shows missed categories and grades
|
|
130
|
+
- contributor proposals are reviewed before apply
|
|
131
|
+
- watch is run after meaningful changes
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Examples
|
|
2
|
+
|
|
3
|
+
## Scenario 1: First-time setup
|
|
4
|
+
|
|
5
|
+
User says: "Set up selftune" or "Install selftune"
|
|
6
|
+
|
|
7
|
+
Actions:
|
|
8
|
+
|
|
9
|
+
1. Read `workflows/Initialize.md`
|
|
10
|
+
2. Run `selftune init` to bootstrap config (hooks are installed automatically)
|
|
11
|
+
3. Run `selftune doctor` to verify
|
|
12
|
+
|
|
13
|
+
Result: Config at `~/.selftune/config.json`, hooks active, ready for session capture.
|
|
14
|
+
|
|
15
|
+
## Scenario 2: Improve a skill
|
|
16
|
+
|
|
17
|
+
User says: "Make the pptx skill catch more queries" or "Evolve the Research skill"
|
|
18
|
+
|
|
19
|
+
Actions:
|
|
20
|
+
|
|
21
|
+
1. `selftune eval generate --skill pptx` to find missed triggers
|
|
22
|
+
2. `selftune evolve --skill pptx --skill-path <path>` to propose changes
|
|
23
|
+
3. `selftune watch --skill pptx --skill-path <path>` to monitor post-deploy
|
|
24
|
+
|
|
25
|
+
Result: Skill description updated to match real user language, with rollback available.
|
|
26
|
+
|
|
27
|
+
## Scenario 3: Check skill health
|
|
28
|
+
|
|
29
|
+
User says: "How are my skills doing?" or "Run selftune"
|
|
30
|
+
|
|
31
|
+
Actions:
|
|
32
|
+
|
|
33
|
+
1. `selftune status` for overall health summary
|
|
34
|
+
2. `selftune last` for most recent session insight
|
|
35
|
+
3. `selftune doctor` if issues detected
|
|
36
|
+
|
|
37
|
+
Result: Pass rates, trend data, and actionable recommendations.
|
|
38
|
+
|
|
39
|
+
## Scenario 4: Autonomous operation
|
|
40
|
+
|
|
41
|
+
User says: "Set up cron jobs" or "Run selftune automatically"
|
|
42
|
+
|
|
43
|
+
Actions:
|
|
44
|
+
|
|
45
|
+
1. `selftune cron setup` to install OS-level scheduling
|
|
46
|
+
2. Orchestrate loop runs: ingest -> grade -> evolve -> watch
|
|
47
|
+
|
|
48
|
+
Result: Skills improve continuously without manual intervention.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Troubleshooting
|
|
2
|
+
|
|
3
|
+
## CLI not found
|
|
4
|
+
|
|
5
|
+
Error: `command not found: selftune`
|
|
6
|
+
|
|
7
|
+
Cause: CLI not installed or not on PATH.
|
|
8
|
+
|
|
9
|
+
Solution:
|
|
10
|
+
|
|
11
|
+
1. Reinstall or refresh with `npx skills add selftune-dev/selftune`
|
|
12
|
+
2. If you manage the CLI directly, use `npm install -g selftune` or `bun add -g selftune`
|
|
13
|
+
3. Check `bin/selftune.cjs` exists if running from a source checkout
|
|
14
|
+
4. Verify with `which selftune`
|
|
15
|
+
5. If using bun from a source checkout: `bun link` in the repo root
|
|
16
|
+
|
|
17
|
+
## No sessions to grade
|
|
18
|
+
|
|
19
|
+
Error: `selftune grade` returns empty results.
|
|
20
|
+
|
|
21
|
+
Cause: Hooks not capturing sessions, or no sessions since last ingest.
|
|
22
|
+
|
|
23
|
+
Solution:
|
|
24
|
+
|
|
25
|
+
1. Run `selftune doctor` to verify hook installation
|
|
26
|
+
2. Run `selftune ingest claude --force` to re-ingest
|
|
27
|
+
3. Run `selftune doctor` to check database health and telemetry record counts
|
|
28
|
+
|
|
29
|
+
## Evolution proposes no changes
|
|
30
|
+
|
|
31
|
+
Cause: Eval set too small or skill already well-tuned.
|
|
32
|
+
|
|
33
|
+
Solution:
|
|
34
|
+
|
|
35
|
+
1. Run `selftune eval generate --skill <name> --max 50` for a larger eval set
|
|
36
|
+
2. Check `selftune status` — if pass rate is >90%, evolution may not be needed
|
|
37
|
+
3. Try `selftune evolve body` for deeper structural changes
|
|
38
|
+
|
|
39
|
+
## Dashboard won't serve
|
|
40
|
+
|
|
41
|
+
Error: Port already in use or blank page.
|
|
42
|
+
|
|
43
|
+
Solution:
|
|
44
|
+
|
|
45
|
+
1. Try a different port: `selftune dashboard --port 3142`
|
|
46
|
+
2. Check if another process holds the port: `lsof -i :3141`
|
|
47
|
+
3. Use `--no-open` to start the server without opening a browser
|
|
@@ -32,7 +32,7 @@ agent execution.
|
|
|
32
32
|
|
|
33
33
|
- Added first-class routing and quick-reference coverage for
|
|
34
34
|
`selftune workflows`
|
|
35
|
-
- Added a dedicated `
|
|
35
|
+
- Added a dedicated `workflows/Workflows.md` guide for workflow discovery and
|
|
36
36
|
codification
|
|
37
37
|
- Updated composability guidance to reflect synergy, conflicts, and workflow
|
|
38
38
|
candidates
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"creator_id": "43c960c1-9b02-4020-96f0-6fdd8f030b5a",
|
|
4
|
+
"skill_name": "selftune",
|
|
5
|
+
"contribution": {
|
|
6
|
+
"enabled": true,
|
|
7
|
+
"signals": ["trigger", "grade", "miss_category"],
|
|
8
|
+
"message": "Help improve selftune by sharing anonymous usage signals with the selftune creator.",
|
|
9
|
+
"privacy_url": "https://docs.selftune.dev/privacy/contributor-signals"
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -26,7 +26,7 @@ selftune grade baseline --skill <name> --skill-path <path> [options]
|
|
|
26
26
|
| `--skill <name>` | Skill name | Required |
|
|
27
27
|
| `--skill-path <path>` | Path to the skill's SKILL.md | Required |
|
|
28
28
|
| `--eval-set <path>` | Pre-built eval set JSON | Auto-generated from logs |
|
|
29
|
-
| `--agent <name>` | Agent CLI to use
|
|
29
|
+
| `--agent <name>` | Agent CLI to use (claude, codex, opencode, pi) | Auto-detected |
|
|
30
30
|
|
|
31
31
|
## Output Format
|
|
32
32
|
|
|
@@ -42,6 +42,9 @@ selftune grade baseline --skill <name> --skill-path <path> [options]
|
|
|
42
42
|
}
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
+
Every baseline run is also written into SQLite (`grading_baselines`) so the dashboard and
|
|
46
|
+
`selftune status` can show whether the skill has cleared the no-skill comparison step.
|
|
47
|
+
|
|
45
48
|
## How It Works
|
|
46
49
|
|
|
47
50
|
1. Loads the eval set (from `--eval-set` or auto-generated from logs)
|
|
@@ -85,6 +88,7 @@ Ask one `AskUserQuestion` at a time in this order:
|
|
|
85
88
|
- `claude`
|
|
86
89
|
- `codex`
|
|
87
90
|
- `opencode`
|
|
91
|
+
- `pi`
|
|
88
92
|
|
|
89
93
|
If `AskUserQuestion` is not available or Claude does not invoke it, fall back to presenting the same choices as inline numbered options.
|
|
90
94
|
|
|
@@ -134,6 +138,21 @@ Report the interpretation to the user based on the lift value.
|
|
|
134
138
|
Add `--with-baseline` to evolve commands to prevent wasting evolution
|
|
135
139
|
cycles on skills that don't add value.
|
|
136
140
|
|
|
141
|
+
### 4. Canonical creator loop position
|
|
142
|
+
|
|
143
|
+
Baseline is the last pre-deploy check in the default creator loop:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
selftune eval generate --skill <name>
|
|
147
|
+
selftune eval unit-test --skill <name> --generate --skill-path <path>
|
|
148
|
+
selftune evolve --skill <name> --skill-path <path> --dry-run --validation-mode replay
|
|
149
|
+
selftune grade baseline --skill <name> --skill-path <path>
|
|
150
|
+
selftune evolve --skill <name> --skill-path <path> --with-baseline
|
|
151
|
+
selftune watch --skill <name>
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
After that, the skill is ready for live deploy and then watch with much clearer trust evidence.
|
|
155
|
+
|
|
137
156
|
## Common Patterns
|
|
138
157
|
|
|
139
158
|
**User asks whether a skill adds value (e.g., "does the Research skill help?"):**
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
# selftune Contribute Workflow
|
|
2
2
|
|
|
3
|
-
Export anonymized skill observability data
|
|
4
|
-
contribution. Helps improve selftune's skill routing without
|
|
3
|
+
Export an anonymized **export bundle** of skill observability data for
|
|
4
|
+
community contribution. Helps improve selftune's skill routing without
|
|
5
|
+
exposing private data.
|
|
5
6
|
|
|
6
|
-
This is **not** the same as
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
This is **not** the same as:
|
|
8
|
+
- `selftune contributions` — managing your **sharing preferences** for creator-directed signals
|
|
9
|
+
- `selftune creator-contributions` — managing the **creator sharing setup** file (`selftune.contribute.json`)
|
|
10
|
+
- The signals dashboard — viewing aggregated **contributor signal data** from all contributors
|
|
9
11
|
|
|
10
12
|
## When to Use
|
|
11
13
|
|
|
@@ -28,7 +30,9 @@ selftune contribute --skill selftune
|
|
|
28
30
|
| `--preview` | Show what would be shared without writing |
|
|
29
31
|
| `--sanitize <level>` | `conservative` (default) or `aggressive` |
|
|
30
32
|
| `--since <date>` | Only include data from this date onward |
|
|
31
|
-
| `--submit` |
|
|
33
|
+
| `--submit` | Submit bundle to the cloud endpoint (falls back to GitHub if it fails) |
|
|
34
|
+
| `--endpoint <url>` | Override the default cloud API endpoint |
|
|
35
|
+
| `--github` | Submit via GitHub Issue instead of the cloud endpoint |
|
|
32
36
|
|
|
33
37
|
## Sanitization Levels
|
|
34
38
|
|
|
@@ -68,8 +72,12 @@ No raw transcripts, file contents, or identifiable information is included.
|
|
|
68
72
|
|
|
69
73
|
## Submission
|
|
70
74
|
|
|
71
|
-
- Default: writes JSON file to `~/.selftune/contributions/`
|
|
72
|
-
- `--submit`:
|
|
75
|
+
- Default: writes the export bundle JSON file to `~/.selftune/contributions/`
|
|
76
|
+
- `--submit`: submits the export bundle to the cloud endpoint (`POST /api/v1/community/bundles`)
|
|
77
|
+
- Requires a `selftune.contribute.json` with a valid `creator_id` in the skill directory
|
|
78
|
+
- Uses the local alpha API key for authentication when available
|
|
79
|
+
- Falls back to GitHub Issue submission if the cloud endpoint is unreachable
|
|
80
|
+
- `--github`: explicitly submits via GitHub Issue instead of the cloud endpoint
|
|
73
81
|
- Small bundles (< 50KB): inlined in issue body
|
|
74
82
|
- Large bundles (>= 50KB): uploaded as a gist
|
|
75
83
|
|
|
@@ -94,8 +102,13 @@ No raw transcripts, file contents, or identifiable information is included.
|
|
|
94
102
|
|
|
95
103
|
**User wants to submit directly**
|
|
96
104
|
|
|
97
|
-
> Run `selftune contribute --submit`. This
|
|
98
|
-
>
|
|
105
|
+
> Run `selftune contribute --submit`. This submits the export bundle to the
|
|
106
|
+
> cloud endpoint. If the cloud endpoint fails, it falls back to GitHub.
|
|
107
|
+
|
|
108
|
+
**User wants to submit via GitHub explicitly**
|
|
109
|
+
|
|
110
|
+
> Run `selftune contribute --submit --github`. This creates a GitHub Issue
|
|
111
|
+
> via `gh` CLI with the bundle inlined or uploaded as a gist.
|
|
99
112
|
|
|
100
113
|
**User wants to limit to recent data**
|
|
101
114
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
# selftune Contributions Workflow
|
|
2
2
|
|
|
3
|
-
Manage local preferences for
|
|
3
|
+
Manage local **sharing preferences** for creator-directed contribution flows.
|
|
4
4
|
|
|
5
|
-
This is **not** the same as
|
|
6
|
-
- `selftune
|
|
7
|
-
- `selftune
|
|
8
|
-
-
|
|
5
|
+
This is **not** the same as:
|
|
6
|
+
- `selftune contribute` — exporting an anonymized **export bundle** for the community
|
|
7
|
+
- `selftune creator-contributions` — managing the **creator sharing setup** file (`selftune.contribute.json`)
|
|
8
|
+
- The signals dashboard — viewing aggregated **contributor signal data** from all contributors
|
|
9
9
|
|
|
10
10
|
## When to Use
|
|
11
11
|
|
|
@@ -54,6 +54,14 @@ selftune contributions upload [--dry-run] [--retry-failed] [--limit <n>]
|
|
|
54
54
|
| `--retry-failed` | Boolean | Requeue failed rows before attempting upload |
|
|
55
55
|
| `--limit <n>` | Integer | Maximum number of staged rows to upload in one run |
|
|
56
56
|
|
|
57
|
+
## Automatic Flush via Orchestrate
|
|
58
|
+
|
|
59
|
+
When `selftune orchestrate` runs, it automatically flushes any staged
|
|
60
|
+
creator-directed relay signals as Step 10 (after alpha upload). This means
|
|
61
|
+
users who have opted in don't need to run `selftune contributions upload`
|
|
62
|
+
manually — orchestrate handles it. The flush is fail-open and never blocks
|
|
63
|
+
the orchestrate loop. An API key is required (alpha enrolled).
|
|
64
|
+
|
|
57
65
|
## Notes
|
|
58
66
|
|
|
59
67
|
- This workflow now shows which installed skills are requesting creator-directed sharing via `selftune.contribute.json`.
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# selftune Create, Test, and Deploy Workflow
|
|
2
|
+
|
|
3
|
+
Use this when the user wants one guided path from a new or shaky skill to a
|
|
4
|
+
safe shipped skill.
|
|
5
|
+
|
|
6
|
+
This is a composed workflow. It does not replace the atomic `Evals`,
|
|
7
|
+
`UnitTest`, `Baseline`, `Evolve`, or `Watch` workflows. It decides which one
|
|
8
|
+
comes next and keeps the creator trust loop in order.
|
|
9
|
+
|
|
10
|
+
## When to Use
|
|
11
|
+
|
|
12
|
+
- The user says "create, test, and deploy"
|
|
13
|
+
- The user wants the full creator loop end to end
|
|
14
|
+
- The user asks "how do I know this skill works?" before shipping
|
|
15
|
+
- The user asks whether a skill is ready to deploy
|
|
16
|
+
- The user wants one recommended path from cold start to live watch
|
|
17
|
+
|
|
18
|
+
## Default Path
|
|
19
|
+
|
|
20
|
+
There is no single `selftune create-test-deploy` command yet. Run the loop
|
|
21
|
+
step by step:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
selftune eval generate --skill <name> --skill-path <path>
|
|
25
|
+
selftune eval unit-test --skill <name> --generate --skill-path <path>
|
|
26
|
+
selftune evolve --skill <name> --skill-path <path> --dry-run --validation-mode replay
|
|
27
|
+
selftune grade baseline --skill <name> --skill-path <path>
|
|
28
|
+
selftune evolve --skill <name> --skill-path <path> --with-baseline
|
|
29
|
+
selftune watch --skill <name>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## How to Run It
|
|
33
|
+
|
|
34
|
+
### 1. Resolve the current loop position
|
|
35
|
+
|
|
36
|
+
Start with one of these surfaces:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
selftune status
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
or
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
selftune dashboard
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Use the readiness summary to find which step is missing:
|
|
49
|
+
|
|
50
|
+
- missing evals
|
|
51
|
+
- missing unit tests
|
|
52
|
+
- missing replay validation
|
|
53
|
+
- missing baseline
|
|
54
|
+
- ready to deploy
|
|
55
|
+
- already deployed and under watch
|
|
56
|
+
|
|
57
|
+
### 2. Run only the next missing step
|
|
58
|
+
|
|
59
|
+
Do not blindly rerun the whole loop if the dashboard or status already shows a
|
|
60
|
+
later step is complete.
|
|
61
|
+
|
|
62
|
+
#### Missing evals
|
|
63
|
+
|
|
64
|
+
Run:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
selftune eval generate --skill <name> --skill-path <path>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
If the skill is cold-start and there are no trusted triggers yet, prefer:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
selftune eval generate --skill <name> --auto-synthetic --skill-path <path>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Then continue to `UnitTest`.
|
|
77
|
+
|
|
78
|
+
#### Missing unit tests
|
|
79
|
+
|
|
80
|
+
Run:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
selftune eval unit-test --skill <name> --generate --skill-path <path>
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Then continue to replay dry-run validation.
|
|
87
|
+
|
|
88
|
+
#### Missing replay validation
|
|
89
|
+
|
|
90
|
+
Run:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
selftune evolve --skill <name> --skill-path <path> --dry-run --validation-mode replay
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
This is the pre-deploy proof step. It validates against runtime-style routing
|
|
97
|
+
without mutating the skill.
|
|
98
|
+
|
|
99
|
+
Then continue to baseline.
|
|
100
|
+
|
|
101
|
+
#### Missing baseline
|
|
102
|
+
|
|
103
|
+
Run:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
selftune grade baseline --skill <name> --skill-path <path>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Then continue to live deploy.
|
|
110
|
+
|
|
111
|
+
#### Ready to deploy
|
|
112
|
+
|
|
113
|
+
Run:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
selftune evolve --skill <name> --skill-path <path> --with-baseline
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
This is the recommended creator ship command because it deploys only after the
|
|
120
|
+
candidate clears the earlier trust gates.
|
|
121
|
+
|
|
122
|
+
Then continue to watch.
|
|
123
|
+
|
|
124
|
+
#### Already deployed and under watch
|
|
125
|
+
|
|
126
|
+
Run:
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
selftune watch --skill <name>
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Use this state to explain whether the skill is stable, regressing, or ready for
|
|
133
|
+
another iteration.
|
|
134
|
+
|
|
135
|
+
## Which workflow to read next
|
|
136
|
+
|
|
137
|
+
Load the atomic workflow that matches the next missing step:
|
|
138
|
+
|
|
139
|
+
- eval generation -> `workflows/Evals.md`
|
|
140
|
+
- unit tests -> `workflows/UnitTest.md`
|
|
141
|
+
- replay dry-run / deploy -> `workflows/Evolve.md`
|
|
142
|
+
- baseline -> `workflows/Baseline.md`
|
|
143
|
+
- live monitoring -> `workflows/Watch.md`
|
|
144
|
+
|
|
145
|
+
Use `references/creator-playbook.md` when the user is publishing a skill other
|
|
146
|
+
people will install and needs before-ship versus after-ship guidance.
|
|
147
|
+
|
|
148
|
+
## Common Patterns
|
|
149
|
+
|
|
150
|
+
**User asks for one end-to-end shipping path**
|
|
151
|
+
|
|
152
|
+
> Use this workflow. Check the current readiness surface first, then run the
|
|
153
|
+
> next missing creator-loop step instead of dumping every command at once.
|
|
154
|
+
|
|
155
|
+
**User asks whether a skill is safe to ship**
|
|
156
|
+
|
|
157
|
+
> Use `selftune status` or the dashboard to confirm evals, unit tests, replay
|
|
158
|
+
> validation, and baseline exist. If all four are complete, run `selftune
|
|
159
|
+
> evolve --with-baseline`. Otherwise run the missing step first.
|
|
160
|
+
|
|
161
|
+
**User already shipped the skill**
|
|
162
|
+
|
|
163
|
+
> Do not send them back to eval generation unless the evidence is stale or
|
|
164
|
+
> missing. Route to `Watch` and explain whether the skill is stable.
|
|
165
|
+
|
|
166
|
+
**User wants to understand why the loop is ordered this way**
|
|
167
|
+
|
|
168
|
+
> Explain the progression:
|
|
169
|
+
> router coverage -> workflow correctness -> runtime proof -> no-skill value ->
|
|
170
|
+
> live deploy -> watch.
|