@oaklandzoo/ostup 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -54,32 +54,35 @@ through creating them when you reach that step.
54
54
 
55
55
  ## Install
56
56
 
57
- Two paths. Pick the one that matches how you got ostup.
58
-
59
- ### Path A: from npm (after `ostup` is published)
57
+ The fastest path:
60
58
 
61
59
  ```
62
- npx ostup init
60
+ npx @oaklandzoo/ostup init
63
61
  ```
64
62
 
65
- That is the whole install. `npx` downloads ostup on first run.
63
+ That is the whole install. `npx` downloads ostup on first run, nothing
64
+ to install permanently.
65
+
66
+ If you'd rather install it globally so the command is just `ostup`:
66
67
 
67
- As of right now, `ostup` is not yet published to npm. Use Path B below.
68
+ ```
69
+ npm install -g @oaklandzoo/ostup
70
+ ostup --version # should print 0.1.0
71
+ ostup init
72
+ ```
68
73
 
69
- ### Path B: from source (today's path)
74
+ ### Alternate: install from source
70
75
 
71
- If you cloned or downloaded https://github.com/DubsFan/goodshin:
76
+ If you cloned https://github.com/DubsFan/goodshin and want to run from
77
+ your local checkout:
72
78
 
73
79
  ```
74
80
  cd /path/to/goodshin/ostup
75
- npm install # downloads ostup's own dependencies
76
- npm link # adds `ostup` to your PATH globally
77
- ostup --version # should print 0.1.0
81
+ npm install
82
+ npm link
83
+ ostup --version
78
84
  ```
79
85
 
80
- After `npm link` you can run `ostup` from any folder. You only do this
81
- once per machine.
82
-
83
86
  ## Use
84
87
 
85
88
  In Terminal, navigate to the parent folder where you want the new
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oaklandzoo/ostup",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Scaffolds a new repo with the Ostup Agent Kit pre-installed: slash commands, doc templates, and a clean working state.",
5
5
  "type": "module",
