create-pathfinder 1.7.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 (45) hide show
  1. package/AGENTS.md +3 -1
  2. package/CLAUDE.md +22 -0
  3. package/README.md +383 -65
  4. package/context/ai-interaction.md +78 -38
  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 -10
  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 +20 -9
  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 +42 -0
  22. package/skills/start-feature/SKILL.md +19 -15
  23. package/skills/sync-tracker/SKILL.md +81 -0
  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 +41 -25
  27. package/skills/whereami/SKILL.md +87 -0
  28. package/src/cli.mjs +2 -1
  29. package/src/detect.mjs +1 -1
  30. package/src/install.mjs +5 -1
  31. package/src/kickstart-prompt.mjs +1 -1
  32. package/src/kit.mjs +70 -1
  33. package/templates/CHANGELOG.template.md +2 -1
  34. package/templates/feature-spec.template.md +19 -75
  35. package/templates/history.template.md +12 -0
  36. package/templates/lesson.template.md +22 -51
  37. package/templates/project-overview.template.md +80 -145
  38. package/context/current-feature.md +0 -46
  39. package/context/features/example-feature-spec.md +0 -103
  40. package/context/history.md +0 -14
  41. package/context/learning/learner-profile.md +0 -35
  42. package/context/learning/lessons/.gitkeep +0 -0
  43. package/context/learning/progress.md +0 -28
  44. package/context/project-overview.md +0 -211
  45. package/templates/progress-entry.template.md +0 -23
@@ -12,11 +12,12 @@ The goal is to turn isolated feature lessons into a coherent learning path.
12
12
 
13
13
  ## Read First
14
14
 
15
- 1. `context/learning/learner-profile.md`
16
- 2. `context/learning/progress.md`
17
- 3. Recent lessons under `context/learning/lessons/`
18
- 4. Recent completed feature specs and history
19
- 5. Quiz or challenge evidence available in the repo
15
+ 1. `context/learning/progress.md`
16
+ 2. Recent lessons under `context/learning/lessons/`
17
+ 3. Recent completed feature specs and history
18
+ 4. Quiz or challenge evidence available in the repo
19
+
20
+ Skip any of these that does not exist. Pathfinder creates these files only when a workflow first needs them, so their absence is normal and is not an error. Do not create them just to satisfy this list.
20
21
 
21
22
  ## Review Modes
22
23
 
@@ -66,7 +67,9 @@ At most three, ordered by value.
66
67
 
67
68
  ## Progress Changes
68
69
 
69
- Update `context/learning/progress.md` conservatively.
70
+ Update `context/learning/progress.md` conservatively, using the confidence scale
71
+ defined in its `## Confidence Scale` section. If the file does not exist,
72
+ `quiz-me` carries the header to create it with.
70
73
 
71
74
  ## Rules
72
75
 
@@ -1,17 +1,28 @@
1
1
  ---
2
2
  name: load-feature
3
- description: Prepare one feature for implementation by checking readiness, context size, dependencies, and delivery chunks.
3
+ description: Load one approved Feature and the minimum context needed to work on it.
4
4
  ---
5
5
 
6
6
  # Load Feature
7
7
 
8
- 1. Select the requested or next approved feature spec.
9
- 2. Read its dependencies and the smallest relevant durable context.
10
- 3. Check repository reality without scanning unrelated areas.
11
- 4. Identify contradictions, missing decisions, stale paths, and prototype dependencies.
12
- 5. Assess whether the feature fits a focused LLM context window.
13
- 6. Split or revise it before implementation if the context is too broad.
14
- 7. Populate `context/current-feature.md` with the feature, first delivery chunk, context boundary, assumptions, Git state, definition of done, and out-of-scope work.
8
+ 1. Select the requested approved Feature. Its spec is
9
+ `NN-feature-name.md` in the spec source, and `NN` is its Feature number.
10
+ 2. Read the Feature spec.
11
+ 3. Read only the files or context needed for the current work.
12
+ 4. Inspect the current Git state.
13
+ 5. Stop if a required human decision or explicit dependency blocks the work.
14
+ 6. Create or update `context/current-feature.md` it does not ship, so the
15
+ first load writes it — with:
16
+ - Feature number, name, and spec path
17
+ - active delivery chunk
18
+ - Git state
19
+ - blocker, if any
20
+ - next action
21
+ 7. If `context/tracker.md` exists, name the tracked item for this Feature —
22
+ its key is that Feature number. Do nothing here if it does not.
15
23
  8. Present a short readiness summary.
