create-pathfinder 1.8.0 → 2.0.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 (44) hide show
  1. package/AGENTS.md +3 -1
  2. package/CLAUDE.md +20 -0
  3. package/README.md +383 -65
  4. package/context/ai-interaction.md +78 -39
  5. package/context/coding-standards.md +119 -60
  6. package/copy-list.json +1 -0
  7. package/package.json +2 -1
  8. package/roles/developer.md +37 -0
  9. package/roles/planner.md +38 -0
  10. package/roles/tester.md +40 -0
  11. package/skills/challenge-me/SKILL.md +11 -7
  12. package/skills/complete-feature/SKILL.md +16 -11
  13. package/skills/handoff/SKILL.md +24 -4
  14. package/skills/kickstart-pathfinder/SKILL.md +6 -1
  15. package/skills/learning-review/SKILL.md +9 -6
  16. package/skills/load-feature/SKILL.md +21 -11
  17. package/skills/prototype/SKILL.md +3 -1
  18. package/skills/quiz-me/SKILL.md +33 -7
  19. package/skills/review-feature/SKILL.md +19 -11
  20. package/skills/role/SKILL.md +33 -0
  21. package/skills/setup-tracker/SKILL.md +29 -61
  22. package/skills/start-feature/SKILL.md +19 -16
  23. package/skills/sync-tracker/SKILL.md +67 -106
  24. package/skills/teach-architecture/SKILL.md +6 -5
  25. package/skills/teach-feature/SKILL.md +11 -8
  26. package/skills/to-specs/SKILL.md +40 -28
  27. package/skills/whereami/SKILL.md +87 -0
  28. package/src/cli.mjs +2 -1
  29. package/src/install.mjs +5 -1
  30. package/src/kit.mjs +70 -1
  31. package/templates/CHANGELOG.template.md +2 -1
  32. package/templates/feature-spec.template.md +18 -80
  33. package/templates/history.template.md +12 -0
  34. package/templates/lesson.template.md +22 -51
  35. package/templates/project-overview.template.md +80 -145
  36. package/context/current-feature.md +0 -46
  37. package/context/features/example-feature-spec.md +0 -103
  38. package/context/history.md +0 -14
  39. package/context/learning/learner-profile.md +0 -35
  40. package/context/learning/lessons/.gitkeep +0 -0
  41. package/context/learning/progress.md +0 -28
  42. package/context/project-overview.md +0 -211
  43. package/templates/progress-entry.template.md +0 -23
  44. package/templates/tracker.template.md +0 -359
package/AGENTS.md CHANGED
@@ -2,10 +2,12 @@
2
2
 
3
3
  Read `CLAUDE.md` first.
4
4
 
5
- Project truth lives in `context/`. Follow the technology and delivery choices documented in `context/project-overview.md`; do not assume a framework, package manager, branch model, or release process.
5
+ Project truth lives in `context/`. Follow the technology and delivery choices documented in `context/project-overview.md`; do not assume a framework, package manager, branch model, or release process. That file, like `context/features/`, `context/history.md`, `context/current-feature.md`, and `context/handoff.md`, is created by the workflow that first needs it — its absence is normal, not an error. Track the durable ones in Git; `context/current-feature.md` and `context/handoff.md` are transient session state and belong in `.gitignore`. Never ignore `context/` as a whole.
6
6
 
7
7
  Use the smallest relevant context for the active task. Keep each delivery chunk stable, reviewable, and verifiable.
8
8
 
9
+ The roles are `planner`, `developer`, and `tester`. When the human names one, read `roles/<name>.md` before anything else and follow it for that session. A role is a declarative contract stating what a worker is responsible for and what it must not do, where a skill states how to perform a task. Naming one is the only thing that activates it, so a session where none is named behaves exactly as if `roles/` were not there.
10
+
9
11
  Canonical skills live under `skills/` and are the only behavior contract; anything under `.claude/skills/` or `.agents/skills/` is a generated pointer to one, so edit the canonical file and regenerate the adapter.
10
12
 
