@growthub/cli 0.7.8 → 0.8.0

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.
Files changed (135) hide show
  1. package/assets/worker-kits/creative-strategist-v1/SKILL.md +95 -0
  2. package/assets/worker-kits/creative-strategist-v1/bundles/creative-strategist-v1.json +12 -2
  3. package/assets/worker-kits/creative-strategist-v1/helpers/README.md +29 -0
  4. package/assets/worker-kits/creative-strategist-v1/helpers/extract-muse-frames.sh +81 -0
  5. package/assets/worker-kits/creative-strategist-v1/helpers/grep-hooks.sh +62 -0
  6. package/assets/worker-kits/creative-strategist-v1/kit.json +20 -2
  7. package/assets/worker-kits/creative-strategist-v1/skills/README.md +23 -0
  8. package/assets/worker-kits/creative-strategist-v1/skills/frame-analysis/SKILL.md +88 -0
  9. package/assets/worker-kits/creative-strategist-v1/templates/project.md +48 -0
  10. package/assets/worker-kits/creative-strategist-v1/templates/self-eval.md +67 -0
  11. package/assets/worker-kits/creative-strategist-v1/workers/creative-strategist/CLAUDE.md +22 -0
  12. package/assets/worker-kits/growthub-ai-website-cloner-v1/SKILL.md +89 -0
  13. package/assets/worker-kits/growthub-ai-website-cloner-v1/bundles/growthub-ai-website-cloner-v1.json +9 -2
  14. package/assets/worker-kits/growthub-ai-website-cloner-v1/helpers/README.md +29 -0
  15. package/assets/worker-kits/growthub-ai-website-cloner-v1/kit.json +14 -2
  16. package/assets/worker-kits/growthub-ai-website-cloner-v1/skills/README.md +23 -0
  17. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/project.md +48 -0
  18. package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/self-eval.md +67 -0
  19. package/assets/worker-kits/growthub-ai-website-cloner-v1/workers/ai-website-cloner-operator/CLAUDE.md +22 -0
  20. package/assets/worker-kits/growthub-custom-workspace-starter-v1/SKILL.md +122 -0
  21. package/assets/worker-kits/growthub-custom-workspace-starter-v1/bundles/growthub-custom-workspace-starter-v1.json +14 -2
  22. package/assets/worker-kits/growthub-custom-workspace-starter-v1/docs/governed-workspace-primitives.md +182 -0
  23. package/assets/worker-kits/growthub-custom-workspace-starter-v1/helpers/README.md +44 -0
  24. package/assets/worker-kits/growthub-custom-workspace-starter-v1/kit.json +16 -2
  25. package/assets/worker-kits/growthub-custom-workspace-starter-v1/skills/README.md +55 -0
  26. package/assets/worker-kits/growthub-custom-workspace-starter-v1/templates/project.md +55 -0
  27. package/assets/worker-kits/growthub-custom-workspace-starter-v1/templates/self-eval.md +67 -0
  28. package/assets/worker-kits/growthub-custom-workspace-starter-v1/workers/custom-workspace-operator/CLAUDE.md +24 -2
  29. package/assets/worker-kits/growthub-email-marketing-v1/SKILL.md +90 -0
  30. package/assets/worker-kits/growthub-email-marketing-v1/bundles/growthub-email-marketing-v1.json +9 -2
  31. package/assets/worker-kits/growthub-email-marketing-v1/helpers/README.md +29 -0
  32. package/assets/worker-kits/growthub-email-marketing-v1/kit.json +14 -2
  33. package/assets/worker-kits/growthub-email-marketing-v1/skills/README.md +23 -0
  34. package/assets/worker-kits/growthub-email-marketing-v1/templates/project.md +48 -0
  35. package/assets/worker-kits/growthub-email-marketing-v1/templates/self-eval.md +67 -0
  36. package/assets/worker-kits/growthub-email-marketing-v1/workers/email-marketing-strategist/CLAUDE.md +22 -0
  37. package/assets/worker-kits/growthub-geo-seo-v1/SKILL.md +90 -0
  38. package/assets/worker-kits/growthub-geo-seo-v1/bundles/growthub-geo-seo-v1.json +12 -3
  39. package/assets/worker-kits/growthub-geo-seo-v1/helpers/README.md +29 -0
  40. package/assets/worker-kits/growthub-geo-seo-v1/kit.json +23 -5
  41. package/assets/worker-kits/growthub-geo-seo-v1/skills/README.md +23 -0
  42. package/assets/worker-kits/growthub-geo-seo-v1/templates/project.md +48 -0
  43. package/assets/worker-kits/growthub-geo-seo-v1/templates/self-eval.md +67 -0
  44. package/assets/worker-kits/growthub-geo-seo-v1/workers/geo-seo-operator/CLAUDE.md +22 -0
  45. package/assets/worker-kits/growthub-hyperframes-studio-v1/SKILL.md +89 -0
  46. package/assets/worker-kits/growthub-hyperframes-studio-v1/bundles/growthub-hyperframes-studio-v1.json +6 -1
  47. package/assets/worker-kits/growthub-hyperframes-studio-v1/helpers/README.md +29 -0
  48. package/assets/worker-kits/growthub-hyperframes-studio-v1/kit.json +14 -2
  49. package/assets/worker-kits/growthub-hyperframes-studio-v1/skills/README.md +23 -0
  50. package/assets/worker-kits/growthub-hyperframes-studio-v1/templates/project.md +48 -0
  51. package/assets/worker-kits/growthub-hyperframes-studio-v1/templates/self-eval.md +67 -0
  52. package/assets/worker-kits/growthub-hyperframes-studio-v1/workers/hyperframes-studio-operator/CLAUDE.md +22 -0
  53. package/assets/worker-kits/growthub-marketing-skills-v1/SKILL.md +90 -0
  54. package/assets/worker-kits/growthub-marketing-skills-v1/bundles/growthub-marketing-skills-v1.json +12 -3
  55. package/assets/worker-kits/growthub-marketing-skills-v1/helpers/README.md +29 -0
  56. package/assets/worker-kits/growthub-marketing-skills-v1/kit.json +23 -5
  57. package/assets/worker-kits/growthub-marketing-skills-v1/skills/README.md +23 -0
  58. package/assets/worker-kits/growthub-marketing-skills-v1/templates/project.md +48 -0
  59. package/assets/worker-kits/growthub-marketing-skills-v1/templates/self-eval.md +67 -0
  60. package/assets/worker-kits/growthub-marketing-skills-v1/workers/marketing-operator/CLAUDE.md +22 -0
  61. package/assets/worker-kits/growthub-open-higgsfield-studio-v1/SKILL.md +89 -0
  62. package/assets/worker-kits/growthub-open-higgsfield-studio-v1/bundles/growthub-open-higgsfield-studio-v1.json +9 -2
  63. package/assets/worker-kits/growthub-open-higgsfield-studio-v1/helpers/README.md +29 -0
  64. package/assets/worker-kits/growthub-open-higgsfield-studio-v1/kit.json +14 -2
  65. package/assets/worker-kits/growthub-open-higgsfield-studio-v1/skills/README.md +23 -0
  66. package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/project.md +48 -0
  67. package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/self-eval.md +67 -0
  68. package/assets/worker-kits/growthub-open-higgsfield-studio-v1/workers/open-higgsfield-studio-operator/CLAUDE.md +22 -0
  69. package/assets/worker-kits/growthub-open-montage-studio-v1/SKILL.md +89 -0
  70. package/assets/worker-kits/growthub-open-montage-studio-v1/bundles/growthub-open-montage-studio-v1.json +9 -2
  71. package/assets/worker-kits/growthub-open-montage-studio-v1/helpers/README.md +29 -0
  72. package/assets/worker-kits/growthub-open-montage-studio-v1/kit.json +14 -2
  73. package/assets/worker-kits/growthub-open-montage-studio-v1/skills/README.md +23 -0
  74. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/project.md +48 -0
  75. package/assets/worker-kits/growthub-open-montage-studio-v1/templates/self-eval.md +67 -0
  76. package/assets/worker-kits/growthub-open-montage-studio-v1/workers/open-montage-studio-operator/CLAUDE.md +22 -0
  77. package/assets/worker-kits/growthub-postiz-social-v1/SKILL.md +90 -0
  78. package/assets/worker-kits/growthub-postiz-social-v1/bundles/growthub-postiz-social-v1.json +9 -2
  79. package/assets/worker-kits/growthub-postiz-social-v1/helpers/README.md +29 -0
  80. package/assets/worker-kits/growthub-postiz-social-v1/kit.json +14 -2
  81. package/assets/worker-kits/growthub-postiz-social-v1/skills/README.md +23 -0
  82. package/assets/worker-kits/growthub-postiz-social-v1/templates/project.md +48 -0
  83. package/assets/worker-kits/growthub-postiz-social-v1/templates/self-eval.md +67 -0
  84. package/assets/worker-kits/growthub-postiz-social-v1/workers/postiz-social-operator/CLAUDE.md +22 -0
  85. package/assets/worker-kits/growthub-twenty-crm-v1/SKILL.md +89 -0
  86. package/assets/worker-kits/growthub-twenty-crm-v1/bundles/growthub-twenty-crm-v1.json +9 -2
  87. package/assets/worker-kits/growthub-twenty-crm-v1/helpers/README.md +29 -0
  88. package/assets/worker-kits/growthub-twenty-crm-v1/kit.json +14 -2
  89. package/assets/worker-kits/growthub-twenty-crm-v1/skills/README.md +23 -0
  90. package/assets/worker-kits/growthub-twenty-crm-v1/templates/project.md +48 -0
  91. package/assets/worker-kits/growthub-twenty-crm-v1/templates/self-eval.md +67 -0
  92. package/assets/worker-kits/growthub-twenty-crm-v1/workers/twenty-crm-operator/CLAUDE.md +22 -0
  93. package/assets/worker-kits/growthub-video-use-studio-v1/.env.example +13 -0
  94. package/assets/worker-kits/growthub-video-use-studio-v1/QUICKSTART.md +47 -0
  95. package/assets/worker-kits/growthub-video-use-studio-v1/SKILL.md +89 -0
  96. package/assets/worker-kits/growthub-video-use-studio-v1/brands/NEW-CLIENT.md +3 -0
  97. package/assets/worker-kits/growthub-video-use-studio-v1/brands/_template/brand-kit.md +7 -0
  98. package/assets/worker-kits/growthub-video-use-studio-v1/brands/growthub/brand-kit.md +6 -0
  99. package/assets/worker-kits/growthub-video-use-studio-v1/bundles/growthub-video-use-studio-v1.json +54 -0
  100. package/assets/worker-kits/growthub-video-use-studio-v1/docs/provider-adapter-layer.md +15 -0
  101. package/assets/worker-kits/growthub-video-use-studio-v1/docs/video-use-discovery-path.md +13 -0
  102. package/assets/worker-kits/growthub-video-use-studio-v1/docs/video-use-fork-integration.md +35 -0
  103. package/assets/worker-kits/growthub-video-use-studio-v1/examples/video-brief-sample.md +11 -0
  104. package/assets/worker-kits/growthub-video-use-studio-v1/growthub-meta/README.md +3 -0
  105. package/assets/worker-kits/growthub-video-use-studio-v1/growthub-meta/kit-standard.md +6 -0
  106. package/assets/worker-kits/growthub-video-use-studio-v1/helpers/README.md +29 -0
  107. package/assets/worker-kits/growthub-video-use-studio-v1/kit.json +112 -0
  108. package/assets/worker-kits/growthub-video-use-studio-v1/output/README.md +9 -0
  109. package/assets/worker-kits/growthub-video-use-studio-v1/output-standards.md +19 -0
  110. package/assets/worker-kits/growthub-video-use-studio-v1/runtime-assumptions.md +9 -0
  111. package/assets/worker-kits/growthub-video-use-studio-v1/setup/check-deps.sh +21 -0
  112. package/assets/worker-kits/growthub-video-use-studio-v1/setup/clone-fork.sh +18 -0
  113. package/assets/worker-kits/growthub-video-use-studio-v1/setup/install-skill.sh +23 -0
  114. package/assets/worker-kits/growthub-video-use-studio-v1/setup/verify-env.mjs +23 -0
  115. package/assets/worker-kits/growthub-video-use-studio-v1/skills/README.md +23 -0
  116. package/assets/worker-kits/growthub-video-use-studio-v1/skills.md +21 -0
  117. package/assets/worker-kits/growthub-video-use-studio-v1/templates/edit-decision-list.md +17 -0
  118. package/assets/worker-kits/growthub-video-use-studio-v1/templates/edit-strategy.md +11 -0
  119. package/assets/worker-kits/growthub-video-use-studio-v1/templates/project.md +48 -0
  120. package/assets/worker-kits/growthub-video-use-studio-v1/templates/qa-checklist.md +21 -0
  121. package/assets/worker-kits/growthub-video-use-studio-v1/templates/render-plan.md +40 -0
  122. package/assets/worker-kits/growthub-video-use-studio-v1/templates/self-eval.md +67 -0
  123. package/assets/worker-kits/growthub-video-use-studio-v1/templates/video-brief.md +11 -0
  124. package/assets/worker-kits/growthub-video-use-studio-v1/validation-checklist.md +11 -0
  125. package/assets/worker-kits/growthub-video-use-studio-v1/workers/video-use-studio-operator/CLAUDE.md +93 -0
  126. package/assets/worker-kits/growthub-zernio-social-v1/SKILL.md +90 -0
  127. package/assets/worker-kits/growthub-zernio-social-v1/bundles/growthub-zernio-social-v1.json +9 -2
  128. package/assets/worker-kits/growthub-zernio-social-v1/helpers/README.md +29 -0
  129. package/assets/worker-kits/growthub-zernio-social-v1/kit.json +14 -2
  130. package/assets/worker-kits/growthub-zernio-social-v1/skills/README.md +23 -0
  131. package/assets/worker-kits/growthub-zernio-social-v1/templates/project.md +48 -0
  132. package/assets/worker-kits/growthub-zernio-social-v1/templates/self-eval.md +67 -0
  133. package/assets/worker-kits/growthub-zernio-social-v1/workers/zernio-social-operator/CLAUDE.md +22 -0
  134. package/dist/index.js +974 -233
  135. package/package.json +2 -2