16
24
 
17
- Do not implement, create Git history, or resolve `TBD` decisions silently.
25
+ Do not implement the Feature.
26
+
27
+ Do not scan unrelated repository areas, load history or roadmap by default,
28
+ rewrite the Feature, or silently resolve `TBD` decisions.
@@ -16,7 +16,9 @@ Use this skill after debate recommends validation or when the human asks to see
16
16
  5. Create only the prototype; avoid production architecture unless the task is explicitly a technical proof.
17
17
  6. Present focused review questions.
18
18
  7. On feedback, revise the same direction, replace it, approve it, or stop.
19
- 8. Record approved direction, rejected assumptions, and explicit production exclusions in `context/project-overview.md`.
19
+ 8. Record approved direction, rejected assumptions, and explicit production exclusions
20
+ under `## Durable Decisions` in `context/project-overview.md`, creating the file
21
+ from `templates/project-overview.template.md` if it does not exist yet.
20
22
 
21
23
  ## Supported Forms
22
24
 
@@ -12,11 +12,12 @@ The goal is retrieval and diagnosis, not entertainment and not a long exam.
12
12
 
13
13
  ## Read First
14
14
 
15
- 1. `context/learning/learner-profile.md`
16
- 2. The relevant lesson in `context/learning/lessons/`
17
- 3. `context/current-feature.md`
18
- 4. Only the implementation or tests needed to verify answers
19
- 5. `context/learning/progress.md`
15
+ 1. The relevant lesson in `context/learning/lessons/`
16
+ 2. `context/current-feature.md`
17
+ 3. Only the implementation or tests needed to verify answers
18
+ 4. `context/learning/progress.md`
19
+
20
+ Skip any of these that does not exist. Pathfinder creates these files only when a workflow first needs them, so their absence is normal and is not an error. Do not create them just to satisfy this list.
20
21
 
21
22
  ## Quiz Shape
22
23
 
@@ -67,9 +68,34 @@ Do not use a percentage unless every question had a clear scoring basis.
67
68
 
68
69
  Update `context/learning/progress.md` with demonstrated evidence.
69
70
 
70
- Use the confidence scale already defined there.
71
+ The file does not ship. If it is missing, create it with this header, then add
72
+ the entry:
73
+
74
+ ```markdown
75
+ # Learning Progress
76
+
77
+ Demonstrated understanding, not feature completion.
78
+
79
+ ## Confidence Scale
80
+
81
+ - `introduced` — explained once; no evidence of recall yet
82
+ - `practiced` — answered or applied with help
83
+ - `independent` — applied correctly without meaningful help
84
+ - `transferable` — applied correctly in a different context
85
+ - `review-needed` — misunderstanding or weak recall was observed
86
+
87
+ ## Concepts
88
+
89
+ | Concept | Confidence | Evidence | Last reviewed |
90
+ | --- | --- | --- | --- |
91
+ ```
92
+
93
+ This block is the scale's only definition. The other learning skills read it
94
+ from the file rather than restating it.
71
95
 
72
- A correct answer with heavy hints is `practiced`, not `independent`.
96
+ Record one confidence value per concept, and record uncertainty honestly. A
97
+ correct answer with heavy hints is `practiced`, not `independent`. Passive
98
+ reading is never `independent`.
73
99
 
74
100
  ## Scope
75
101
 
@@ -1,25 +1,33 @@
1
1
  ---
2
2
  name: review-feature
3
- description: Review an implemented feature against its spec, repository standards, regressions, and project quality priorities.
3
+ description: Verify implemented work against its Feature and report findings.
4
4
  ---
5
5
 
6
6
  # Review Feature
7
7
 
8
- Review the actual diff and behavior, not only a summary.
8
+ Review the actual diff and behavior, not only the developer's summary.
9
9
 
10
10
  ## Check
11
11
 
