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.
- package/AGENTS.md +3 -1
- package/CLAUDE.md +20 -0
- package/README.md +383 -65
- package/context/ai-interaction.md +78 -39
- package/context/coding-standards.md +119 -60
- package/copy-list.json +1 -0
- package/package.json +2 -1
- package/roles/developer.md +37 -0
- package/roles/planner.md +38 -0
- package/roles/tester.md +40 -0
- package/skills/challenge-me/SKILL.md +11 -7
- package/skills/complete-feature/SKILL.md +16 -11
- package/skills/handoff/SKILL.md +24 -4
- package/skills/kickstart-pathfinder/SKILL.md +6 -1
- package/skills/learning-review/SKILL.md +9 -6
- package/skills/load-feature/SKILL.md +21 -11
- package/skills/prototype/SKILL.md +3 -1
- package/skills/quiz-me/SKILL.md +33 -7
- package/skills/review-feature/SKILL.md +19 -11
- package/skills/role/SKILL.md +33 -0
- package/skills/setup-tracker/SKILL.md +29 -61
- package/skills/start-feature/SKILL.md +19 -16
- package/skills/sync-tracker/SKILL.md +67 -106
- package/skills/teach-architecture/SKILL.md +6 -5
- package/skills/teach-feature/SKILL.md +11 -8
- package/skills/to-specs/SKILL.md +40 -28
- package/skills/whereami/SKILL.md +87 -0
- package/src/cli.mjs +2 -1
- package/src/install.mjs +5 -1
- package/src/kit.mjs +70 -1
- package/templates/CHANGELOG.template.md +2 -1
- package/templates/feature-spec.template.md +18 -80
- package/templates/history.template.md +12 -0
- package/templates/lesson.template.md +22 -51
- package/templates/project-overview.template.md +80 -145
- package/context/current-feature.md +0 -46
- package/context/features/example-feature-spec.md +0 -103
- package/context/history.md +0 -14
- package/context/learning/learner-profile.md +0 -35
- package/context/learning/lessons/.gitkeep +0 -0
- package/context/learning/progress.md +0 -28
- package/context/project-overview.md +0 -211
- package/templates/progress-entry.template.md +0 -23
- package/templates/tracker.template.md +0 -359
|
@@ -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/
|
|
16
|
-
2. `context/learning/
|
|
17
|
-
3. Recent
|
|
18
|
-
4.
|
|
19
|
-
|
|
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,18 +1,28 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: load-feature
|
|
3
|
-
description:
|
|
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
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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.
|
|
23
|
+
8. Present a short readiness summary.
|
|
17
24
|
|
|
18
|
-
Do not implement
|
|
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
|
|
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
|
|
package/skills/quiz-me/SKILL.md
CHANGED
|
@@ -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/
|
|
16
|
-
2.
|
|
17
|
-
3.
|
|
18
|
-
4.
|
|
19
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
|
8
|
+
Review the actual diff and behavior, not only the developer's summary.
|
|
9
9
|
|
|
10
10
|
## Check
|
|
11
11
|
|
|
12
|
-
- acceptance criteria
|
|
13
|
-
- regressions
|
|
14
|
-
- security/privacy
|
|
15
|
-
- accessibility, performance, compatibility, and operations when
|
|
16
|
-
- tests and verification
|
|
17
|
-
- scope creep
|
|
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
|
-
|
|
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
|
|
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.
|
|
@@ -1,74 +1,42 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: setup-tracker
|
|
3
|
-
description: Configure
|
|
3
|
+
description: Configure optional work tracking for the project.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Setup Tracker
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
Pathfinder's work items project onto it. The result is `context/tracker.md`.
|
|
8
|
+
Configure a work tracker only when the human asks.
|
|
10
9
|
|
|
11
|
-
|
|
12
|
-
unaffected: no file, no prompt, no behaviour change anywhere. Do not run this
|
|
13
|
-
skill unasked, and do not propose it as a missing step.
|
|
14
|
-
|
|
15
|
-
This skill configures. It never contacts a tracker.
|
|
16
|
-
|
|
17
|
-
## Rules
|
|
18
|
-
|
|
19
|
-
- Do not write `context/tracker.md` without human approval.
|
|
20
|
-
- Do not add code, dependencies, or an adapter for any tracker.
|
|
21
|
-
- Do not invent a taxonomy the team did not ask for.
|
|
22
|
-
- Keep the model section backend-neutral; vendor vocabulary belongs only under
|
|
23
|
-
the projection heading.
|
|
24
|
-
- Never remove the work-item marker block. It is the one machine-stable token in
|
|
25
|
-
a prose contract, and identity depends on it.
|
|
26
|
-
|
|
27
|
-
## Interview
|
|
28
|
-
|
|
29
|
-
Ask progressively, in small groups. Ask only what the config cannot be written
|
|
30
|
-
without:
|
|
31
|
-
|
|
32
|
-
1. Which tracker, and where it lives.
|
|
33
|
-
2. How an agent reaches it — a CLI, a path, or a described manual step.
|
|
34
|
-
3. Which tag namespaces the project actually uses. `area`, `type`, `priority`,
|
|
35
|
-
and `agent` are available; a project needing none of them says so.
|
|
36
|
-
4. What the tracker already carries. **List its existing labels, fields, or
|
|
37
|
-
conventions before proposing any tag value.** If something already means the
|
|
38
|
-
same thing, reuse it and record the mapping rather than creating a
|
|
39
|
-
near-duplicate.
|
|
40
|
-
5. Anything about the projection that the shipped starting points do not cover.
|
|
10
|
+
Pathfinder works normally without one.
|
|
41
11
|
|
|
42
12
|
## Process
|
|
43
13
|
|
|
44
|
-
1.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
|
62
33
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
8. Report what was configured, and say plainly that nothing has been published.
|
|
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.
|
|
69
39
|
|
|
70
|
-
|
|
40
|
+
Publishing belongs to `sync-tracker`.
|
|
71
41
|
|
|
72
|
-
Stop
|
|
73
|
-
this skill. If `sync-tracker` is not installed, say so rather than publishing by
|
|
74
|
-
hand.
|
|
42
|
+
Stop after configuration.
|
|
@@ -1,26 +1,29 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: start-feature
|
|
3
|
-
description: Implement the active
|
|
3
|
+
description: Implement the active Feature in small, stable increments.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Start Feature
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Implement the active delivery chunk.
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
-
|
|
24
|
-
-
|
|
25
|
-
- Do not
|
|
26
|
-
-
|
|
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.
|
|
@@ -1,120 +1,81 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sync-tracker
|
|
3
|
-
description:
|
|
3
|
+
description: Project Feature specs onto the configured work tracker.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Sync Tracker
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
described in `context/tracker.md`.
|
|
8
|
+
Sync project Features to the tracker configured in `context/tracker.md`.
|
|
10
9
|
|
|
11
|
-
The repository is canonical.
|
|
12
|
-
|
|
13
|
-
`context/current-feature.md`, or `context/history.md`.
|
|
14
|
-
|
|
15
|
-
## The off switch comes first
|
|
16
|
-
|
|
17
|
-
**If `context/tracker.md` does not exist, do nothing at all.** Report that work
|
|
18
|
-
tracking is not configured for this project, and stop.
|
|
19
|
-
|
|
20
|
-
Do not create the config, do not propose configuring one, and do not describe
|
|
21
|
-
its absence as a gap. Work Tracking is optional, and a project without it is
|
|
22
|
-
behaving correctly.
|
|
23
|
-
|
|
24
|
-
## The config is the contract
|
|
25
|
-
|
|
26
|
-
Read `context/tracker.md` in full and follow its prose. It states the model, the
|
|
27
|
-
projection, and the publishing rules for this project.
|
|
28
|
-
|
|
29
|
-
There is **no adapter code, no vendor branch, and no required tool** beyond what
|
|
30
|
-
the config itself names. If the config describes a tracker this skill has never
|
|
31
|
-
heard of, that is the design working, not a blocker.
|
|
32
|
-
|
|
33
|
-
Where the config is silent on something a run needs, **ask the human**. Do not
|
|
34
|
-
fill the gap with a convention of your own — the next run would fill it
|
|
35
|
-
differently, and every item would look modified.
|
|
36
|
-
|
|
37
|
-
## What gets published
|
|
38
|
-
|
|
39
|
-
**Approved feature specs only**, from `to-specs` onward — one work item per spec.
|
|
40
|
-
Never debate notes, kickstart output, or prototypes. The one exception is a
|
|
41
|
-
prototype that gates a decision, published as a single item phrased as the
|
|
42
|
-
decision it resolves, never as a deliverable.
|
|
43
|
-
|
|
44
|
-
**Do not decompose a feature.** Choosing units of execution inside a feature is a
|
|
45
|
-
judgement about how work will be shared out, and it belongs to a human or to a
|
|
46
|
-
skill written for it. Publish the feature.
|
|
10
|
+
The repository is canonical.
|
|
11
|
+
Tracker state never changes Pathfinder state.
|
|
47
12
|
|
|
48
13
|
## Process
|
|
49
14
|
|
|
50
|
-
1.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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.
|
|
99
67
|
|
|
100
68
|
## Rules
|
|
101
69
|
|
|
102
|
-
- Do not
|
|
103
|
-
- Do not
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
- Do not
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
-
|
|
112
|
-
|
|
113
|
-
- Do not close, reopen, or delete anything, ever.
|
|
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.
|
|
114
81
|
- Stop and report when the config, the specs, and the tracker disagree.
|
|
115
|
-
|
|
116
|
-
## Stop Condition
|
|
117
|
-
|
|
118
|
-
Stop once the run is reported. Configuring a tracker is `setup-tracker`, not this
|
|
119
|
-
skill. If a spec set is not ready to publish, say so rather than publishing part
|
|
120
|
-
of it.
|
|
@@ -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.
|
|
17
|
-
3.
|
|
18
|
-
4.
|
|
19
|
-
5.
|
|
20
|
-
|
|
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/
|
|
17
|
-
2. `context/
|
|
18
|
-
3.
|
|
19
|
-
4.
|
|
20
|
-
5.
|
|
21
|
-
6.
|
|
22
|
-
|
|
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
|
-
|
|
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
|
|