11
13
  If this tool has no native skill discovery, invoke a skill by reading its canonical file directly: `Use skills/<name>/SKILL.md and follow it exactly.` That is the whole fallback — one line, and no second copy of a skill anywhere to find.
package/CLAUDE.md CHANGED
@@ -15,6 +15,24 @@ For feature work, usually read:
15
15
 
16
16
  Do not load the whole repo by default.
17
17
 
18
+ Pathfinder ships two context files: `ai-interaction.md` and
19
+ `coding-standards.md`. Everything else in `context/` — `project-overview.md`,
20
+ `features/`, `history.md`, `current-feature.md`, `handoff.md` — is written by
21
+ the workflow that first needs it. A missing file here is normal; skip it rather
22
+ than treating it as an error.
23
+
24
+ Track the durable ones in Git and ignore the two transient ones,
25
+ `current-feature.md` and `handoff.md`. `context/coding-standards.md` carries the
26
+ rule; do not ignore `context/` wholesale.
27
+
28
+ ## Roles
29
+
30
+ When the human names a role, read `roles/<name>.md` before anything else and follow it for the session. A role says what a worker is responsible for, what it reads, and what it must not do, where a skill says how to perform a task.
31
+
32
+ The roles are `planner`, `developer`, and `tester`. Activate one with `/role <name>`.
33
+
34
+ Naming a role is the only thing that activates one. If the human names none, ignore `roles/` and work as this guide otherwise describes. A role narrows what a session may do and never widens it. Human authority sits outside the role system: approval, acceptance, merge, and release are always the human's.
35
+
18
36
  ## Project-selected policies
19
37
 
20
38
  Follow the stack, architecture, commands, Git workflow, review policy, and release process documented in `context/project-overview.md`.
@@ -75,6 +93,8 @@ An adapter carries the canonical skill's frontmatter and a pointer to it, and no
75
93
  - `learning-review` — review accumulated lessons, identify gaps, and create a reinforcement plan
76
94
  - `reflect` — review completed work, and the reflection itself, and propose reusable workflow improvements for human approval
77
95
  - `handoff` — preserve useful state between sessions or tools
96
+ - `role` — activate one named role for the current session
97
+ - `whereami` — report a compact read-only snapshot of the current session
78
98
  - `skillsmith` — teach and create small local skills
79
99
  - `setup-tracker` — configure an optional external work tracker
80
100
  - `sync-tracker` — publish approved feature specs to the configured tracker, one-way and idempotently