@@ -0,0 +1,89 @@
1
+ ---
2
+ name: growthub-ai-website-cloner-v1
3
+ description: "Self-contained workspace for cloning any website into a clean Next.js 16 + shadcn/ui + Tailwind CSS v4 codebase. Use when the user says: \"clone this site\", \"next.js rebuild\", \"website cloner\". Session memory tracks source URL, DOM-scrape milestones, and component extraction self-eval outcomes."
4
+ triggers:
5
+ - ai website cloner
6
+ - fork growthub-ai-website-cloner-v1
7
+ progressiveDisclosure: true
8
+ sessionMemory:
9
+ path: .growthub-fork/project.md
10
+ selfEval:
11
+ criteria:
12
+ - Operator contract (workers/ai-website-cloner-operator/CLAUDE.md) read before any material change.
13
+ - .growthub-fork/project.md appended to at each material change.
14
+ - .growthub-fork/trace.jsonl receives a typed event for each material change.
15
+ - Kit-specific QUICKSTART / runtime-assumptions / output-standards honoured.
16
+ maxRetries: 3
17
+ traceTo: .growthub-fork/trace.jsonl
18
+ helpers: []
19
+ subSkills: []
20
+ mcpTools: []
21
+ ---
22
+
23
+ # Growthub Agent Worker Kit — AI Website Cloner
24
+
25
+ Discovery entry + routing menu for the `growthub-ai-website-cloner-v1` worker kit. Family: `studio`. Agent contract: `workers/ai-website-cloner-operator/CLAUDE.md`.
26
+
27
+ ## When to use this skill
28
+
29
+ When the user's intent matches any of the triggers above — or when an agent has been dropped into a fork whose `.growthub-fork/fork.json` declares `kitId: "growthub-ai-website-cloner-v1"`.
30
+
31
+ ## Decision tree
32
+
33
+ ```
34
+ Fork exists (this directory contains .growthub-fork/fork.json)?
35
+ ├── No → run: growthub starter init --out <path> (or import-repo / import-skill)
36
+ │ then: growthub kit download growthub-ai-website-cloner-v1 --out <path>
37
+
38
+ └── Yes → read in this order:
39
+ 1. .growthub-fork/project.md — session memory (primitive #3)
40
+ 2. SKILL.md (this file) — routing menu (primitive #1)
41
+ 3. skills.md — operator runbook
42
+ 4. workers/ai-website-cloner-operator/CLAUDE.md — agent contract
43
+ 5. QUICKSTART.md — first-run steps
44
+ 6. runtime-assumptions.md — host expectations
45
+ 7. .growthub-fork/policy.json — what you may touch
46
+ 8. .growthub-fork/trace.jsonl (tail 20) — recent machine history
47
+ ```
48
+
49
+ ## The six primitives (same shape across every Growthub worker kit)
50
+
51
+ 1. **`SKILL.md`** — this file.
52
+ 2. **Symlinked pointer** — repo-root `AGENTS.md` is authoritative.
53
+ 3. **`.growthub-fork/project.md`** — session memory, seeded by the CLI from `templates/project.md` at init/import time.
54
+ 4. **Self-evaluation** — generate → apply → evaluate → record; retry up to `selfEval.maxRetries` (default 3); mirrors the Fork Sync Agent's preview → apply → trace loop (primitive #4). Contract: `@growthub/api-contract/skills::SkillSelfEval`.
55
+ 5. **`skills/`** — nested sub-skills for parallel sub-agents on heavy / narrow work.
56
+ 6. **`helpers/`** — safe shell tool layer. Promote inline shell here whenever the same snippet is re-used.
57
+
58
+ ## Self-evaluation (primitive #4)
59
+
60
+ Enforce `selfEval.maxRetries: 3`. At the ceiling, park with a `needs_confirmation` note in `project.md` and stop. Record every attempt to both `project.md` and `trace.jsonl`.
61
+
62
+ ## Session memory (primitive #3)
63
+
64
+ `.growthub-fork/project.md` is the only cross-session continuity surface for this fork. Append at every material change, approval boundary, and self-eval outcome.
65
+
66
+ ## Sub-skills (primitive #5)
67
+
68
+ (None declared at the baseline; populate `skills/` and the frontmatter `subSkills[]` array as specialist lanes emerge.)
69
+
70
+ ## Helpers (primitive #6)
71
+
72
+ (None declared at the baseline; populate `helpers/` and the frontmatter `helpers[]` array as inline shell matures.)
73
+
74
+ ## MCP routing (optional)
75
+
76
+ List concrete MCP tool IDs in `mcpTools[]` when a fork runs an MCP server for auth-heavy actions. Declarative only at v1.
77
+
78
+ ## Related files
79
+
80
+ - `skills.md` — operator runbook (deep)
81
+ - `QUICKSTART.md` — first-run steps
82
+ - `runtime-assumptions.md` — host expectations
83
+ - `output-standards.md` — output locations + manifest shape
84
+ - `validation-checklist.md` — pre-flight checklist (if present)
85
+ - `templates/project.md` — session-memory template
86
+ - `templates/self-eval.md` — self-evaluation template
87
+ - `helpers/README.md` — safe shell tool layer convention
88
+ - `skills/README.md` — sub-skill convention
89
+ - `workers/ai-website-cloner-operator/CLAUDE.md` — agent contract
@@ -42,12 +42,19 @@
42
42
  "docs/parallel-builder-dispatch.md",