6
6
  "bin": {
package/src/mvp-flow.mjs CHANGED
@@ -57,14 +57,14 @@ export async function runMvp({ flags = {}, cwd = process.cwd() } = {}) {
57
57
  await ensureFreshTarget(targetDir, flags.force);
58
58
  await mkdir(targetDir, { recursive: true });
59
59
 
60
+ await maybeScaffoldStack({ stack: answers.stack, projectName: answers.projectName, targetDir });
61
+
60
62
  await ingestMaterials({
61
63
  targetDir,
62
64
  ingestPath: answers.ingestPath,
63
65
  isDryRun: isDryRun(),
64
66
  });
65
67
 
66
- await maybeScaffoldStack({ stack: answers.stack, projectName: answers.projectName, targetDir });
67
-
68
68
  const tokens = buildTokenMap({
69
69
  projectName: answers.projectName,
70
70
  displayName: answers.displayName,
package/src/summary.mjs CHANGED
@@ -22,7 +22,10 @@ export function renderSummary({ targetDir, repoUrl, deployUrl, profile, projectN
22
22
  lines.push(
23
23
  ` Profile: ${profile || 'goodshin'}`,
24
24
  '================================================',
25
- ` Next: cd ${projectName} && claude`,
25
+ ` Next steps:`,
26
+ ` 1. cd ${projectName}`,
27
+ ` 2. claude (or codex, gemini, your preferred CLI agent)`,
28
+ ` 3. Open START_HERE.md and paste the prompt as your first message`,
26
29
  '================================================',
27
30
  ''
28
31
  );
package/src/templates.mjs CHANGED
@@ -23,6 +23,7 @@ export const REGISTRY = [
23
23
  { src: '.claude/commands/generate-tasks.md', dest: '.claude/commands/generate-tasks.md' },
24
24
  { src: 'CLAUDE.md', dest: 'CLAUDE.md' },
25
25
  { src: 'AGENTS.md', dest: 'AGENTS.md' },
26
+ { src: 'START_HERE.md', dest: 'START_HERE.md' },
26
27
  { src: 'HANDOFF.md', dest: 'HANDOFF.md' },
27
28
  { src: 'docs/PROJECT_STATE.md', dest: 'docs/PROJECT_STATE.md' },
28
29
  { src: 'docs/MANUAL_TASKS.md', dest: 'docs/MANUAL_TASKS.md' },
@@ -0,0 +1,114 @@
1
+ # Start here
2
+
3
+ You just scaffolded **{{DISPLAY_NAME}}** with ostup. This is your operator manual. Read once. Refer back as needed. Delete the file when you no longer need it.
4
+
5
+ ## First session, two steps
6
+
7
+ ### 1. Open this folder in your CLI agent
8
+
9
+ In Terminal, from inside this folder:
10
+
11
+ ```
12
+ claude
13
+ ```
14
+
15
+ Or use `codex`, `gemini`, or whichever CLI agent you prefer.
16
+
17
+ ### 2. Paste this as your first message
18
+
19
+ ```
20
+ Read CLAUDE.md, AGENTS.md, and everything in {{INPUTS_PATH}}. If {{INPUTS_PATH}} has source materials (research, reference repos, brand assets, notes), use them as context. If it is empty or only has a README, that is fine. Either way, ask me up to 3 clarifying questions about what I want to build. Then propose a 30 to 60 minute MVP scope as a numbered list. Do not write code until I approve the scope.
21
+
22
+ After I approve, run /bootstrap to fill in this project's metadata, then start building.
23
+ ```
24
+
25
+ That is the whole jump-in. The agent reads, asks, proposes, you approve, it builds.
26
+
27
+ ## What got scaffolded
28
+
29
+ | File | Purpose | Who reads it |
30
+ |---|---|---|
31
+ | `START_HERE.md` | This file. Operator orientation. | You |
32
+ | `CLAUDE.md` | Agent rules: hard rules, reply format, style. | Agent |
33
+ | `AGENTS.md` | Quick project facts and kit cross-reference. | Agent |
34
+ | `HANDOFF.md` | Current session state. Rewritten at every session end. | Both |
35
+ | `docs/PROJECT_STATE.md` | Phase, priorities, key paths. | Agent |
36
+ | `docs/MANUAL_TASKS.md` | Tasks only you can do (paid, 2FA, physical). | Agent |
37
+ | `docs/SESSION_NOTES.md` | Append-only log of past sessions. | Both |
38
+ | `docs/ARCHITECTURE.md` | Stack, file map, env vars, deploy details. | Agent |
39
+ | `{{INPUTS_PATH}}` | Your source materials. May be empty. You can add files anytime. | Both |
40
+ | `tasks/` | PRDs and task lists for features. | Both |
41
+ | `.claude/commands/` | Slash command definitions. | Agent |
42
+
43
+ ## Slash commands
44
+
45
+ Type these in your CLI agent. Each runs a structured routine.
46
+
47
+ | Command | What it does | When to run it |
48
+ |---|---|---|
49
+ | `/bootstrap` | Scans the repo and asks up to 5 clarifiers, then fills in `CLAUDE.md` Parts 13 to 17 and `docs/ARCHITECTURE.md` with your project's real facts. | Once, on the first session. |
50
+ | `/prompt-start` | Reads HANDOFF, MANUAL_TASKS, git status. Briefs the agent on the current state. Asks "Proceed or pivot?" | Start of every session after the first. |
51
+ | `/prompt-mid` | Checks context budget, restates progress, verifies any files the agent claimed to write actually exist. | Mid-session, if you feel lost or the agent seems off-track. |
52
+ | `/prompt-end` | Rewrites HANDOFF, appends to SESSION_NOTES, surfaces any new blockers to MANUAL_TASKS. | End of every session. Always. Without this the next session has no memory of what just happened. |
53
+ | `/create-prd` | Asks 3 to 5 clarifying questions, then writes a PRD to `tasks/prd-<feature>.md`. | Before building a significant new feature. Optional for small changes. |
54
+ | `/generate-tasks` | Reads a PRD, breaks it into a phased task list at `tasks/tasks-<feature>.md` (parent tasks first, then sub-tasks after you say "Go"). | After a PRD is approved, before the agent starts coding. |
55
+
56
+ ## Three workflows
57
+
58
+ ### A. First session (scope + start building)
59
+
60
+ 1. `claude` in this folder.
61
+ 2. Paste the prompt from step 2 above.
62
+ 3. The agent reads everything, asks 2 or 3 questions, proposes an MVP.
63
+ 4. You approve (or refine).
64
+ 5. The agent runs `/bootstrap` to fill in project metadata.
65
+ 6. The agent builds the first cut and pushes commits.
66
+ 7. `/prompt-end` when you stop.
67
+
68
+ Works the same whether `{{INPUTS_PATH}}` is empty or full. With materials, the agent uses them. Without, it asks you what to build outright.
69
+
70
+ ### B. Return session (pick up where you left off)
71
+
72
+ 1. `claude` in this folder.
73
+ 2. `/prompt-start`.
74
+ 3. Approve the queued actions, or give a new objective.
75
+ 4. Work.
76
+ 5. `/prompt-end`.
77
+
78
+ ### C. Build a new feature
79
+
80
+ 1. `/create-prd` (the agent asks what, why, success criteria).
81
+ 2. `/generate-tasks` (the agent breaks the PRD into a phased task list).
82
+ 3. Tell the agent "Start at task 1.1" (or similar).
83
+ 4. `/prompt-end` when you stop.
84
+
85
+ ## Adding source materials later
86
+
87
+ Drop files into `{{INPUTS_PATH}}` at any time: PDFs in `{{INPUTS_PATH}}research/`, code samples in `{{INPUTS_PATH}}references/`, images in `{{INPUTS_PATH}}images/`, scratch notes in `{{INPUTS_PATH}}notes/`. Then tell the agent: "I added new material in `{{INPUTS_PATH}}`, please re-read it."
88
+
89
+ The folder is git-ignored by default so nothing leaks to your public repo unless you commit it explicitly. To commit a specific file, weaken the `inputs/` rule in `.gitignore` and `git add` the file.
90
+
91
+ ## Where to put what
92
+
93
+ | What | Where |
94
+ |---|---|
95
+ | Source materials, brand assets, reference repos | `{{INPUTS_PATH}}` |
96
+ | PRDs and task lists for new features | `tasks/` |
97
+ | Project-wide facts (stack, deploy, env vars) | `docs/ARCHITECTURE.md` |
98
+ | Things blocked on something only you can do | `docs/MANUAL_TASKS.md` |
99
+ | Project-specific agent rules | `CLAUDE.md` Part 16 |
100
+
101
+ ## When something feels wrong
102
+
103
+ | Symptom | First move |
104
+ |---|---|
105
+ | Agent is taking the wrong approach | Type `REFOCUS`. Resets the agent and asks for the core objective. |
106
+ | Agent claims it did something but you are not sure | `/prompt-mid`. The agent verifies its own claims and admits gaps. |
107
+ | You came back after a week and have no idea where you left off | `/prompt-start`. Reads HANDOFF and briefs you. |
108
+ | Agent keeps repeating the same broken fix | Type "LOOP DETECTED on \<issue\>" and ask for a different approach. |
109
+ | Vercel deploy returns 401 | Open the Vercel dashboard, find this project, Settings, Deployment Protection, Disable. |
110
+ | You need to install or update something only you can do | The agent appends it to `docs/MANUAL_TASKS.md`. Clear it when done. |
111
+
112
+ ## When you no longer need this file
113
+
114
+ Delete it. It is for orientation only and has no effect on your app.