12
- - acceptance criteria and missed requirements
13
- - regressions, logic errors, edge/failure states
14
- - security/privacy and data boundaries
15
- - accessibility, performance, compatibility, and operations when applicable
16
- - tests and verification quality
17
- - scope creep and unrelated churn
18
- - consistency with approved architecture and prototype direction
12
+ - acceptance criteria
13
+ - regressions and important edge cases
14
+ - security/privacy when relevant
15
+ - accessibility, performance, compatibility, and operations when relevant
16
+ - tests and verification
17
+ - scope creep
19
18
  - documentation accuracy
20
19
 
20
+ Use the project's quality priorities and existing standards where relevant.
21
+
21
22
  ## Output
22
23
 
23
- List findings by severity with file/location, impact, and practical fix. Then list verification performed, residual risk, and whether it is ready to complete.
24
+ Report:
25
+
26
+ - `PASS`, or findings by severity
27
+ - file/location and impact for each finding
28
+ - what was actually verified
29
+ - anything important that remains unverified
30
+
31
+ Do not modify the implementation unless the human explicitly asks.
24
32
 
25
- Do not modify code unless the user asks for fixes. Do not manufacture findings to fill a template.
33
+ Do not invent findings or treat passing tests as automatic acceptance.
@@ -0,0 +1,33 @@
1
+ ---
2
+ name: role
3
+ description: Activate one named Pathfinder role for the current session.
4
+ ---
5
+
6
+ # Role
7
+
8
+ Activate exactly one role.
9
+
10
+ The human names it, for example:
11
+
12
+ `/role planner`
13
+ `/role developer`
14
+ `/role tester`
15
+
16
+ ## Process
17
+
18
+ 1. Take the role name from the invocation.
19
+ If none was given, list the available files in `roles/` and stop.
20
+ 2. Read only `roles/<name>.md`.
21
+ If it does not exist, say so, list the available role names, and stop.
22
+ 3. Confirm in one line and wait for work:
23
+
24
+ `Active role: <name>`
25
+
26
+ ## Rules
27
+
28
+ - Activate only the role the human named.
29
+ - Read only that role file.
30
+ - Do not start the role's work.
31
+ - Do not write project state just to remember the role.
32
+ - The role applies only to the current session/conversation context.
33
+ - A role narrows responsibility. It never grants human authority.
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: setup-tracker
3
+ description: Configure optional work tracking for the project.
4
+ ---
5
+
6
+ # Setup Tracker
7
+
8
+ Configure a work tracker only when the human asks.
9
+
10
+ Pathfinder works normally without one.
11
+
12
+ ## Process
13
+
14
+ 1. Ask where work should be tracked:
15
+ - GitHub Issues
16
+ - local Markdown files
17
+ - another tracker the human describes
18
+ 2. Ask only for the information needed to use that tracker.
19
+ 3. Check where the approved Feature specs live. Ask only when they are not in
20
+ `context/features/`; when the default is what the repository has, record it
21
+ and move on.
22
+ 4. Create a proposed `context/tracker.md` naming, at minimum:
23
+ - the tracker and how an agent reaches it
24
+ - the spec source
25
+ - how a published item records its Pathfinder key, so a later run
26
+ recognises the item it published last time
27
+ 5. Show it to the human.
28
+ 6. Write it only after approval.
29
+
30
+ If `context/tracker.md` already exists, modify only the requested settings.
31
+
32
+ ## Rules
33
+
34
+ - Do not publish or create work items.
35
+ - Do not create labels, tags, or tracker conventions unless requested.
36
+ - Do not add dependencies or tracker-specific code.
37
+ - Feature specs remain canonical.
38
+ - Tracking is always optional.
39
+
40
+ Publishing belongs to `sync-tracker`.
41
+
42
+ Stop after configuration.
@@ -1,25 +1,29 @@
1
1
  ---
2
2
  name: start-feature
3
- description: Implement the active feature one stable delivery chunk at a time under the project's approved workflow.
3
+ description: Implement the active Feature in small, stable increments.
4
4
  ---
5
5
 
6
6
  # Start Feature
7
7
 
8
- ## Before Coding
8
+ Implement the active delivery chunk.
9
9
 