43
43
  "docs/design-token-system.md",
44
44
  "growthub-meta/README.md",
45
- "growthub-meta/kit-standard.md"
45
+ "growthub-meta/kit-standard.md",
46
+ "SKILL.md",
47
+ "templates/project.md",
48
+ "templates/self-eval.md",
49
+ "helpers/README.md",
50
+ "skills/README.md"
46
51
  ],
47
52
  "optionalPresets": [],
48
53
  "export": {
49
54
  "folderName": "growthub-agent-worker-kit-ai-website-cloner-v1",
50
55
  "zipFileName": "growthub-agent-worker-kit-ai-website-cloner-v1.zip"
51
56
  },
52
- "activationModes": ["export"]
57
+ "activationModes": [
58
+ "export"
59
+ ]
53
60
  }
@@ -0,0 +1,29 @@
1
+ # `helpers/` — safe shell tool layer (primitive #6)
2
+
3
+ A **helper** is a small, deterministic script an agent invokes via one shell call instead of reconstructing a raw pipeline inline. Helpers are reviewable, deterministic, and safer than raw commands.
4
+
5
+ ## Convention
6
+
7
+ ```
8
+ helpers/
9
+ ├── README.md # this file
10
+ ├── <verb>.sh # single-purpose shell scripts
11
+ ├── <verb>.mjs # optional: Node-based helper
12
+ └── <verb>.py # optional: Python-based helper
13
+ ```
14
+
15
+ Every helper:
16
+
17
+ 1. Carries a one-line header comment: what it does + how to invoke it.
18
+ 2. Uses `set -euo pipefail` (or equivalent) — no silent failures.
19
+ 3. Has a matching row in the parent `SKILL.md`'s `helpers[]` frontmatter.
20
+ 4. Is referenced from `skills.md` at the step the agent should invoke it (no duplicated shell bodies).
21
+
22
+ ## When to promote an inline snippet
23
+
24
+ - Appears more than once in `skills.md`.
25
+ - Has fragile quoting or path interpolation.
26
+ - Calls a side-effecting binary (ffmpeg, git, gh, npm install).
27
+ - Multiple sub-skills invoke it.
28
+
29
+ See the parent `SKILL.md` `helpers[]` array for the current roster.
@@ -54,7 +54,12 @@
54
54
  "docs/parallel-builder-dispatch.md",
