create-pathfinder 3.0.0 → 4.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 CHANGED
@@ -2,11 +2,11 @@
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. 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.
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-ticket.md`, and `context/handoff.md`, is created by the workflow that first needs it — its absence is normal, not an error. `context/tickets/` exists only when local Markdown is the project's ticket store; a project whose tickets are in GitHub Issues or another tracker has none, and that is not a gap. Track the durable ones in Git; `context/current-ticket.md` and `context/handoff.md` are transient session state and belong in `.gitignore`. Never ignore `context/` as a whole.
6
6
 
7
- Use the smallest relevant context for the active task. Keep each delivery chunk stable, reviewable, and verifiable.
7
+ Use the smallest relevant context for the active task. Keep each ticket 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.
9
+ The roles are `planner`, `developer`, and `tester`. Lifecycle skills assume the responsible role for each invocation and read its contract themselves. When the human explicitly names a role, read `roles/<name>.md` before anything else and use it instead 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. Assumed or explicit, a role narrows responsibility and never grants human authority.
10
10
 
11
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.
12
12
 
package/CLAUDE.md CHANGED
@@ -4,34 +4,41 @@ This repository uses an AI-assisted, human-in-the-loop workflow. Project truth l
4
4
 
5
5
  ## Read only what is needed
6
6
 
7
- For feature work, usually read:
7
+ For delivery work, usually read:
8
8
 
9
- 1. `context/current-feature.md`
10
- 2. its referenced feature spec
9
+ 1. `context/current-ticket.md`
10
+ 2. the ticket it names, and that ticket's parent feature spec
11
11
  3. relevant sections of `context/project-overview.md`
12
12
  4. relevant rules from `context/coding-standards.md`
13
13
  5. `context/ai-interaction.md`
14
- 6. only the source files needed for the current delivery chunk
14
+ 6. only the source files needed for the current ticket
15
15
 
16
16
  Do not load the whole repo by default.
17
17
 
18
18
  Pathfinder ships two context files: `ai-interaction.md` and
19
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.
20
+ `features/`, `tickets/`, `history.md`, `current-ticket.md`, `handoff.md` — is
21
+ written by the workflow that first needs it. A missing file here is normal; skip
22
+ it rather than treating it as an error. `tickets/` in particular exists only
23
+ when local Markdown is the project's ticket store.
23
24
 
24
25
  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
+ `current-ticket.md` and `handoff.md`. `context/coding-standards.md` carries the
26
27
  rule; do not ignore `context/` wholesale.
27
28
 
28
29
  ## Roles
29
30
 
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
+ Lifecycle skills assume their responsible role for each invocation and read its
32
+ contract themselves: planning uses `planner`, ticket implementation and
33
+ completion use `developer`, and ticket review uses `tester`.
31
34
 
32
- The roles are `planner`, `developer`, and `tester`. Activate one with `/role <name>`.
35
+ The human can explicitly override that default with `/role <name>`. Read the
36
+ named `roles/<name>.md` before anything else and follow it for the session. A
37
+ role says what a worker is responsible for, what it reads, and what it must not
38
+ do, where a skill says how to perform a task.
33
39
 
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.
40
+ A role narrows responsibility and never widens authority. Approval, acceptance,
41
+ merge, and release remain the human's whether a role was assumed or explicit.
35
42
 
36
43
  ## Project-selected policies
37
44
 
@@ -44,7 +51,7 @@ If a policy is `TBD`, do not invent it. Ask the human or clearly mark it unresol
44
51
  Restate:
45
52
 
46
53
  1. Goal
47
- 2. Active delivery chunk
54
+ 2. Active ticket
48
55
  3. Expected files or areas
49
56
  4. Required context
50
57
  5. Risks
@@ -60,8 +67,8 @@ Ask before actions identified in `context/ai-interaction.md`, especially depende
60
67
 
61
68
  ## Scope and quality
62
69
 
63
- - Implement only the active feature and current delivery chunk.
64
- - Keep the project stable after each chunk.
70
+ - Implement only the active feature and current ticket.
71
+ - Keep the project stable after each ticket.
65
72
  - Do not convert prototype code into production code without an explicit feature decision.
66
73
  - Prefer concrete verification over confident narration.
67
74
  - Report conflicts between specs, repository reality, and durable context.
@@ -70,6 +77,8 @@ Ask before actions identified in `context/ai-interaction.md`, especially depende
70
77
 
71
78
  Canonical Pathfinder skills are tool-neutral and live under `skills/`. Harness-specific representations — `.claude/skills/`, `.agents/skills/` — are generated integration artifacts and must not become independent behavior contracts. Edit the canonical file; regenerate the adapter.
72
79
 
80
+ The Claude Code plugin declared by `.claude-plugin/plugin.json` is a third discovery surface, and the only one that generates nothing: it exposes the canonical `skills/` tree itself, namespaced `/pathfinder:<skill>`. There is no plugin copy of any skill and there must never be one. If a discovery surface and its canonical skill disagree, the canonical skill is correct.
81
+
73
82
  An adapter carries the canonical skill's frontmatter and a pointer to it, and nothing else. If an adapter and its canonical skill disagree, the canonical skill is correct.
74
83
 
75
84
  ## Available skills
@@ -79,7 +88,8 @@ An adapter carries the canonical skill's frontmatter and a pointer to it, and no
79
88
  - `reverse-engineer` — analyze an external reference and produce an evidence-based reconstruction blueprint
80
89
  - `prototype` — create and iterate the cheapest useful validation artifact
81
90
  - `to-specs` — generate context-sized feature specs
82
- - `feature` — run one action of the Feature delivery loop: `load`, `start`, `review`, `complete`
91
+ - `to-tickets` — decompose one approved Feature into blocker-linked tickets
92
+ - `ticket` — run one action of the ticket delivery loop: `load`, `start`, `review`, `complete`
83
93
  - `debug-issue` — diagnose an observed failure to its root cause, apply the smallest justified fix, and verify it
84
94
  - `learn-feature` — create an interactive lesson for a completed feature
85
95
  - `learn-codebase` — create a modular learning portal for the repository
@@ -90,8 +100,7 @@ An adapter carries the canonical skill's frontmatter and a pointer to it, and no
90
100
  - `learning-review` — review accumulated lessons, identify gaps, and create a reinforcement plan
91
101
  - `reflect` — review completed work, and the reflection itself, and propose reusable workflow improvements for human approval
92
102
  - `handoff` — preserve useful state between sessions or tools
93
- - `role` — activate one named role for the current session
103
+ - `role` — explicitly override the role the lifecycle would assume
94
104
  - `whereami` — report a compact read-only snapshot of the current session
95
105
  - `skillsmith` — teach and create small local skills
96
- - `setup-tracker` — configure an optional external work tracker
97
- - `sync-tracker` — publish approved feature specs to the configured tracker, one-way and idempotently
106
+ - `setup-tracker` — choose the canonical ticket store when it is not local Markdown
package/README.md CHANGED
@@ -80,11 +80,11 @@ The installer copies six kit entries into your repository:
80
80
  | --- | --- |
81
81
  | `AGENTS.md`, `CLAUDE.md` | Entry files that tell supported agents how to work in the project |
82
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 |
83
+ | `roles/` | Planner, developer, and tester contracts assumed by lifecycle skills |
84
+ | `skills/` | Reusable procedures for discovery, specs, delivery, debugging, review, learning, and ticket-store selection |
85
85
  | `templates/` | Minimal starting shapes; records are created from them later, when a workflow needs one |
86
86
 
87
- A fresh Pathfinder 2.0 project begins with only:
87
+ A fresh Pathfinder project begins with only:
88
88
 
89
89
  ```text