10
- Restate goal, chunk, files/areas, context, risks, assumptions, verification, exclusions, Git state, and intended Git action.
11
-
12
- ## Process
13
-
14
- 1. Follow the project's documented Git and approval policy.
15
- 2. Read only the active chunk's context.
16
- 3. Implement the smallest complete change.
17
- 4. Verify the chunk with relevant checks.
18
- 5. Keep the project stable.
19
- 6. Update current-feature state and move to the next chunk only when appropriate.
10
+ 1. Read only the context needed for the current work.
11
+ 2. Restate the pre-implementation summary the project's agent guide requires,
12
+ and wait for it to be answered where it names a human decision. Do not edit
13
+ any file before this step is done.
14
+ 3. Follow the Feature and existing project conventions.
15
+ 4. Make the smallest complete change.
16
+ 5. Verify the behavior you changed.
17
+ 6. Keep the repository stable.
18
+ 7. Create or update `context/current-feature.md` with the current state and next action.
20
19
 
21
20
  ## Rules
22
21
 
23
- - Stop on conflicts between spec, durable context, and repository reality.
24
- - Do not add dependencies, expand scope, adopt prototype code, commit, merge, or deploy without the documented approval.
25
- - Do not hide multiple features inside one delivery chunk.
22
+ - Stay inside the approved scope.
23
+ - Stop if implementation requires a human decision or material scope change.
24
+ - Do not silently add dependencies or adopt prototype code.
25
+ - Follow the project's approval and Git rules.
26
+ - Do not decide that your own work is accepted.
27
+
28
+ When the chunk is done, report what changed, what was verified, and anything
29
+ unresolved.
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: sync-tracker
3
+ description: Project Feature specs onto the configured work tracker.
4
+ ---
5
+
6
+ # Sync Tracker
7
+
8
+ Sync project Features to the tracker configured in `context/tracker.md`.
9
+
10
+ The repository is canonical.
11
+ Tracker state never changes Pathfinder state.
12
+
13
+ ## Process
14
+
15
+ 1. If `context/tracker.md` does not exist, report that tracking is not
16
+ configured and stop. Do not propose configuring one.
17
+ 2. Read the tracker configuration. It names the tracker, how to reach it, the
18
+ spec source, and how a published item records its Pathfinder key. Stop if it
19
+ does not say how the key is recorded — without it a re-run cannot recognise
20
+ what it published last time, and would duplicate every item.
21
+ 3. Read the approved Feature specs from the spec source. A config that names
22
+ none means `context/features/`. If the named source does not exist, report
23
+ it and stop rather than falling back.
24
+ 4. Build one item per Feature: key, title, and body, composed only from the
25
+ spec.
26
+ 5. Show the proposed writes.
27
+ 6. Ask before the first write that leaves this repository. One approval covers
28
+ the run. A projection onto files inside the repository is an ordinary file
29
+ write and is not gated.
30
+ 7. Create or update only the items that changed.
31
+ 8. Report created, updated, and unchanged as counts of writes, not as final
32
+ tracker state.
33
+
34
+ ## Identity
35
+
36
+ Each Feature has one stable key derived from the number in its spec filename.
37
+ `to-specs` names every spec `NN-feature-name.md`, so
38
+ `27-export-saved-searches.md` is `pathfinder:feature/27` in whichever directory
39
+ it sits — moving specs orphans nothing.
40
+
41
+ Read the number from the basename only. Never from the directory above it, the
42
+ title inside it, or the order the specs happen to be read in.
43
+
44
+ Match published items on that key alone. Titles are edited by humans.
45
+
46
+ Skip a spec whose filename carries no number and report it by name. Do not
47
+ assign one — numbering is `to-specs`' job, and inventing one here would publish
48
+ an item that the next run cannot recognise.
49
+
50
+ ## Idempotency
51
+
52
+ A second run over unchanged Features must issue **zero writes** — not writes
53
+ that happen to be no-ops.
54
+
55
+ - Compose the body as a pure function of the spec: fixed section order, no
56
+ timestamps, no counters, nothing derived from the run.
57
+ - Compare normalized, never raw bytes. Strip trailing whitespace per line and
58
+ collapse trailing blank lines, on both sides. A tracker is not obliged to
59
+ return a body byte-for-byte, and a naive comparison then rewrites every item
60
+ forever while looking like working sync.
61
+ - Where the config defines tags, compare them as sets, not ordered lists.
62
+ - Edit in place. Never close, reopen, delete, or recreate an item.
63
+ - Leave any item whose key is absent from this run completely alone.
64
+
65
+ `3 items, 0 changes` is the expected second run and the most important line of
66
+ output.
67
+
68
+ ## Rules
69
+
70
+ - Do not decompose Features into tickets.
71
+ - Do not derive dependency edges, ordering, or a graph from a spec. A Feature
72
+ may mention a dependency under `## Notes / Decisions` for a human to read;
73
+ it is prose, not structure, and this skill does not parse or orchestrate it.
74
+ - Do not infer labels, tags, status, or other metadata.
75
+ - Do not modify Feature specs from tracker state.
76
+ - Do not read tracker state back into anything.
77
+ - Do not delete tracker items automatically.
78
+ - Do not rewrite unchanged items.
79
+ - Local Markdown tracking is an ordinary repository/file write.
80
+ - External trackers require human approval before writing.
81
+ - Stop and report when the config, the specs, and the tracker disagree.
@@ -13,11 +13,12 @@ The goal is to connect implementation details to system boundaries, ownership, s
13
13
  ## Read First
