@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.
- package/assets/worker-kits/creative-strategist-v1/SKILL.md +95 -0
- package/assets/worker-kits/creative-strategist-v1/bundles/creative-strategist-v1.json +12 -2
- package/assets/worker-kits/creative-strategist-v1/helpers/README.md +29 -0
- package/assets/worker-kits/creative-strategist-v1/helpers/extract-muse-frames.sh +81 -0
- package/assets/worker-kits/creative-strategist-v1/helpers/grep-hooks.sh +62 -0
- package/assets/worker-kits/creative-strategist-v1/kit.json +20 -2
- package/assets/worker-kits/creative-strategist-v1/skills/README.md +23 -0
- package/assets/worker-kits/creative-strategist-v1/skills/frame-analysis/SKILL.md +88 -0
- package/assets/worker-kits/creative-strategist-v1/templates/project.md +48 -0
- package/assets/worker-kits/creative-strategist-v1/templates/self-eval.md +67 -0
- package/assets/worker-kits/creative-strategist-v1/workers/creative-strategist/CLAUDE.md +22 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/SKILL.md +89 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/bundles/growthub-ai-website-cloner-v1.json +9 -2
- package/assets/worker-kits/growthub-ai-website-cloner-v1/helpers/README.md +29 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/kit.json +14 -2
- package/assets/worker-kits/growthub-ai-website-cloner-v1/skills/README.md +23 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/project.md +48 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/templates/self-eval.md +67 -0
- package/assets/worker-kits/growthub-ai-website-cloner-v1/workers/ai-website-cloner-operator/CLAUDE.md +22 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/SKILL.md +122 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/bundles/growthub-custom-workspace-starter-v1.json +14 -2
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/docs/governed-workspace-primitives.md +182 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/helpers/README.md +44 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/kit.json +16 -2
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/skills/README.md +55 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/templates/project.md +55 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/templates/self-eval.md +67 -0
- package/assets/worker-kits/growthub-custom-workspace-starter-v1/workers/custom-workspace-operator/CLAUDE.md +24 -2
- package/assets/worker-kits/growthub-email-marketing-v1/SKILL.md +90 -0
- package/assets/worker-kits/growthub-email-marketing-v1/bundles/growthub-email-marketing-v1.json +9 -2
- package/assets/worker-kits/growthub-email-marketing-v1/helpers/README.md +29 -0
- package/assets/worker-kits/growthub-email-marketing-v1/kit.json +14 -2
- package/assets/worker-kits/growthub-email-marketing-v1/skills/README.md +23 -0
- package/assets/worker-kits/growthub-email-marketing-v1/templates/project.md +48 -0
- package/assets/worker-kits/growthub-email-marketing-v1/templates/self-eval.md +67 -0
- package/assets/worker-kits/growthub-email-marketing-v1/workers/email-marketing-strategist/CLAUDE.md +22 -0
- package/assets/worker-kits/growthub-geo-seo-v1/SKILL.md +90 -0
- package/assets/worker-kits/growthub-geo-seo-v1/bundles/growthub-geo-seo-v1.json +12 -3
- package/assets/worker-kits/growthub-geo-seo-v1/helpers/README.md +29 -0
- package/assets/worker-kits/growthub-geo-seo-v1/kit.json +23 -5
- package/assets/worker-kits/growthub-geo-seo-v1/skills/README.md +23 -0
- package/assets/worker-kits/growthub-geo-seo-v1/templates/project.md +48 -0
- package/assets/worker-kits/growthub-geo-seo-v1/templates/self-eval.md +67 -0
- package/assets/worker-kits/growthub-geo-seo-v1/workers/geo-seo-operator/CLAUDE.md +22 -0
- package/assets/worker-kits/growthub-hyperframes-studio-v1/SKILL.md +89 -0
- package/assets/worker-kits/growthub-hyperframes-studio-v1/bundles/growthub-hyperframes-studio-v1.json +6 -1
- package/assets/worker-kits/growthub-hyperframes-studio-v1/helpers/README.md +29 -0
- package/assets/worker-kits/growthub-hyperframes-studio-v1/kit.json +14 -2
- package/assets/worker-kits/growthub-hyperframes-studio-v1/skills/README.md +23 -0
- package/assets/worker-kits/growthub-hyperframes-studio-v1/templates/project.md +48 -0
- package/assets/worker-kits/growthub-hyperframes-studio-v1/templates/self-eval.md +67 -0
- package/assets/worker-kits/growthub-hyperframes-studio-v1/workers/hyperframes-studio-operator/CLAUDE.md +22 -0
- package/assets/worker-kits/growthub-marketing-skills-v1/SKILL.md +90 -0
- package/assets/worker-kits/growthub-marketing-skills-v1/bundles/growthub-marketing-skills-v1.json +12 -3
- package/assets/worker-kits/growthub-marketing-skills-v1/helpers/README.md +29 -0
- package/assets/worker-kits/growthub-marketing-skills-v1/kit.json +23 -5
- package/assets/worker-kits/growthub-marketing-skills-v1/skills/README.md +23 -0
- package/assets/worker-kits/growthub-marketing-skills-v1/templates/project.md +48 -0
- package/assets/worker-kits/growthub-marketing-skills-v1/templates/self-eval.md +67 -0
- package/assets/worker-kits/growthub-marketing-skills-v1/workers/marketing-operator/CLAUDE.md +22 -0
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/SKILL.md +89 -0
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/bundles/growthub-open-higgsfield-studio-v1.json +9 -2
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/helpers/README.md +29 -0
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/kit.json +14 -2
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/skills/README.md +23 -0
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/project.md +48 -0
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/templates/self-eval.md +67 -0
- package/assets/worker-kits/growthub-open-higgsfield-studio-v1/workers/open-higgsfield-studio-operator/CLAUDE.md +22 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/SKILL.md +89 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/bundles/growthub-open-montage-studio-v1.json +9 -2
- package/assets/worker-kits/growthub-open-montage-studio-v1/helpers/README.md +29 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/kit.json +14 -2
- package/assets/worker-kits/growthub-open-montage-studio-v1/skills/README.md +23 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/project.md +48 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/templates/self-eval.md +67 -0
- package/assets/worker-kits/growthub-open-montage-studio-v1/workers/open-montage-studio-operator/CLAUDE.md +22 -0
- package/assets/worker-kits/growthub-postiz-social-v1/SKILL.md +90 -0
- package/assets/worker-kits/growthub-postiz-social-v1/bundles/growthub-postiz-social-v1.json +9 -2
- package/assets/worker-kits/growthub-postiz-social-v1/helpers/README.md +29 -0
- package/assets/worker-kits/growthub-postiz-social-v1/kit.json +14 -2
- package/assets/worker-kits/growthub-postiz-social-v1/skills/README.md +23 -0
- package/assets/worker-kits/growthub-postiz-social-v1/templates/project.md +48 -0
- package/assets/worker-kits/growthub-postiz-social-v1/templates/self-eval.md +67 -0
- package/assets/worker-kits/growthub-postiz-social-v1/workers/postiz-social-operator/CLAUDE.md +22 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/SKILL.md +89 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/bundles/growthub-twenty-crm-v1.json +9 -2
- package/assets/worker-kits/growthub-twenty-crm-v1/helpers/README.md +29 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/kit.json +14 -2
- package/assets/worker-kits/growthub-twenty-crm-v1/skills/README.md +23 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/project.md +48 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/templates/self-eval.md +67 -0
- package/assets/worker-kits/growthub-twenty-crm-v1/workers/twenty-crm-operator/CLAUDE.md +22 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/.env.example +13 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/QUICKSTART.md +47 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/SKILL.md +89 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/brands/NEW-CLIENT.md +3 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/brands/_template/brand-kit.md +7 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/brands/growthub/brand-kit.md +6 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/bundles/growthub-video-use-studio-v1.json +54 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/docs/provider-adapter-layer.md +15 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/docs/video-use-discovery-path.md +13 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/docs/video-use-fork-integration.md +35 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/examples/video-brief-sample.md +11 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/growthub-meta/README.md +3 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/growthub-meta/kit-standard.md +6 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/helpers/README.md +29 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/kit.json +112 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/output/README.md +9 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/output-standards.md +19 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/runtime-assumptions.md +9 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/setup/check-deps.sh +21 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/setup/clone-fork.sh +18 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/setup/install-skill.sh +23 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/setup/verify-env.mjs +23 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/skills/README.md +23 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/skills.md +21 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/templates/edit-decision-list.md +17 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/templates/edit-strategy.md +11 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/templates/project.md +48 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/templates/qa-checklist.md +21 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/templates/render-plan.md +40 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/templates/self-eval.md +67 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/templates/video-brief.md +11 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/validation-checklist.md +11 -0
- package/assets/worker-kits/growthub-video-use-studio-v1/workers/video-use-studio-operator/CLAUDE.md +93 -0
- package/assets/worker-kits/growthub-zernio-social-v1/SKILL.md +90 -0
- package/assets/worker-kits/growthub-zernio-social-v1/bundles/growthub-zernio-social-v1.json +9 -2
- package/assets/worker-kits/growthub-zernio-social-v1/helpers/README.md +29 -0
- package/assets/worker-kits/growthub-zernio-social-v1/kit.json +14 -2
- package/assets/worker-kits/growthub-zernio-social-v1/skills/README.md +23 -0
- package/assets/worker-kits/growthub-zernio-social-v1/templates/project.md +48 -0
- package/assets/worker-kits/growthub-zernio-social-v1/templates/self-eval.md +67 -0
- package/assets/worker-kits/growthub-zernio-social-v1/workers/zernio-social-operator/CLAUDE.md +22 -0
- package/dist/index.js +974 -233
- package/package.json +2 -2
|
@@ -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.
|
package/assets/worker-kits/growthub-zernio-social-v1/workers/zernio-social-operator/CLAUDE.md
CHANGED
|
@@ -305,3 +305,25 @@ Append a line to the active brand kit DELIVERABLES LOG:
|
|
|
305
305
|
5. `SchedulingManifest` (if scheduling requested) + `scheduling-manifest.json`
|
|
306
306
|
6. `AnalyticsBrief` (if analytics data provided or API accessible)
|
|
307
307
|
7. `ClientProposal` (if requested)
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
## Governed-workspace primitives (v1.2)
|
|
312
|
+
|
|
313
|
+
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.
|
|
314
|
+
|
|
315
|
+
1. **`SKILL.md`** at the kit root — the discovery entry / routing menu. Read before `skills.md`.
|
|
316
|
+
2. **Repo-root `AGENTS.md` pointer** — Cursor / Claude / Codex all read the same contract.
|
|
317
|
+
3. **`.growthub-fork/project.md`** — session memory, seeded at init/import from `templates/project.md`. Append a dated entry after every material change.
|
|
318
|
+
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.
|
|
319
|
+
5. **Nested `skills/<slug>/SKILL.md`** — sub-skill lanes for parallel sub-agents on heavy or narrow work.
|
|
320
|
+
6. **`helpers/<verb>.{sh,mjs,py}`** — safe shell tool layer; promote any inline shell that gets used twice.
|
|
321
|
+
|
|
322
|
+
Command surface from inside this fork:
|
|
323
|
+
|
|
324
|
+
- `growthub skills list` — enumerate this fork’s SKILL.md tree
|
|
325
|
+
- `growthub skills validate` — strict shape check
|
|
326
|
+
- `growthub skills session show` — print the current `.growthub-fork/project.md`
|
|
327
|
+
- `growthub skills session init --kit <kit-id>` — (re-)seed session memory
|
|
328
|
+
|
|
329
|
+
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).
|