90
90
  context/
@@ -261,6 +261,23 @@ Pathfinder also never writes to personal/global skill directories such as:
261
261
  ~/.agents/skills/
262
262
  ```
263
263
 
264
+ ### The Claude Code plugin is a separate path
265
+
266
+ Pathfinder is also distributed as a Claude Code plugin, installed with
267
+ `/plugin marketplace add rikilamadrid/pathfinder` followed by
268
+ `/plugin install pathfinder@lamadrid-labs`. It does not replace this installer
269
+ and does not change anything it does.
270
+
271
+ The two install different things. The plugin installs commands, always
272
+ namespaced `/pathfinder:<skill>`, into your Claude Code installation and writes
273
+ nothing into your repository — no kit, no adapters. This installer copies the
274
+ kit your repository keeps under version control, and generates the adapters that
275
+ expose the bare `/<skill>` names.
276
+
277
+ A repository can have both, and then carries both command forms running the same
278
+ canonical skill body. If you arrived through the plugin with no kit yet,
279
+ `/pathfinder:kickstart-pathfinder` offers to install one for you.
280
+
264
281
  ### Interactive selection
265
282
 
266
283
  In an interactive terminal, the installer asks which supported tools to
@@ -20,7 +20,7 @@ Ask before:
20
20
  - Git history rewriting
21
21
  - commits, merges, releases, or deployments
22
22
  - adopting prototype code into production
23
- - writes outside the repository, such as shared tracker changes
23
+ - writes outside the repository, such as tickets in a shared store
24
24
 
25
25
  The human owns judgment, acceptance, merge, and release decisions.
26
26
 
@@ -34,21 +34,24 @@ or deployment workflow.
34
34
  Inspect current Git state before acting. If the workflow is unclear or
35
35
  `TBD`, ask.
36
36
 
37
- ## Feature Workflow
37
+ ## Delivery Workflow
38
38
 
39
39
  Use the workflow skills instead of recreating their procedures in chat:
40
40
 
41
- 1. `/feature load` — load the active work and relevant context.
42
- 2. `/feature start` — implement the current delivery chunk.
43
- 3. `/feature review` — verify the work and report findings.
44
- 4. `/feature complete` — complete accepted work and durable records.
45
- 5. `learn-feature`optionally teach what was implemented.
41
+ 1. `to-tickets`slice one approved Feature into executable tickets.
42
+ 2. `/ticket load` — load one ticket, its Feature, and relevant context.
43
+ 3. `/ticket start` — implement that ticket.
44
+ 4. `/ticket review` — verify the work and report findings.
45
+ 5. `/ticket complete` — complete accepted work and durable records, and name
46
+ the tickets that are now ready.
47
+ 6. `learn-feature` — optionally teach what was implemented.
46
48
 
47
- Roles are optional. The workflow must work without activating one.
49
+ Lifecycle skills assume their responsible role automatically. Explicit
50
+ activation with `/role` is optional and overrides that default for the session.
48
51
 
49
52
  ### Status
50
53
 
51
- Feature status records durable lifecycle state only:
54
+ Ticket status records durable lifecycle state only:
52
55
 
53
56
  `Proposed` → `Ready` → `In Progress` → `Complete`
54
57
 
@@ -56,17 +59,20 @@ Feature status records durable lifecycle state only:
56
59
 
57
60
  - `Ready` means the human approved execution.
58
61
  - Review and testing are optional workflow activity, not a status.
59
- A Feature stays `In Progress` until it is complete.
60
- - `Blocked` is not a status; record the blocker in current workspace state.
62
+ A ticket stays `In Progress` until it is complete.
63
+ - `Blocked` is not a status. A ticket's blockers are the edges under its
64
+ `## Blocked by`, and anything else that stops work is recorded in current
65
+ workspace state.
66
+ - A Feature's status is derived from its tickets, never maintained by hand.
61
67
  - The human decides approval, acceptance, cancellation, and supersession.