14
14
 
15
15
  1. `context/project-overview.md`
16
- 2. `context/learning/learner-profile.md`
17
- 3. Relevant completed feature specs and lessons
18
- 4. Architecture-relevant source files only
19
- 5. Data contracts, API boundaries, stores, routing, and deployment configuration relevant to the requested scope
20
- 6. Existing ADRs, if present
16
+ 2. Relevant completed feature specs and lessons
17
+ 3. Architecture-relevant source files only
18
+ 4. Data contracts, API boundaries, stores, routing, and deployment configuration relevant to the requested scope
19
+ 5. Existing ADRs, if present
20
+
21
+ Skip any of these that does not exist. Pathfinder creates these files only when a workflow first needs them, so their absence is normal and is not an error. Do not create them just to satisfy this list.
21
22
 
22
23
  Do not infer services or infrastructure that do not exist. Clearly distinguish current architecture from likely future architecture.
23
24
 
@@ -13,13 +13,14 @@ The goal is not to produce generic documentation. The goal is to help the learne
13
13
 
14
14
  Read only the smallest useful context:
15
15
 
16
- 1. `context/learning/learner-profile.md`
17
- 2. `context/current-feature.md`
18
- 3. The source feature spec under `context/features/`
19
- 4. `context/project-overview.md`
20
- 5. The current branch, working tree status, and focused diff
21
- 6. Tests and implementation files touched by the feature
22
- 7. Relevant ADR, coding standard, or design-system guidance only when it materially affects the feature
16
+ 1. `context/current-feature.md`
17
+ 2. The source feature spec under `context/features/`
18
+ 3. `context/project-overview.md`
19
+ 4. The current branch, working tree status, and focused diff
20
+ 5. Tests and implementation files touched by the feature
21
+ 6. Relevant ADR, coding standard, or design-system guidance only when it materially affects the feature
22
+
23
+ Skip any of these that does not exist. Pathfinder creates these files only when a workflow first needs them, so their absence is normal and is not an error. Do not create them just to satisfy this list.
23
24
 
24
25
  Do not read the entire repository by default.
25
26
 
@@ -57,7 +58,9 @@ Explain:
57
58
 
58
59
  ## Adaptation
59
60
 
60
- Use `context/learning/learner-profile.md`.
61
+ Pitch the lesson at what the learner has already demonstrated, using
62
+ `context/learning/progress.md` when it exists and what the human tells you when
63
+ it does not. Ask rather than assume.
61
64
 
62
65
  For an experienced engineer:
63
66
 
@@ -1,45 +1,61 @@
1
1
  ---
2
2
  name: to-specs
3
- description: Convert approved project context into small sequential feature specs optimized for focused LLM context and reliable delivery.
3
+ description: Turn approved direction into small, clear Feature specs.
4
4
  ---
5
5
 
6
6
  # To Specs
7
7
 