55
55
  "docs/design-token-system.md",
56
56
  "growthub-meta/README.md",
57
- "growthub-meta/kit-standard.md"
57
+ "growthub-meta/kit-standard.md",
58
+ "SKILL.md",
59
+ "templates/project.md",
60
+ "templates/self-eval.md",
61
+ "helpers/README.md",
62
+ "skills/README.md"
58
63
  ],
59
64
  "setupPaths": {
60
65
  "quickstart": "QUICKSTART.md",
@@ -81,7 +86,14 @@
81
86
  "output/README.md",
82
87
  "templates",
83
88
  "docs",
84
- "growthub-meta"
89
+ "growthub-meta",
90
+ "SKILL.md",
91
+ "templates/project.md",
92
+ "templates/self-eval.md",
93
+ "helpers",
94
+ "helpers/README.md",
95
+ "skills",
96
+ "skills/README.md"
85
97
  ]
86
98
  },
87
99
  "bundles": [
@@ -0,0 +1,23 @@
1
+ # `skills/` — nested sub-skill convention (primitive #5)
2
+
3
+ A **sub-skill** is a full `SKILL.md`-addressable lane that a parent skill can spawn as a parallel sub-agent.
4
+
5
+ ## Convention
6
+
7
+ ```
8
+ skills/
9
+ ├── README.md # this file
10
+ └── <slug>/ # kebab-case; matches the SKILL.md name
11
+ ├── SKILL.md # frontmatter + routing body (≤ 500 lines)
12
+ ├── references/ # optional — long docs loaded on demand
13
+ ├── templates/ # optional — reusable text/JS templates
14
+ └── scripts/ # optional — deterministic helpers
15
+ ```
16
+
17
+ Each sub-skill's frontmatter follows `@growthub/api-contract/skills::SkillManifest`. Sub-skills share the parent's `.growthub-fork/project.md` journal — they do not branch it.
18
+
19
+ ## Parallelism
20
+
21
+ Spawn a sub-skill sub-agent when (a) the sub-skill's work is fully scoped by its own criteria, and (b) the parent's next step does not depend on intermediate state from the sub-skill. Each sub-skill run appends a row to `project.md::subSkillRuns` so the parent can read the outcome on return.
22
+
23
+ See the parent `SKILL.md` `subSkills[]` array for the current roster.
@@ -0,0 +1,48 @@
1
+ ---
2
+ # .growthub-fork/project.md — session memory primitive (v1)
3
+ #
4
+ # Written by the CLI at init/import time. Append-only, human-readable; sits
5
+ # alongside the machine-readable `trace.jsonl`. Approvals, self-eval outcomes,
6
+ # and sub-skill runs all record here.
7
+ #
8
+ # Replaceable tokens (seeded at init time):
9
+ # {{KIT_ID}} {{FORK_ID}} {{STARTED_AT}} {{SOURCE}} {{SOURCE_REF}}
10
+
11
+ kitId: "{{KIT_ID}}"
12
+ forkId: "{{FORK_ID}}"
13
+ startedAt: "{{STARTED_AT}}"
14
+ source: "{{SOURCE}}"
15
+ sourceRef: "{{SOURCE_REF}}"
16
+ skillManifestVersion: 1
17
+ approvals: []
18
+ selfEvalHistory: []
19
+ subSkillRuns: []
20
+ ---
21
+
22
+ # Project journal — fork `{{FORK_ID}}`
23
+
24
+ Baseline primitive: `{{KIT_ID}}`. Seeded at `{{STARTED_AT}}` from `{{SOURCE}}` (`{{SOURCE_REF}}`).
25
+
26
+ This is your cross-session continuity surface. Read the last few entries before every session; append after every material change, approval, and self-eval boundary.
27
+
28
+ ## How to use this file
29
+
30
+ 1. **Session start.** Read the last 3 entries + tail 20 events in `.growthub-fork/trace.jsonl`. State your plan.
31
+ 2. **Material change.** Record as a dated bullet (what, why, outcome). Simultaneously append a typed event to `trace.jsonl` via the Fork Sync Agent — never bypass.
32
+ 3. **Approval boundary.** Add a row to `approvals` in the frontmatter (verbatim decision).
33
+ 4. **Self-eval boundary.** Append to `selfEvalHistory`: `attempt`, `criteria`, `outcome`, `notes`. Enforce `maxRetries: 3`.
34
+ 5. **Sub-skill spawn.** Append to `subSkillRuns`: `subSkill`, `startedAt`, `result`.
35
+
36
+ ## Session log
37
+
38
+ <!-- Append newest entries at the bottom. Format:
39
+
40
+ ### {{YYYY-MM-DD HH:mm UTC}} · {{skill-slug}}
41
+ - **Plan.** What you intend to do.
42
+ - **Changes.** Material changes (each must correspond to a trace event).
43
+ - **Outcome.** Pass / fail / parked. Reference self-eval criteria.
44
+ - **Next.** What the next session should pick up.
45
+
46
+ -->
47
+
48
+ _No sessions recorded yet. Populated as the fork is operated._
@@ -0,0 +1,67 @@
1
+ # Self-evaluation template — v1 primitive (Growthub, capability-agnostic)
2
+
3
+ A skill's `selfEval` contract declares **what good looks like** (`criteria[]`) and **the retry ceiling** (`maxRetries`). The agent drives the loop; this file is the pattern the agent follows at every unit of work.
4
+
5
+ The contract is defined in `@growthub/api-contract/skills::SkillSelfEval` and is **capability-agnostic** — the same primitive applies to code edits, copy drafts, CRM rules, API payloads, asset renders, audit passes, and every other domain. The "unit of work" is the smallest reversible change the skill operates on; concrete boundaries are defined in the kit's own `skills.md` operator runbook, not here.
6
+
7
+ ## Loop
8
+
9
+ ```
10
+ for attempt in 1..maxRetries: # default maxRetries = 3
11
+ generate — produce a proposal (whatever the skill produces)
12
+ apply — materialise the proposal against the fork
13
+ self-evaluate — for each criterion in skill.selfEval.criteria:
14
+ check → pass / fail / needs-confirmation
15
+ record — append to project.md (human) + trace.jsonl (machine)
16
+
17
+ if all criteria pass: break
18
+ if attempt == maxRetries: park with needs_confirmation note. Stop.
19
+ ```
20
+
21
+ ## What each attempt writes
22
+
23
+ ### Human row — append to `.growthub-fork/project.md` "Session log"
24
+
25
+ ```md
26
+ ### 2026-04-23 18:40 UTC · <skill-slug>
27
+ - **Plan.** What you intend to do this unit of work.
28
+ - **Changes.** Material change applied (must correspond to a trace event).
29
+ - **Self-eval.** attempt 2/3 — criterion "<one of skill.selfEval.criteria>" ✗ (<note>). Retrying.
30
+ - **Outcome.** retry-pending / pass / parked.
31
+ - **Next.** What the next attempt (or next session) should pick up.
32
+ ```
33
+
34
+ ### Machine row — append to `.growthub-fork/trace.jsonl` (via `appendKitForkTraceEvent`)
35
+
36
+ ```json
37
+ {
38
+ "ts": "2026-04-23T18:40:00.000Z",
39
+ "forkId": "<fork-id>",
40
+ "kitId": "<kit-id>",
41
+ "type": "self_eval_recorded",
42
+ "summary": "attempt 2/3 failed on <criterion>",
43
+ "detail": {
44
+ "skill": "<skill-slug>",
45
+ "attempt": 2,
46
+ "maxRetries": 3,
47
+ "criterion": "<one of skill.selfEval.criteria>",
48
+ "outcome": "fail",
49
+ "notes": "<short explanation>"
50
+ }
51
+ }
52
+ ```
53
+
54
+ ## Hard rules
55
+
56
+ 1. **Never exceed `maxRetries`.** At the ceiling, park with a `needs_confirmation` note and stop. Do not loop forever.
57
+ 2. **Record every attempt.** Even the first pass. Continuity depends on a complete journal.
58
+ 3. **Keep `project.md` and `trace.jsonl` in sync.** One without the other is a protocol violation.
59
+ 4. **Preserve prior entries.** Append-only. Never rewrite history.
60
+
61
+ ## Bound the blast radius
62
+
63
+ Evaluate at the smallest unit of work the skill operates on, not only at the end of a multi-step run. The retry ceiling applies to that unit — so a bad attempt does not sink the whole job.
64
+
65
+ What counts as a "unit of work" is **kit-specific** and lives in that kit's `skills.md` operator runbook — not in this agnostic template. A kit picks its own smallest reversible boundary and documents it in `skills.md`; this template does not prescribe one.
66
+
67
+ The agnostic SDK (`@growthub/api-contract/skills::SkillSelfEval`) does not encode any domain-specific boundaries — it only carries `criteria[]`, `maxRetries`, and `traceTo`. See `SKILL.md::selfEval.criteria` in this kit for the concrete checks, and `skills.md` for the kit-specific unit of work.
@@ -254,3 +254,25 @@ Append a deliverable line in the active brand kit:
254
254
  5. `BuilderDispatchPlan`
255
255
  6. `VisualQAChecklist`
256
256
  7. `PlatformHandoff`
257
+
258
+ ---
259
+
260
+ ## Governed-workspace primitives (v1.2)
261
+
262
+ This workspace carries the six architectural primitives every Growthub fork inherits. The contract is capability-agnostic (`@growthub/api-contract/skills::SkillManifest`); kit-specific specialisation lives in `skills.md` above.
263
+
264
+ 1. **`SKILL.md`** at the kit root — the discovery entry / routing menu. Read before `skills.md`.
265
+ 2. **Repo-root `AGENTS.md` pointer** — Cursor / Claude / Codex all read the same contract.
266
+ 3. **`.growthub-fork/project.md`** — session memory, seeded at init/import from `templates/project.md`. Append a dated entry after every material change.
267
+ 4. **Self-evaluation (`selfEval.criteria` + `maxRetries`)** — generate → apply → evaluate → record; retry up to 3; every attempt writes to both `project.md` (human) and `trace.jsonl` (machine). Use `recordSelfEval` (`cli/src/skills/self-eval.ts`); never bypass the fork-trace primitive.
268
+ 5. **Nested `skills/<slug>/SKILL.md`** — sub-skill lanes for parallel sub-agents on heavy or narrow work.
269
+ 6. **`helpers/<verb>.{sh,mjs,py}`** — safe shell tool layer; promote any inline shell that gets used twice.
270
+
271
+ Command surface from inside this fork:
272
+
273
+ - `growthub skills list` — enumerate this fork’s SKILL.md tree
274
+ - `growthub skills validate` — strict shape check
275
+ - `growthub skills session show` — print the current `.growthub-fork/project.md`
276
+ - `growthub skills session init --kit <kit-id>` — (re-)seed session memory
277
+
278
+ Full user-facing narrative: `cli/assets/worker-kits/growthub-custom-workspace-starter-v1/docs/governed-workspace-primitives.md` (also shipped into any workspace forked from the starter kit).
@@ -0,0 +1,122 @@
1
+ ---
2
+ name: growthub-custom-workspace-starter
3
+ description: Baseline primitive for every Growthub governed workspace. Routing menu for the Custom Workspace Operator — delegates to the operator runbook (`skills.md`), the session-memory template (`templates/project.md`), the self-evaluation contract (`templates/self-eval.md`), the safe-shell helpers layer (`helpers/`), and the parallel sub-skill convention (`skills/`). Invoked when the user starts a greenfield workspace via `growthub starter init`, imports a GitHub repo or skills.sh skill via `growthub starter import-repo`/`import-skill`, or downloads this kit directly via `growthub kit download`.
4
+ triggers:
5
+ - greenfield workspace
6
+ - starter init
7
+ - custom workspace
8
+ - import repo
9
+ - import skill
10
+ - baseline primitive
11
+ progressiveDisclosure: true
12
+ sessionMemory:
13
+ path: .growthub-fork/project.md
14
+ selfEval:
15
+ criteria:
16
+ - Scaffolded tree matches kit.json frozenAssetPaths.
17
+ - .growthub-fork/ carries fork.json + policy.json + trace.jsonl.
18
+ - .growthub-fork/project.md seeded from templates/project.md.
19
+ - Operator contract read before any material change.
20
+ maxRetries: 3
21
+ traceTo: .growthub-fork/trace.jsonl
22
+ helpers: []
23
+ subSkills: []
24
+ mcpTools: []
25
+ ---
26
+
27
+ # Custom Workspace Starter — Baseline Primitive
28
+
29
+ Every Growthub governed workspace is materialised from this kit. The kit ships the `.growthub-fork/` contract (identity, policy, trace, optional authority) plus the six primitive layers Claude/Cursor/Codex agents operate against:
30
+
31
+ 1. **`SKILL.md`** — this file. Discovery entry + routing menu. Always loaded first; the full operator runbook (`skills.md`) is disclosed progressively when work begins.
32
+ 2. **`skills.md`** — the deep operator runbook. Everything the operator agent needs to actually customise the workspace. Unchanged from v1.
33
+ 3. **`templates/project.md`** — session-memory template. On `growthub starter init` and `growthub starter import-*`, the CLI copies this to `.growthub-fork/project.md` so every fork starts with an append-only editing history alongside the machine-readable `trace.jsonl`.
34
+ 4. **`templates/self-eval.md`** — self-evaluation pattern. Describes the generate → render → evaluate → retry (≤3) loop that mirrors the Fork Sync Agent's preview → apply → trace lifecycle.
35
+ 5. **`helpers/`** — safe shell tool layer. Scripts an agent calls via one shell invocation instead of reconstructing raw commands. Populated per fork; the baseline ships conventions only.
36
+ 6. **`skills/`** — nested sub-skill convention. Each sub-directory is a full `SKILL.md`-addressable sub-skill that a parent agent can spawn in parallel for heavy or narrow tasks.
37
+
38
+ ## When to use this skill
39
+
40
+ - User says: "start a new custom workspace", "scaffold a fork", "import this repo into a workspace", "bring this skill into a fork".
41
+ - An agent has just been dropped into a directory that contains `.growthub-fork/fork.json` — this is the SKILL.md that routes the agent into the right operator flow for that fork.
42
+
43
+ ## Decision tree
44
+
45
+ ```
46
+ Did the user ask to CREATE a new workspace?
47
+ ├── Yes → route to `growthub starter init --out <path>` (greenfield)
48
+ │ or `growthub starter import-repo <owner/repo> --out <path>`
49
+ │ or `growthub starter import-skill <owner/repo/skill> --out <path>`
50
+ │ Afterwards: open the fork + read `.growthub-fork/project.md` (just seeded).
51
+
52
+ └── No → the fork already exists. Read in this order:
53
+ 1. `.growthub-fork/project.md` — session memory (your own prior state)
54
+ 2. `SKILL.md` (this file) — routing menu
55
+ 3. `skills.md` — operator runbook
56
+ 4. `workers/custom-workspace-operator/CLAUDE.md` — agent contract
57
+ 5. `.growthub-fork/policy.json` — what you may touch
58
+ 6. `.growthub-fork/trace.jsonl` — machine history (tail 20)
59
+ ```
60
+
61
+ ## Self-evaluation (primitive #4)
62
+
63
+ After each material change to the fork:
64
+
65
+ 1. Append an entry to `.growthub-fork/project.md` (human-readable: what you tried, why, outcome).
66
+ 2. Append a typed event to `.growthub-fork/trace.jsonl` via `appendKitForkTraceEvent` — never bypass.
67
+ 3. Check against `selfEval.criteria` above. If failed, retry up to `maxRetries: 3` — then stop and park with a `needs_confirmation` note in `project.md`. Do not loop indefinitely.
68
+
69
+ See `templates/self-eval.md` for the concrete template.
70
+
71
+ ## Session memory (primitive #3)
72
+
73
+ `.growthub-fork/project.md` is the single cross-session continuity surface. Write to it:
74
+
75
+ - before you begin each session (what you plan),
76
+ - after each material change (what you did),
77
+ - at approval boundaries (what the user approved / rejected),
78
+ - at self-eval boundaries (retry count, outcome).
79
+
80
+ `project.md` is human-readable; `trace.jsonl` is machine-readable. The two are kept in sync by the CLI's fork primitives — you never pick one over the other.
81
+
82
+ ## Sub-skills (primitive #5)
83
+
84
+ If this fork declares sub-skills under `skills/<slug>/SKILL.md`, list them below. Spawn a sub-agent per sub-skill only when the work is (a) heavy enough that isolating context helps, or (b) narrow enough that a specialist lane is clearer than a generalist lane.
85
+
86
+ (None declared at the baseline; forks populate this as the workspace evolves.)
87
+
88
+ ## Helpers (primitive #6)
89
+
90
+ Helpers live under `helpers/`. When an existing shell snippet in `skills.md` is re-used in multiple sessions, extract it into `helpers/<verb>.sh`, add a row to `helpers/README.md`, and add an entry to this frontmatter's `helpers[]` array. Agents then call one shell file rather than reconstructing the snippet — safer, reviewable, consistent.
91
+
92
+ (None declared at the baseline; see `helpers/README.md` for the pattern.)
93
+
94
+ ## MCP routing (optional)
95
+
96
+ If a concrete MCP server is available for this fork, list its tool IDs in `mcpTools[]`. Growthub's baseline ships declarative-only routing vocabulary — the CLI does not run an MCP server at v1. This field lets future MCP integration light up additively without a breaking change.
97
+
98
+ ## Execution verbs (from `workers/custom-workspace-operator/CLAUDE.md`)
99
+
100
+ - `growthub starter init --name <workspace> --out <path>` — scaffold a new workspace from this kit
101
+ - `growthub starter import-repo <ref> --out <path>` — scaffold from a GitHub repo
102
+ - `growthub starter import-skill <ref> --out <path>` — scaffold from a skills.sh skill
103
+ - `growthub kit fork status <fork-id>` — drift check
104
+ - `growthub kit fork heal <fork-id> [--dry-run | --background]` — preview + apply heal
105
+ - `growthub kit fork policy --fork-id <fork-id> --set <key=value>` — configure safety envelope
106
+ - `growthub kit fork trace --fork-id <fork-id> --tail N` — replay the event log
107
+ - `growthub skills list [--json]` — enumerate every SKILL.md (this fork + nested)
108
+ - `growthub skills validate` — check SKILL.md frontmatter + helper/sub-skill paths
109
+ - `growthub skills session show` — print the current `.growthub-fork/project.md`
110
+
111
+ ## Related files
112
+
113
+ - `skills.md` — operator runbook (deep)
114
+ - `QUICKSTART.md` — first-run steps
115
+ - `runtime-assumptions.md` — what the kit expects from the host
116
+ - `output-standards.md` — where outputs go
117
+ - `validation-checklist.md` — pre-flight checklist
118
+ - `templates/project.md` — session-memory template (seed for `.growthub-fork/project.md`)
119
+ - `templates/self-eval.md` — self-evaluation template
120
+ - `helpers/README.md` — helpers convention
121
+ - `skills/README.md` — sub-skills convention
122
+ - `workers/custom-workspace-operator/CLAUDE.md` — agent contract
@@ -9,13 +9,20 @@
9
9
  "briefType": "custom-workspace-starter",
10
10
  "capabilityType": "worker",
11
11
  "executionMode": "export",
12
- "activationModes": ["export"],
12
+ "activationModes": [
13
+ "export"
14
+ ],
15
+ "export": {
16
+ "folderName": "growthub-custom-workspace-starter-v1",
17
+ "zipFileName": "growthub-custom-workspace-starter-v1.zip"
18
+ },
13
19
  "publicExampleBrandPaths": [
14
20
  "brands/growthub/brand-kit.md"
15
21
  ],
16
22
  "requiredFrozenAssets": [
17
23
  "QUICKSTART.md",
18
24
  ".env.example",
25
+ "SKILL.md",
19
26
  "skills.md",
20
27
  "output-standards.md",
21
28
  "runtime-assumptions.md",
@@ -30,6 +37,10 @@
30
37
  "templates/workspace-brief.md",
31
38
  "templates/agent-contract.md",
32
39
  "templates/deployment-plan.md",
40
+ "templates/project.md",
41
+ "templates/self-eval.md",
42
+ "helpers/README.md",
43
+ "skills/README.md",
33
44
  "examples/workspace-sample.md",
34
45
  "docs/starter-kit-overview.md",
35
46
  "docs/fork-sync-integration.md",
@@ -42,6 +53,7 @@
42
53
  "studio/src/App.jsx",
43
54
  "studio/src/app.css",
44
55
  "growthub-meta/README.md",
45
- "growthub-meta/kit-standard.md"
56
+ "growthub-meta/kit-standard.md",
57
+ "docs/governed-workspace-primitives.md"
46
58
  ]
47
59
  }