62
68
 
63
69
  ## Context Discipline
64
70
 
65
71
  - Read only what the current work requires.
66
72
  - Prefer exact files or sections over broad repository scans.
67
- - Do not load history, roadmap, tracker data, or unrelated context by
73
+ - Do not load history, roadmap, other tickets, or unrelated context by
68
74
  default.
69
- - Work one delivery chunk at a time.
75
+ - Work one ticket at a time.
70
76
  - If the work can no longer be understood safely in a focused session,
71
77
  stop and split or hand off.
72
78
  - Extra scaffolding must earn its cost by reducing downstream context.
@@ -92,10 +92,12 @@ Keep durable truth in its appropriate project artifact.
92
92
  `context/project-overview.md`
93
93
  - Feature contracts:
94
94
  `context/features/`
95
+ - executable tickets, when local Markdown is the configured store:
96
+ `context/tickets/`
95
97
  - completed outcomes:
96
98
  `context/history.md`
97
99
  - active workspace state:
98
- `context/current-feature.md`
100
+ `context/current-ticket.md`
99
101
  - state handed to the next session:
100
102
  `context/handoff.md`
101
103
 
@@ -115,6 +117,7 @@ project", it outlives any session, and a reviewer should see it change:
115
117
  ```text
116
118
  context/project-overview.md
117
119
  context/features/
120
+ context/tickets/ # only when local Markdown is the ticket store
118
121
  context/history.md
119
122
  context/tracker.md
120
123
  ```