8
- ## Readiness Check
8
+ Turn approved direction into the minimum Feature specs needed to implement it.
9
9
 
10
- Confirm:
10
+ ## Process
11
11
 
12
- - MVP and first useful flow are defined
13
- - critical stack and workflow choices are approved or deliberately deferred
14
- - required prototype direction is approved
15
- - known verification methods exist or are explicitly deferred
16
- - no material context contradictions remain
12
+ 1. Read the approved project context and relevant existing Features.
13
+ 2. Stop if a required human decision is still `TBD`.
14
+ 3. Decide whether the work is one Feature or needs a small number of Features.
15
+ 4. Create `context/features/` if it does not exist.
16
+ 5. Create each Feature from `templates/feature-spec.template.md`, named
17
+ `NN-feature-name.md` — see Naming below.
18
+ 6. Fill only information that materially helps implementation and review.
19
+ 7. Present the created Features and recommend which one to start first.
20
+ 8. If `context/tracker.md` exists, offer to publish them with `sync-tracker`.
21
+ Do nothing here if it does not.
17
22
 
18
- If not ready, report the blockers instead of inventing decisions.
23
+ ## Naming
19
24
 
20
- ## Sizing Principles
25
+ A Feature spec is named `NN-feature-name.md` in the spec source, for example
26
+ `context/features/27-export-saved-searches.md`.
21
27
 
22
- Each feature should:
28
+ `NN` is the Feature number: the next unused number in the spec source, counting
29
+ every spec already there whatever its status. Numbers are never reused and never
30
+ renumbered, because a published tracker item is matched on that number and
31
+ renumbering would orphan it.
23
32
 
24
- - create one visible or system-verifiable outcome
25
- - fit one focused branch/change set under the project's workflow
26
- - be independently reviewable and verifiable
27
- - require a coherent, bounded set of context
28
- - state dependencies, assumptions, and exclusions
29
- - contain stable delivery chunks
33
+ The number lives in the filename and nowhere else. The Feature template carries
34
+ no number field, and nothing else in the spec records one.
30
35
 
31
- Split a feature when it mixes several systems, requires a repo-wide mental model, combines infrastructure with unrelated UX/polish, or cannot be verified independently.
36
+ ## Sizing
32
37
 
33
- ## Output
38
+ Prefer one Feature when the work is coherent.
34
39
 
35
- Create only the coherent MVP roadmap in `context/features/`, using `templates/feature-spec.template.md` and project-selected naming/delivery policies.
40
+ Split only when separate outcomes:
36
41
 
37
- Each spec must include Context Boundary, Delivery Chunks, and Learning Targets.
42
+ - can be implemented or reviewed independently
43
+ - depend on meaningfully different context
44
+ - have a real dependency between them
45
+ - would make one Feature unnecessarily difficult to understand
38
46
 
39
- After creation, summarize file, outcome, dependency, visible/verifiable win, context risk, and recommended first feature.
47
+ Prefer fewer Features and fewer artifacts.
48
+
49
+ Use delivery chunks inside a Feature before creating additional Features.
40
50
 
41
51
  ## Rules
42
52
 