package/README.md CHANGED
@@ -1,87 +1,306 @@
1
1
  ![Pathfinder](https://raw.githubusercontent.com/rikilamadrid/pathfinder/main/assets/logo-wordmark.png)
2
2
 
3
- **An AI-assisted, human-in-the-loop workflow for building software without giving up the decisions.**
3
+ **A reusable workflow kit for directing AI agents through software delivery,
4
+ while keeping judgment and consequential decisions human.**
4
5
 
5
- This package installs [Pathfinder](https://pathfinder-kit.vercel.app) into a Git repository — one you already have, or one it offers to create for you.
6
+ This package copies [Pathfinder](https://pathfinder-kit.vercel.app) into a Git
7
+ repository.
6
8
 
7
9
  ```bash
8
10
  npx create-pathfinder
9
11
  ```
10
12
 
11
- That is the whole invocation. This is a scaffolding CLI you run once, not a dependency: `npm i create-pathfinder` would add it to your project's `package.json` and `node_modules` without installing anything into your repository. If you would rather not use `npx`, `npm exec create-pathfinder` is equivalent, and a global install (`npm i -g create-pathfinder`) gives you a `create-pathfinder` command that behaves identically.
13
+ Pathfinder is a scaffolding CLI you run when setting up or updating a project.
14
+ It is not a runtime dependency and adds nothing to your application's
15
+ `node_modules`.
12
16
 
13
- Then give your agent this prompt:
17
+ Then start Pathfinder.
18
+
19
+ Claude Code:
20
+
21
+ ```text
22
+ /kickstart-pathfinder
23
+ ```
24
+
25
+ Codex:
26
+
27
+ ```text
28
+ $kickstart-pathfinder
29
+ ```
30
+
31
+ Any other coding agent:
14
32
 
15
33
  ```text
16
34
  Use skills/kickstart-pathfinder/SKILL.md. Help me initialize this project.
17
35
  Do not install packages or write product code yet.
18
36
  ```
19
37
 
20
- Everything below is what the command does. **What Pathfinder is, how the workflow runs, and what each skill does are documented at [pathfinder-kit.vercel.app](https://pathfinder-kit.vercel.app).**
38
+ For the workflow itself, roles, skills, and guides, see
39
+ [pathfinder-kit.vercel.app](https://pathfinder-kit.vercel.app).
40
+
41
+ Everything below documents the installer.
42
+
43
+ ## Run it
44
+
45
+ ```bash
46
+ npx create-pathfinder
47
+ ```
48
+
49
+ That is the intended invocation.
50
+
51
+ You can also use:
52
+
53
+ ```bash
54
+ npm exec create-pathfinder
55
+ ```
56
+
57
+ or install the CLI globally:
58
+
59
+ ```bash
60
+ npm i -g create-pathfinder
61
+ create-pathfinder
62
+ ```
63
+
64
+ Do not use:
65
+
66
+ ```bash
67
+ npm i create-pathfinder
68
+ ```
69
+
70
+ for normal Pathfinder setup.
71
+
72
+ That installs the CLI as a dependency in your project's `package.json` and
73
+ `node_modules`; it does not run the scaffolding process.
21
74
 
22
75
  ## What it installs
23
76
 
24
- The installer copies five things into your repository and nothing else:
77
+ The installer copies six kit entries into your repository:
25
78
 
26
79
  | Path | What it is |
27
80
  | --- | --- |
28
- | `AGENTS.md`, `CLAUDE.md` | Entry files that tell an agent how to work in the project |
29
- | `context/` | Project truth overview, standards, interaction rules, current feature |
30
- | `skills/` | Skills covering discovery, specs, delivery, debugging, review, learning, and optional work tracking |
31
- | `templates/` | Starting points the project copies when it needs them |
81
+ | `AGENTS.md`, `CLAUDE.md` | Entry files that tell supported agents how to work in the project |
82
+ | `context/` | Project standards and interaction rules; other context is created only when needed |
83
+ | `roles/` | Three optional responsibility contracts: planner, developer, tester |
84
+ | `skills/` | Reusable procedures for discovery, specs, delivery, debugging, review, learning, and optional work tracking |
85
+ | `templates/` | Minimal starting shapes; records are created from them later, when a workflow needs one |
86
+
87
+ A fresh Pathfinder 2.0 project begins with only:
88
+
89
+ ```text
90
+ context/
91
+ ├── ai-interaction.md
92
+ └── coding-standards.md
93
+ ```
94
+
95
+ Other context files are created lazily by the workflow that needs them.
96
+
97
+ Pathfinder does not copy its own repository `README.md`, `CHANGELOG.md`, CI
98
+ configuration, or brand assets. Your project gets the workflow kit, not the
99
+ repository that maintains it.
100
+
101
+ ### Generated tool adapters
32
102
 
33
- On request it also writes one thing it does not copy:
103
+ If you choose native tool integration, the installer also generates adapters:
34
104
 
35
105
  | Path | What it is |
36
106
  | --- | --- |
37
- | `.claude/skills/`, `.agents/skills/` | **Generated** a small adapter per skill, derived from `skills/` at install time, so your coding tool discovers them natively. Not part of the five above; see [Native skills for your coding tool](#native-skills-for-your-coding-tool) |
107
+ | `.claude/skills/` | Generated Claude Code skill adapters |
108
+ | `.agents/skills/` | Generated Codex skill adapters |
38
109
 
39
- It never copies Pathfinder's own `README.md`, `CHANGELOG.md`, CI configuration, or brand assets. Your repository gets the workflow, not the project that maintains it.
110
+ These are derived from the canonical files under `skills/`; they are not a
111
+ second copy of the behavior.
40
112
 
41
113
  ## What it will not do to your repository
42
114
 
43
- This runs once, in real code, so it is deliberately timid:
115
+ The installer is deliberately conservative.
116
+
117
+ ### It never silently overwrites
118
+
119
+ Files that already exist are left exactly as they are and listed in the
120
+ summary.
121
+
122
+ Use:
123
+
124
+ ```bash
125
+ npx create-pathfinder --force
126
+ ```
127
+
128
+ only when you want files that already exist overwritten — any copied file,
129
+ whoever created or edited it — and a file you wrote at a path an adapter
130
+ would occupy replaced.
131
+
132
+ ### It requires a Git repository
133
+
134
+ Pathfinder installs into version control so its changes are reviewable and
135
+ undoable.
136
+
137
+ If the current directory is not a Git repository, an interactive run can offer
138
+ to initialize one.
139
+
140
+ If you decline, nothing is installed.
141
+
142
+ The installer does not run:
143
+
144
+ ```text
145
+ git add
146
+ git commit
147
+ git push
148
+ git config
149
+ ```
150
+
151
+ and it does not create or switch branches.
152
+
153
+ ### It does not alter existing history
154
+
155
+ If the current directory is already a repository, or is inside one, Pathfinder
156
+ uses it as-is.
157
+
158
+ It does not reinitialize it.
159
+
160
+ ### Dry runs are actually dry
161
+
162
+ ```bash
163
+ npx create-pathfinder --dry-run
164
+ ```
165
+
166
+ shows the same installation plan without writing files, initializing Git,
167
+ changing the clipboard, or opening an editor.
168
+
169
+ ### It only owns Pathfinder-generated adapters
170
+
171
+ An adapter at:
172
+
173
+ ```text
174
+ .claude/skills/<name>/SKILL.md
175
+ .agents/skills/<name>/SKILL.md
176
+ ```
177
+
178
+ belongs to Pathfinder only when:
179
+
180
+ 1. `<name>` is a Pathfinder skill, and
181
+ 2. the file contains the `pathfinder:adapter` marker Pathfinder generated.
182
+
183
+ Your own:
184
+
185
+ ```text
186
+ settings.json
187
+ settings.local.json
188
+ agents
189
+ commands
190
+ hooks
191
+ skills
192
+ ```
193
+
194
+ are not Pathfinder-owned.
44
195
 
45
- - **It never overwrites.** Files that already exist are left exactly as they are and listed by name in the summary. Pass `--force` if you actually want them replaced.
46
- - **It will not install outside a Git repository**, so whatever it writes is reviewable and undoable. In an empty directory it offers to run `git init` for you — and that is the only Git command it will ever run. No `add`, no `commit`, no config, no branch. If you say no, nothing is written.
47
- - **It never touches an existing history.** A directory that is already a repository, or inside one, is never asked about and never initialized.
48
- - **`--dry-run` reports the same plan the real install would carry out**, including any `git init`, without writing anything.
49
- - **It owns a generated adapter, and nothing else in your tool's directory.** A file at `.claude/skills/<name>/SKILL.md` or `.agents/skills/<name>/SKILL.md` belongs to the installer only if that name is a Pathfinder skill *and* the file carries the `pathfinder:adapter` marker it wrote. Your `settings.json`, `settings.local.json`, agents, commands, hooks, and any skill of your own are never read and never written, a file you wrote at an adapter path is left alone and named in the summary, and nothing is ever deleted.
196
+ A file you created at a would-be adapter path is left alone and reported.
50
197
 
51
- **Re-running `npx create-pathfinder` in a project that already has Pathfinder is safe, requires no flags, and is idempotent.** Canonical files you have edited are skipped and listed; files new in this version are written; adapters are regenerated, byte-identical if nothing changed; anything you own is untouched. That is how a project installed before v1.5.0 gains adapters — one ordinary run, no migration command.
198
+ Pathfinder does not delete unrelated tool configuration.
199
+
200
+ ## Re-running Pathfinder
201
+
202
+ Re-running:
203
+
204
+ ```bash
205
+ npx create-pathfinder
206
+ ```
207
+
208
+ in a project that already uses Pathfinder is supported.
209
+
210
+ Without `--force`:
211
+
212
+ - canonical files you already have are preserved
213
+ - new Pathfinder files can be added
214
+ - Pathfinder-owned adapters are regenerated
215
+ - unchanged adapters remain byte-identical
216
+ - unrelated files remain untouched
217
+
218
+ This is also how older Pathfinder projects gain newer generated adapters:
219
+ re-run the installer rather than using a separate migration command.
52
220
 
53
221
  ## Native skills for your coding tool
54
222
 
55
- Pathfinder's skills are tool-neutral files at `skills/<name>/SKILL.md`. Some coding tools discover skills natively from their own directory, and the installer can generate small adapters there so you get `/reflect` instead of pasting a path.
223
+ Pathfinder's canonical skills live at:
224
+
225
+ ```text
226
+ skills/<name>/SKILL.md
227
+ ```
228
+
229
+ Claude Code and Codex can discover skills from their own directories, so the
230
+ installer can generate small adapters for them.
231
+
232
+ Non-interactively:
56
233
 
57
234
  ```bash
58
235
  npx create-pathfinder --agents claude-code,codex
59
236
  ```
60
237
 
61
- | Id | Writes to | Invoked as |
238
+ Supported ids:
239
+
240
+ | Id | Generated path | Example invocation |
62
241
  | --- | --- | --- |
63
242
  | `claude-code` | `.claude/skills/<name>/SKILL.md` | `/reflect` |
64
- | `codex` | `.agents/skills/<name>/SKILL.md` | `/skills`, or `$reflect` |
243
+ | `codex` | `.agents/skills/<name>/SKILL.md` | `$reflect` |
244
+
245
+ Each adapter carries the skill's name and description and delegates to:
246
+
247
+ ```text
248
+ skills/<name>/SKILL.md
249
+ ```
250
+
251
+ The behavior remains canonical in one place.
252
+
253
+ You may configure one tool, both, or neither.
254
+
255
+ Choosing one never configures the other.
256
+
257
+ Pathfinder also never writes to personal/global skill directories such as:
258
+
259
+ ```text
260
+ ~/.claude/skills/
261
+ ~/.agents/skills/
262
+ ```
65
263
 
66
- Each adapter carries the skill's name and description and tells the tool to read the canonical file — the behavior lives in one place, and the adapter never restates it.
264
+ ### Interactive selection
67
265
 
68
- Pick one, both, or neither. Choosing one never generates, removes, or claims anything under the other's directory, and Pathfinder never writes to a personal skills directory such as `$HOME/.agents/skills`.
266
+ In an interactive terminal, the installer asks which supported tools to
267
+ configure.
69
268
 
70
- In a terminal you are asked instead of passing the flag — a numbered list, comma-separated, `Enter` for the tools found on your machine, `0` for none. Each option shows the directory it writes to before you choose it. A third entry, **Something else…**, generates nothing and says so: the kit still installs `AGENTS.md` at the repository root, which Codex, Cursor, and several others read, and any agent can be given the line the adapters delegate to — `Use skills/<name>/SKILL.md and follow it exactly.`
269
+ Detected tools influence the default selection only. Detection does not
270
+ authorize writes by itself.
71
271
 
72
- Nothing is configured unless you choose it. Detection only sets the default, a piped or scripted run configures nothing at all unless `--agents` says so, and `--agents` accepts only the ids in the table above an unknown one exits 2 rather than quietly installing nothing.
272
+ `Enter` accepts the tools found on your machine, and selecting none is always
273
+ available. Each option shows the directory it writes to before you choose it.
274
+ Under `PATHFINDER_PROMPT=classic` the same question is a numbered list answered
275
+ comma-separated, with `0` for none.
73
276
 
74
- ## The Kickstart prompt, and your clipboard
277
+ A third entry, **Something else…**, generates nothing and says so: the kit still
278
+ installs `AGENTS.md` at the repository root, which Codex, Cursor, and several
279
+ others read, and any agent can be given the line the adapters delegate to —
280
+ `Use skills/<name>/SKILL.md and follow it exactly.`
75
281
 
76
- Every install ends by printing the one prompt that starts a session, and the prompt follows the tool you chose:
282
+ Without an interactive terminal, no tool adapters are generated unless
283
+ `--agents` is provided explicitly.
77
284
 
78
- | Configured | Prompt |
285
+ An unknown agent id exits 2 rather than quietly installing nothing.
286
+
287
+ ## The Kickstart prompt
288
+
289
+ Every successful install prints the prompt that starts Pathfinder.
290
+
291
+ | Configured tool | Prompt |
79
292
  | --- | --- |
80
- | `claude-code` | `/kickstart-pathfinder` |
81
- | `codex` | `$kickstart-pathfinder` |
82
- | both, or neither | `Use skills/kickstart-pathfinder/SKILL.md. Help me initialize this project. Do not install packages or write product code yet.` |
293
+ | Claude Code | `/kickstart-pathfinder` |
294
+ | Codex | `$kickstart-pathfinder` |
295
+ | both or neither | `Use skills/kickstart-pathfinder/SKILL.md. Help me initialize this project. Do not install packages or write product code yet.` |
296
+
297
+ The prompt is always printed.
298
+
299
+ Copying it to the clipboard is optional.
83
300
 
84
- In a terminal you are then asked whether to copy it, in a question that says what it replaces:
301
+ ## Clipboard behavior
302
+
303
+ In an interactive terminal, Pathfinder can ask:
85
304
 
86
305
  ```text
87
306
  ? Copy that prompt to your clipboard? This replaces what is on it now.
@@ -92,64 +311,163 @@ In a terminal you are then asked whether to copy it, in a question that says wha
92
311
  ↑↓ move enter confirm
93
312
  ```
94
313
 
95
- `y` and `n` still answer it in one keystroke, and under
96
- `PATHFINDER_PROMPT=classic` it asks as `[Y/n]` on one line.
314
+ Nothing is copied without an explicit yes.
315
+
316
+ The clipboard is left untouched when:
317
+
318
+ - you choose No
319
+ - the question is unanswered
320
+ - `--no-clipboard` is used
321
+ - `--yes` is used
322
+ - `--dry-run` is used
323
+ - the run is non-interactive
324
+
325
+ Pathfinder never reads the clipboard.
97
326
 
98
- - **Nothing is copied without an explicit yes.** Declining, an unanswered question, `--no-clipboard`, `--yes`, `--dry-run`, and any run without a terminal on both ends all leave your clipboard exactly as it was.
99
- - **The prompt is printed either way.** Copying is a convenience, never the only way to get it.
100
- - **No dependency, and no clipboard is ever read.** The copy uses whatever your system already has — `pbcopy`, `clip.exe` including under WSL, or `wl-copy`, `xclip`, or `xsel` — chosen by what is actually installed rather than by your platform's name. If none of them is there, or one of them fails, the installer says so in one line and still exits 0.
327
+ When copying is requested, it uses an existing system utility such as:
328
+
329
+ ```text
330
+ pbcopy
331
+ clip.exe
332
+ wl-copy
333
+ xclip
334
+ xsel
335
+ ```
336
+
337
+ If no supported clipboard command is available, or copying fails, installation
338
+ still succeeds and the prompt remains visible in the terminal.
101
339
 
102
340
  ## Opening the project
103
341
 
104
- The last question is whether to open the project, and it is only ever about an editor you already have. The installer looks for `code` (VS Code) and `cursor` (Cursor) on your `PATH`:
342
+ The final interactive question can offer to open the installed project in an
343
+ editor already available on the machine.
344
+
345
+ Supported editor commands are:
346
+
347
+ ```text
348
+ code
349
+ cursor
350
+ ```
351
+
352
+ If one is detected, Pathfinder can ask:
105
353
 
106
- - **One found** — a Yes/No naming it: `? Open this project in VS Code?`
107
- - **Several found** a list, alphabetical, ending in `Don't open`
108
- - **None found** — no question at all
354
+ ```text
355
+ ? Open this project in VS Code?
356
+ ```
357
+
358
+ If several are available, it offers a choice.
359
+
360
+ If none are available, no editor question is shown.
361
+
362
+ Nothing is launched without an explicit selection.
109
363
 
110
- Neither editor is a Pathfinder requirement, and the alphabetical order is not a recommendation. There is no way to name an editor or pass a path. The launch is detached: the installer hands over the project directory and exits immediately.
364
+ The project is not opened when:
111
365
 
112
- - **Nothing is launched without an explicit yes.** Declining, an unanswered question, `Don't open`, `--no-open`, `--yes`, `--dry-run`, and any run without a terminal on both ends all leave your screen alone.
113
- - **A failed launch is not a failed install.** If the binary is there but cannot be run, the installer says so in one line, tells you the directory to open yourself, and still exits 0.
366
+ - you decline
367
+ - the question is unanswered
368
+ - you choose `Don't open`
369
+ - `--no-open` is used
370
+ - `--yes` is used
371
+ - `--dry-run` is used
372
+ - the run is non-interactive
373
+
374
+ A failed editor launch does not turn a successful installation into a failed
375
+ one. Pathfinder reports the project directory so you can open it yourself.
114
376
 
115
377
  ## Options
116
378
 
117
379
  | Option | Effect |
118
380
  | --- | --- |
119
- | `--agents <ids>` | Generate skill adapters for these tools, comma-separated. Valid ids: `claude-code`, `codex`. Alias: `--agent` |
120
- | `--dry-run` | Report what would be written, and any `git init` that would run first; change nothing |
121
- | `--force` | Overwrite files that already exist, and replace a file you wrote at a path an adapter would occupy |
122
- | `--git-init` | Run `git init` here if this is not a repository yet |
123
- | `--no-git-init` | Never run `git init`; refuse instead |
124
- | `--no-clipboard` | Never offer to copy the Kickstart prompt. The prompt is printed either way |
125
- | `--no-open` | Never offer to open the project in an editor |
126
- | `--yes`, `--no-input` | Take the defaults and ask nothing. It does not authorize `git init`, configure any tool, touch your clipboard, or open an editor — pass `--git-init` and `--agents` for the first two |
381
+ | `--agents <ids>` | Generate adapters for comma-separated supported tools. Valid ids: `claude-code`, `codex`. Alias: `--agent` |
382
+ | `--dry-run` | Show what would happen without changing anything |
383
+ | `--force` | Overwrite files that already exist, and replace a file you wrote at a path an adapter would occupy. Off by default |
384
+ | `--git-init` | Initialize Git if the current directory is not already in a repository |
385
+ | `--no-git-init` | Never initialize Git; refuse installation instead |
386
+ | `--no-clipboard` | Never offer to copy the Kickstart prompt |
387
+ | `--no-open` | Never offer to launch an editor |
388
+ | `--yes`, `--no-input` | Ask nothing and use non-destructive defaults |
127
389
  | `-h`, `--help` | Show usage |
128
390
 
129
- ### Environment
391
+ `--yes` does **not** authorize Git initialization, tool configuration,
392
+ clipboard writes, or editor launches.
393
+
394
+ For scripted setup, specify the actions you actually want, for example:
395
+
396
+ ```bash
397
+ npx create-pathfinder \
398
+ --yes \
399
+ --git-init \
400
+ --agents claude-code
401
+ ```
402
+
403
+ ## Prompt styles
404
+
405
+ By default, interactive terminals use an arrow-key selector.
406
+
407
+ Set:
408
+
409
+ ```bash
410
+ PATHFINDER_PROMPT=classic npx create-pathfinder
411
+ ```
412
+
413
+ to use numbered choices and `y` / `n` prompts instead.
130
414
 
131
415
  | Variable | Effect |
132
416
  | --- | --- |
133
- | `PATHFINDER_PROMPT=classic` | Ask every question as a numbered list and `y`/`n` rather than an arrow-key selector |
134
- | `NO_COLOR` | Print no colour. It does not disable the selector |
417
+ | `PATHFINDER_PROMPT=classic` | Use classic typed prompts instead of the interactive selector |
418
+ | `NO_COLOR` | Disable terminal color; does not change prompt style |
419
+
420
+ Classic mode is useful for:
135
421
 
136
- **Both prompt styles are supported.** By default a terminal answers questions with `↑`/`↓`, `Space`, and `Enter`. `PATHFINDER_PROMPT=classic` asks for typed numbers and `y`/`n` instead — the right choice for a screen reader, for a script driving the installer's stdin, and for anyone who simply prefers it. A terminal narrower than 49 columns and `TERM=dumb` select it on their own, and `y`/`n` keep working at a Yes/No question either way.
422
+ - screen readers
423
+ - scripts driving terminal input
424
+ - users who prefer typed choices
137
425
 
138
- Questions are asked only when stdin and stdout are both terminals. Piped, redirected, or in CI, nothing is asked and nothing is prompted for — so a directory that is not a repository needs `--git-init`, or the install is refused, no tool is configured without `--agents`, the clipboard is never touched at all, and no editor is ever launched.
426
+ A terminal narrower than 49 columns and `TERM=dumb` select the classic
427
+ presentation on their own. Either way, `y` and `n` answer a Yes/No question in
428
+ one keystroke; under `PATHFINDER_PROMPT=classic` it is asked as `[Y/n]` on one
429
+ line.
430
+
431
+ Questions are asked only when both stdin and stdout are terminals.
432
+
433
+ In CI, redirected, or piped execution:
434
+
435
+ - no interactive questions are shown
436
+ - Git initialization requires `--git-init`
437
+ - adapters require `--agents`
438
+ - the clipboard is untouched
439
+ - no editor is launched
139
440
 
140
441
  ## Requirements
141
442
 
142
- Node 18 or newer, and a Git repository — though the installer will offer to create one for you.
443
+ - Node.js 18 or newer
444
+ - a Git repository, or permission to initialize one
445
+
446
+ The `git` executable is required only when Pathfinder needs to run `git init`.
447
+
448
+ Inside an existing repository, Pathfinder identifies the repository from the
449
+ filesystem and does not need to run Git commands.
143
450
 
144
- The `git` binary is only needed to *create* that repository. Inside one that already exists, the installer finds it by walking the filesystem for `.git` and never runs Git at all, so it works on a machine where `git` is not on your `PATH`.
451
+ The package has no runtime dependencies and installs nothing into the
452
+ destination project's `node_modules`.
145
453
 
146
- No dependencies — this package installs nothing into your project's `node_modules`, and has none of its own.
454
+ ## After installation
147
455
 
148
- ## Links
456
+ Pathfinder itself is documented separately from the installer.
457
+
458
+ Start here:
149
459
 
150
460
  - [Documentation](https://pathfinder-kit.vercel.app)
151
- - [Repository](https://github.com/rikilamadrid/pathfinder)
152
- - [Why this is not a framework](https://github.com/rikilamadrid/pathfinder/blob/main/NOT_A_FRAMEWORK.md)
461
+ - [Getting started](https://pathfinder-kit.vercel.app/guides/getting-started/)
462
+ - [Workflow](https://pathfinder-kit.vercel.app/guides/workflow/)
463
+ - [Skills](https://pathfinder-kit.vercel.app/skills/)
464
+
465
+ Repository resources:
466
+
467
+ - [GitHub](https://github.com/rikilamadrid/pathfinder)
153
468
  - [Changelog](https://github.com/rikilamadrid/pathfinder/blob/main/CHANGELOG.md)
469
+ - [Why Pathfinder is not a framework](https://github.com/rikilamadrid/pathfinder/blob/main/NOT_A_FRAMEWORK.md)
470
+
471
+ ## License
154
472
 
155
473
  MIT © Lamadrid Labs