@@ -124,14 +127,14 @@ it belongs to one session on one machine, and committing it puts one person's
124
127
  in-flight work in everybody's diff:
125
128
 
126
129
  ```text
127
- context/current-feature.md
130
+ context/current-ticket.md
128
131
  context/handoff.md
129
132
  ```
130
133
 
131
134
  Two lines in `.gitignore` are the whole mechanism:
132
135
 
133
136
  ```text
134
- context/current-feature.md
137
+ context/current-ticket.md
135
138
  context/handoff.md
136
139
  ```
137
140
 
@@ -144,7 +147,8 @@ A team that would rather share workspace state — a single-machine project, or
144
147
  handoff meant to be read by a colleague — can track them instead. Nothing in the
145
148
  kit reads Git state to decide how to behave.
146
149
 
147
- `context/tracker.md` is durable and tracked, with one exception that does not
148
- apply to your project: Pathfinder's own repository ignores it, because `context`
149
- is a directory in the installer's copy list and a committed copy would ship
150
- Pathfinder's tracker config to every new install.
150
+ `context/tracker.md` is durable and tracked when the project selects a store
151
+ other than local Markdown. With local Markdown, `context/tickets/` is durable
152
+ and tracked instead. Pathfinder's own repository ignores its tracker config,
153
+ because `context` is a directory in the installer's copy list and a committed
154
+ copy would ship Pathfinder's store selection to every new install.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "create-pathfinder",
3
- "version": "3.0.0",
4
- "description": "Install the Pathfinder AI-assisted, human-in-the-loop workflow kit into a Git repository.",
3
+ "version": "4.0.0",
4
+ "description": "Install Pathfinder's ticket-first, human-in-the-loop workflow kit into a Git repository.",
5
5
  "keywords": [
6
6
  "pathfinder",
7
7
  "ai",
@@ -17,7 +17,8 @@ Do not load unrelated history, roadmap, Features, or repository areas by default
17
17
 
18
18
  ## Use
19
19
 
20
- - `feature` — its load action to load the work, its start action to implement it.
20
+ - `ticket` — its load action to load work, start action to implement it, and
21
+ complete action to record work the human accepted.
21
22
  - Use the project's existing build, test, and verification commands as needed.
22
23
 
23
24
  ## Rules
package/roles/planner.md CHANGED
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  name: planner
3
- description: Turns approved direction into small, implementable Feature specs.
3
+ description: Discovers project direction and turns it into implementable Features and tickets.
4
4
  ---
5
5
 
6
6
  # Planner
7
7
 
8
8
  ## Responsibility
9
9
 
10
- Turn approved direction into clear Feature specs for another session to
11
- implement.
10
+ Discover project direction, turn approved direction into clear Feature specs,
11
+ and slice those Features into tickets another session can implement.
12
12
 
13
13
  ## Context
14
14
 
@@ -18,8 +18,10 @@ Inspect implementation code only when necessary to understand the work.
18
18
 
19
19
  ## Use
20
20
 
21
+ - `kickstart-pathfinder` to discover and initialize project context.
21
22
  - `debate-me` when direction still needs pressure-testing.
22
23
  - `to-specs` to create Feature specs.
24
+ - `to-tickets` to slice one approved Feature into executable tickets.
23
25
 
24
26
  ## Rules
25
27
 
@@ -33,6 +35,6 @@ Inspect implementation code only when necessary to understand the work.
33
35
 
34
36
  ## Finish
35
37
 
36
- Produce the Feature specs and clearly identify any unresolved human decisions.
37
-
38
- Stop before implementation.
38
+ Finish at the invoked skill's stop condition: approved project context, Feature
39
+ specs, or a ticket graph. Identify unresolved human decisions and stop before
40
+ implementation.
package/roles/tester.md CHANGED
@@ -20,7 +20,7 @@ Do not rely on the developer's summary as proof.
20
20
 
21
21
  ## Use
22
22
 
23
- - `feature` — its review action, to verify implemented work.
23
+ - `ticket` — its review action, to verify implemented work.
24
24
  - Use the project's existing test commands and relevant testing tools.
25
25
 
26
26
  ## Rules
@@ -29,9 +29,9 @@ Use Debug Issue when there is a concrete unexpected behavior such as:
29
29
 
30
30
  Do not use it merely because implementation work is difficult.
31
31
 
32
- If the task is planned feature construction, use `/feature start`.
32
+ If the task is planned construction, use `/ticket start`.
33
33
 
34
- If the goal is reviewing completed implementation for possible defects, use `/feature review`.
34
+ If the goal is reviewing completed implementation for possible defects, use `/ticket review`.
35
35
 
36
36
  If the real question is broad understanding of the repository, use `learn-codebase`.
37
37
 
@@ -202,8 +202,8 @@ It does not:
202
202
 
203
203
  * implement unrelated feature scope
204
204
  * perform a general repository review
205
- * replace `/feature review`
206
- * replace `/feature complete`
205
+ * replace `/ticket review`
206
+ * replace `/ticket complete`
207
207
  * silently change architecture or dependencies
208
208
  * turn debugging into opportunistic refactoring
209
209
  * hide uncertainty behind a successful-looking workaround
@@ -7,6 +7,12 @@ description: Discover and initialize a new or existing project without writing p
7
7
 
8
8
  Use this skill to turn an idea or existing repository into durable, human-approved project context.
9
9
 
10
+ ## Assumed role
11
+
12
+ Unless the human explicitly activated a role, assume `planner` for this
13
+ invocation: read `roles/planner.md` and follow it. An explicit role overrides
14
+ this default. A role narrows responsibility and never grants human authority.
15
+
10
16
  ## Rules
11
17
 
12
18
  - Do not install packages or write product code.
@@ -36,18 +42,57 @@ When the user is unsure, provide a small recommendation with reasoning and alter
36
42
 
37
43
  ## Process
38
44
 
39
- 1. Read the kit context and inspect relevant repository facts.
40
- 2. Ask the minimum unresolved questions in small groups.
41
- 3. Summarize requirements, preferences, constraints, open decisions, and contradictions.
42
- 4. Route uncertain product/technical choices to `debate-me` when useful.
43
- 5. Present the proposed context and request human corrections or approval.
44
- 6. Update `context/project-overview.md`, `context/coding-standards.md`, `context/ai-interaction.md`, `CLAUDE.md`, and `AGENTS.md` only after the choices are sufficiently clear.
45
+ 1. If the project is missing kit files, and this session loaded this skill from
46
+ the Pathfinder plugin, offer to install the kit before going further. See
47
+ `Kit Bootstrap` below. Otherwise start at the next step.
48
+ 2. Read the kit context and inspect relevant repository facts.
49
+ 3. Ask the minimum unresolved questions in small groups.
50
+ 4. Summarize requirements, preferences, constraints, open decisions, and contradictions.
51
+ 5. Route uncertain product/technical choices to `debate-me` when useful.
52
+ 6. Present the proposed context and request human corrections or approval.
53
+ 7. Update `context/project-overview.md`, `context/coding-standards.md`, `context/ai-interaction.md`, `CLAUDE.md`, and `AGENTS.md` only after the choices are sufficiently clear.
45
54
  `context/project-overview.md` does not ship; create it from `templates/project-overview.template.md` at this step.
46
55
  Project facts go there; approval rules and tool actions requiring a human go
47
56
  in `context/ai-interaction.md`. Fill the sections the project has and mark
48
57
  the rest `TBD` or `None`. Do not add sections the template does not carry,
49
58
  and do not leave a field blank.
50
- 7. Recommend `debate-me`, `prototype`, or `to-specs` as the next action.
59
+ 8. Recommend `debate-me`, `prototype`, or `to-specs` as the next action.
60
+
61
+ ## Kit Bootstrap
62
+
63
+ The Pathfinder plugin distributes commands. It does not distribute project
64
+ state. A repository reached through `/plugin install` therefore has every
65
+ Pathfinder command and none of the files those commands read.
66
+
67
+ This step applies only when both are true: the project is missing kit files,
68
+ and this skill was loaded from the plugin, which is what makes
69
+ `${CLAUDE_PLUGIN_ROOT}` — the plugin's install directory — a real path. When
70
+ the kit installed this skill into the repository instead, there is no plugin
71
+ root, the condition is false, and this whole section is skipped without being
72
+ raised or quoted.
73
+
74
+ When it does apply:
75
+
76
+ - Copy from the plugin root into the project root, and copy only the kit. That
77
+ list is not restated here: `packages/create-pathfinder/copy-list.json`, inside
78
+ the plugin root, is the one statement of it. Read that file and copy the
79
+ entries it names.
80
+ - Exclude exactly what the installer excludes, and read that from the installer
81
+ too: `NEVER_SHIPS` in `packages/create-pathfinder/src/kit.mjs`, also inside
82
+ the plugin root, is the one statement of it. Skip every kit-relative path it
83
+ holds. Those files are one repository's own working state and would be wrong
84
+ in any other project. Restating them here would be a second list to keep in
85
+ step, and the first time it drifted this step would hand a project what
86
+ `npx create-pathfinder` refuses to.
87
+ - Name every file before writing it, and wait for approval.
88
+ - Overwrite nothing without asking about that file by name. Delete nothing.
89
+ - Report exactly what was written, what was skipped, and what was left alone.
90
+ - Generate no harness adapters. Plugin commands stay namespaced
91
+ `/<plugin-name>:<skill>`, and that is the intended plugin form.
92
+ `npx create-pathfinder --agents claude-code` is what generates adapters and
93
+ the bare command names, for a human who wants both.
94
+
95
+ When the project already has the kit, change nothing and say so.
51
96
 
52
97
  ## Stop Condition
53
98
 
@@ -13,7 +13,7 @@ The goal is retrieval and diagnosis, not entertainment and not a long exam.
13
13
  ## Read First
14
14
 
15
15
  1. The relevant lesson in `context/learning/lessons/`
16
- 2. `context/current-feature.md`
16
+ 2. `context/current-ticket.md`
17
17
  3. Only the implementation or tests needed to verify answers
18
18
  4. `context/learning/progress.md`
19
19
 
@@ -173,7 +173,7 @@ Use one of these:
173
173
  * `debate-me` — when major product or technical decisions remain
174
174
  * `prototype` — when the experience or technical assumption needs validation
175
175
  * `to-specs` — when the direction is approved and ready to become feature files
176
- * `/feature load` — when the analysis applies to one already-planned feature
176
+ * `/ticket load` — when the analysis applies to one already-planned ticket
177
177
  * `learn-codebase` — when the user wants to understand their own repository instead
178
178
  * no handoff — when the user only requested analysis
179
179
 
@@ -1,12 +1,16 @@
1
1
  ---
2
2
  name: role
3
- description: Activate one named Pathfinder role for the current session.
3
+ description: Explicitly override the role Pathfinder's lifecycle would assume.
4
4
  argument-hint: planner|developer|tester
5
5
  ---
6
6
 
7
7
  # Role
8
8
 
9
- Activate exactly one role.
9
+ Explicitly activate exactly one role for the current session.
10
+
11
+ Normal lifecycle skills assume their responsible role automatically. Use this
12
+ skill only when the human wants to override that default or inspect/debug work
13
+ under a particular responsibility boundary.
10
14
 
11
15
  The human names it, for example:
12
16
 
@@ -27,6 +31,8 @@ The human names it, for example:
27
31
  ## Rules
28
32
 
29
33
  - Activate only the role the human named.
34
+ - The explicit role overrides a lifecycle skill's automatic default for the
35
+ rest of the current session/conversation context.
30
36
  - Read only that role file.
31
37
  - Do not start the role's work.
32
38
  - Do not write project state just to remember the role.
@@ -1,42 +1,62 @@
1
1
  ---
2
2
  name: setup-tracker
3
- description: Configure optional work tracking for the project.
3
+ description: Choose the canonical ticket store when it is not local Markdown.
4
4
  ---
5
5
 
6
6
  # Setup Tracker
7
7
 
8
- Configure a work tracker only when the human asks.
8
+ Configure a ticket store only when the human asks.
9
9
 
10
- Pathfinder works normally without one.
10
+ Pathfinder works normally without one: with no configuration, tickets are local
11
+ Markdown files under `context/tickets/`. That is already a store, and for many
12
+ projects it is the right one. This skill is for projects whose tickets belong
13
+ somewhere else instead.
11
14
 
12
15
  ## Process
13
16
 
14
- 1. Ask where work should be tracked:
17
+ 1. Ask where tickets should live:
15
18
  - GitHub Issues
16
19
  - 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.
20
+ - another tracker the human describes — Jira, Linear, Azure DevOps, or
21
+ something internal
22
+ 2. Ask only for the information needed to use that store.
23
+ 3. Say plainly what the choice means: that store becomes the only place the
24
+ project's tickets exist. Moving to a different one later is a deliberate
25
+ human migration, and nothing moves tickets between stores automatically.
22
26
  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
+ - the store and how an agent reaches it
28
+ - where tickets are within it, when that is a choice the store offers
29
+ - how a ticket carries its key, so a later run finds the ticket it created
27
30
  5. Show it to the human.
28
31
  6. Write it only after approval.
29
32
 
30
33
  If `context/tracker.md` already exists, modify only the requested settings.
31
34
 
35
+ ## The key
36
+
37
+ A ticket's key is `NN.TT` — the parent Feature number and the ticket number
38
+ within it. In the local Markdown store it is the filename. In any other store
39
+ the config has to say what carries it: a marker in the item body, a recorded
40
+ issue number, a field the tracker offers.
41
+
42
+ Which one is the store's business. What the kit requires is only the property —
43
+ a later session must be able to find the ticket by its key, because blocker
44
+ edges name keys and nothing else.
45
+
46
+ Ask for it explicitly. A config that cannot answer this is not finished.
47
+
32
48
  ## Rules
33
49
 
34
- - Do not publish or create work items.
50
+ - Do not create tickets. This skill configures the store and nothing else.
35
51
  - Do not create labels, tags, or tracker conventions unless requested.
36
52
  - 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`.
53
+ - The configured store is canonical. There is one ticket artifact, and no copy
54
+ of it in the repository.
55
+ - Feature specs are not tickets. They stay in the repository whatever the store.
56
+ - Configuration is always optional. Its absence selects the local Markdown
57
+ store, so never write a placeholder config.
58
+
59
+ Creating and updating tickets belongs to `to-tickets` and the ticket lifecycle,
60
+ not here.
41
61
 
42
62
  Stop after configuration.
@@ -13,7 +13,7 @@ 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/current-feature.md`
16
+ 1. `context/current-ticket.md`, and the ticket it names
17
17
  2. The source feature spec under `context/features/`
18
18
  3. `context/project-overview.md`
19
19
  4. The current branch, working tree status, and focused diff