43
- - Do not implement or install packages.
44
- - Do not assume UI, mobile, a framework, a branch type, or conventional commits.
45
- - Do not plan the entire dream product.
53
+ - Do not implement.
54
+ - Do not invent unresolved decisions.
55
+ - Do not plan beyond the approved direction.
56
+ - Do not add workflow metadata that the Feature template does not require.
57
+ - Do not create tickets, tracker items, or extra planning files by default.
58
+ - Do not scan unrelated repository areas.
59
+
60
+ When implementation details are unclear, inspect only enough source code to
61
+ write an accurate Feature.
@@ -0,0 +1,87 @@
1
+ ---
2
+ name: whereami
3
+ description: Report a compact read-only snapshot of the current Pathfinder work session.
4
+ ---
5
+
6
+ # Where Am I
7
+
8
+ Answer one question: what is this session working on right now?
9
+
10
+ Use it when a session resumes, after a long gap, or before deciding the next
11
+ action. It reports state. It never changes it.
12
+
13
+ ## Process
14
+
15
+ 1. Role: report the role activated in this session via `/role`.
16
+ Roles are session state and are never written to disk, so if no role was
17
+ activated in this conversation, report `none`. Do not search `roles/`.
18
+ 2. Read `context/current-feature.md` if it exists.
19
+ Take Feature, Active chunk, and Next from it verbatim. The Feature number is
20
+ the `NN` recorded there, from its spec filename.
21
+ If the file is missing or still holds template placeholders, report `none`.
22
+ 3. Run `git status --short --branch` once.
23
+ Report the branch/ref, and `clean` or the count of changed paths.
24
+ 4. Compare the Git section of `context/current-feature.md` with step 3.
25
+ Report a drift line only if the recorded branch differs from the real one.
26
+ 5. Context telemetry: report it only if this harness exposes it.
27
+ Otherwise `unavailable`. Do not estimate.
28
+
29
+ ## Output
30
+
31
+ Exactly this shape, one line each:
32
+
33
+ ```
34
+ Role: <role | none>
35
+ Feature: <## — name | none>
36
+ Chunk: <number and name | none>
37
+ Git: <branch/ref> — <clean | N changed>
38
+ Context: <telemetry | unavailable>
39
+ Next: <single next action | none>
40
+ ```
41
+
42
+ Add at most one line after it, and only when step 4 found drift:
43
+
44
+ ```
45
+ Drift: current-feature.md records <branch>, working tree is on <branch>
46
+ ```
47
+
48
+ Then stop.
49
+
50
+ ## Rules
51
+
52
+ - Read only. No writes, no commits, no `git` command that mutates anything.
53
+ - Read at most one file: `context/current-feature.md`.
54
+ - Do not open the feature spec, history, roadmap, `.features/`, or source.
55
+ - Report `none` or `unavailable` instead of inferring a missing value.
56
+ - Do not offer to fix drift, update state, or start the next action.
57
+ The human decides what happens after the snapshot.
58
+
59
+ ## Example
60
+
61
+ `/whereami` after resuming mid-feature:
62
+
63
+ ```
64
+ Role: developer
65
+ Feature: 12 — export saved searches
66
+ Chunk: 2 — CSV writer
67
+ Git: feature/12-export-saved-searches — 3 changed
68
+ Context: unavailable
69
+ Next: Verify the CSV writer against the acceptance criteria
70
+ ```
71
+
72
+ ## Anti-example
73
+
74
+ Do not do this:
75
+
76
+ ```
77
+ Role: developer (inferred from recent commits)
78
+ Feature: 12 — export saved searches
79
+ Chunk: 3 — probably the download endpoint
80
+ Git: feature/12-export-saved-searches — 3 changed
81
+ Context: ~60% used
82
+ Next: I can update current-feature.md and start chunk 3 — want me to?
83
+ ```
84
+
85
+ It guesses the role from history, invents a chunk the spec never named,
86
+ estimates telemetry it cannot see, and turns a status report into a proposal
87
+ to write state.
package/src/cli.mjs CHANGED
@@ -205,7 +205,8 @@ export async function run(
205
205
  // as it goes.
206
206
  //
207
207
  // Planning adapters this early is safe, and specifically because of what the
208
- // copy list contains: AGENTS.md, CLAUDE.md, context, skills, and templates.
208
+ // copy list contains: AGENTS.md, CLAUDE.md, context, roles, skills, and
209
+ // templates.
209
210
  // No entry writes into `.claude/` or `.agents/`, so the copy cannot change
210
211
  // the answer `planAdapters` gives about an adapter path, and the canonical
211
212
  // skills it reads come from the kit rather than from the destination. If a
package/src/detect.mjs CHANGED
@@ -119,7 +119,7 @@ function detectTool(tool, { cwd, home, env, platform }) {
119
119
  * Decided by counting skill directories rather than by testing for `CLAUDE.md`,
120
120
  * which any agent-assisted project may have written for its own reasons.
121
121
  * A `skills/<name>/SKILL.md` is a far more specific signature, and the count is
122
- * worth having on its own — it is what makes "already installed (20 skills)"
122
+ * worth having on its own — it is what makes "already installed (N skills)"
123
123
  * checkable by the person reading it.
124
124
  */
125
125
  function detectPathfinder(cwd) {