@getpipher/workspace 0.3.0 → 0.4.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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getpipher/workspace",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Workspace & context-management skills — repo catch-up, AGENTS.md initialization, ecosystem context-file architecture, doc organization, planning sync, and cross-session handoff. Host-neutral: any AGENTS.md-aware coding agent.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package",
|
package/skills/catch-up/SKILL.md
CHANGED
|
@@ -11,6 +11,8 @@ Bismillah! Let me show you where we are and what we just did.
|
|
|
11
11
|
|
|
12
12
|
Let me gather complete context for you:
|
|
13
13
|
|
|
14
|
+
0. **Handoff check** — If `$HANDOFF_VAULT/{project}/` (`$HANDOFF_VAULT` defaults to `~/.local/handoffs`) contains session handoffs, surface the newest one (`ls "$HANDOFF_VAULT"/{project}/session-handoff-*.md | sort -r | head -1`) and offer to render its starter prompt before gathering git state.
|
|
15
|
+
|
|
14
16
|
1. **Extract Mission & Purpose**
|
|
15
17
|
- Read the project context file — `AGENTS.md` (or `CLAUDE.md`, CC's legacy name) — first, for Repository Overview and Tech Stack
|
|
16
18
|
- Fallback to README.md if no context file exists
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: workspace-session-handoff
|
|
3
|
-
description: Use when ending a session and work needs to continue in a new session (any host). Creates a self-contained starter prompt with full context so the next session picks up seamlessly. Host-neutral — the handoff bridges sessions across hosts (shared workspace + vault).
|
|
3
|
+
description: Use when ending a session and work needs to continue in a new session (any host). Creates a self-contained starter prompt with full context so the next session picks up seamlessly. Host-neutral — the handoff bridges sessions across hosts (shared workspace + vault). Also use when the session relied on skills — audits, TDD, debugging, hunt or release workflows — that follow-up sessions must keep invoking: skill usage must survive the session boundary by exact name.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Session Handoff
|
|
@@ -18,7 +18,9 @@ Create a starter prompt file that a fresh session can use to continue work witho
|
|
|
18
18
|
|
|
19
19
|
## Output
|
|
20
20
|
|
|
21
|
-
Write to: `$HANDOFF_VAULT/{project}/session-handoff-{YYYY-MM-DD}.md` (default `$HANDOFF_VAULT`=`~/.local/handoffs`)
|
|
21
|
+
Write to: `$HANDOFF_VAULT/{project}/session-handoff-{YYYY-MM-DD}.md` (default `$HANDOFF_VAULT`=`~/.local/handoffs` — the canonical vault). `$HANDOFF_VAULT` is set machine-globally in the shell profile, never per-session. Durability/backup of the vault is an out-of-band concern (mirror/sync jobs) — never a reason to write elsewhere.
|
|
22
|
+
|
|
23
|
+
`{project}` = the working directory's repo/bucket folder name (for bug-bounty hunts: the per-target hunt folder name `<platform>-<program>`). Flat, single segment — never a nested path.
|
|
22
24
|
|
|
23
25
|
If a handoff file already exists for today, append a letter suffix (e.g., `-b`, `-c`).
|
|
24
26
|
|
|
@@ -36,6 +38,7 @@ Collect from the current conversation (do NOT re-read files you already have con
|
|
|
36
38
|
6. **File paths touched** — specific files modified (helps the next session navigate)
|
|
37
39
|
7. **CI/deploy state** — are all repos green? anything deploying?
|
|
38
40
|
8. **VPS/infra state** — any server-side changes made (env vars, configs, deploys)
|
|
41
|
+
9. **Skills to carry into the next session** — every skill this session invoked, plus every skill the pending work requires, by exact invocable name (e.g., `web2-audit-semantics`, `systematic-debugging`), one line each on when/why for this handoff's pending work. The name must survive verbatim: the next session matches skills by description against fresh context, and a paraphrased handoff ("use the standard audit lens") loses the trigger vocabulary — only the exact name reliably fires it. If the session never named a skill explicitly, infer from the pending work using your installed-skills list. If genuinely no skill applies, record none — never pad with decorative names.
|
|
39
42
|
|
|
40
43
|
### Step 2: Decide if a progress table is needed
|
|
41
44
|
|
|
@@ -43,7 +46,7 @@ A **progress table** sits near the top of the handoff (between the header block
|
|
|
43
46
|
|
|
44
47
|
**Generate a progress table when ANY apply:**
|
|
45
48
|
|
|
46
|
-
1. **Predecessor handoff has one** — `ls
|
|
49
|
+
1. **Predecessor handoff has one** — `ls "$HANDOFF_VAULT"/{project}/session-handoff-*.md | sort -r | head -1` contains `## Progress Table`. Chain consistency > per-session re-evaluation. (Reverse-lexicographic sort, not mtime — the `YYYY-MM-DD[-letter]` naming is lexicographically ordered; mtime lies on restore/copy/sync.)
|
|
47
50
|
2. **User explicitly requested** — prompt contains "MUST include progress table" or "include the progress table".
|
|
48
51
|
3. **Work has numbered discrete units** — multi-phase plan with slices/tasks (e.g., "Slice 5.7 done, next 5.8"), or stacked PR chain where order matters.
|
|
49
52
|
4. **More than 3 PRs/issues stacked across sessions** — flat bullet list becomes unscannable.
|
|
@@ -61,7 +64,7 @@ A **progress table** sits near the top of the handoff (between the header block
|
|
|
61
64
|
1. **Find the most recent predecessor handoff** for this project:
|
|
62
65
|
|
|
63
66
|
```bash
|
|
64
|
-
ls
|
|
67
|
+
ls "$HANDOFF_VAULT"/{project}/session-handoff-*.md 2>/dev/null | sort -r | head -1
|
|
65
68
|
```
|
|
66
69
|
|
|
67
70
|
Locate its `## Progress Table` section.
|
|
@@ -86,7 +89,7 @@ Adapt column names to the project's vocabulary ("Milestone" instead of "Phase",
|
|
|
86
89
|
|
|
87
90
|
### Step 4: Write the Handoff File
|
|
88
91
|
|
|
89
|
-
Structure (
|
|
92
|
+
Structure (conditional sections: `## Progress Table` per Steps 2–3; FIRST-ACTIONS inside the starter prompt per (progress table and/or Step 1 item 9); "Skills to invoke" inside the starter prompt per Step 1 item 9):
|
|
90
93
|
|
|
91
94
|
```markdown
|
|
92
95
|
# {Project} — Session Handoff ({date}-{letter} — {one-line headline})
|
|
@@ -108,11 +111,26 @@ Structure (the `## Progress Table` section is inserted only if Steps 2–3 produ
|
|
|
108
111
|
Copy-paste this into a new session:
|
|
109
112
|
|
|
110
113
|
\```
|
|
111
|
-
{
|
|
114
|
+
{FIRST-ACTIONS — include ONLY when a progress table was generated (Steps 2–3) and/or Step 1 item 9 listed at least one skill; omit entirely when neither applies. Compose it from the parts below that apply, numbered sequentially with no gaps:}
|
|
115
|
+
|
|
116
|
+
FIRST — before reading any plan, touching any code, or taking any other action — do these, in order:
|
|
117
|
+
|
|
118
|
+
{only when a progress table exists:}
|
|
119
|
+
1. Render the progress table below back to me verbatim, under the heading "## Resuming — where we left off".
|
|
120
|
+
{end only-when}
|
|
121
|
+
|
|
122
|
+
{only when skills are listed:}
|
|
123
|
+
{next sequential number}. Invoke every skill named under "Skills to invoke" below — read and follow each before starting the task work.
|
|
124
|
+
{end only-when}
|
|
125
|
+
|
|
126
|
+
{full progress table copied verbatim from the ## Progress Table section above, including the footer summary line — only when a progress table exists}
|
|
127
|
+
|
|
128
|
+
{--- — include ONLY together with the SKILL INVOKE section below; omit when it is omitted}
|
|
112
129
|
|
|
113
|
-
|
|
130
|
+
{SKILL INVOKE — include ONLY when Step 1 item 9 listed at least one skill; omit entirely otherwise. Embed the list verbatim so it travels with the prompt even if the user pastes only this block:}
|
|
114
131
|
|
|
115
|
-
|
|
132
|
+
Skills to invoke:
|
|
133
|
+
- `{skill-name}` — {one line: when/why for THIS handoff's pending work}
|
|
116
134
|
|
|
117
135
|
---
|
|
118
136
|
|
|
@@ -169,9 +187,22 @@ pbpaste # macOS — expected: the handoff path
|
|
|
169
187
|
|
|
170
188
|
If the clipboard tool isn't available (e.g., remote SSH session without clipboard forwarding), skip silently — don't treat it as an error. The Confirm step still shows the path as text.
|
|
171
189
|
|
|
172
|
-
### Step 6: Update
|
|
190
|
+
### Step 6: Update the project chain index
|
|
191
|
+
|
|
192
|
+
Maintain `$HANDOFF_VAULT/{project}/MEMORY.md` — the ONLY hand-maintained index:
|
|
193
|
+
|
|
194
|
+
```markdown
|
|
195
|
+
# {Project} — Handoff Chain Index
|
|
196
|
+
|
|
197
|
+
|Date|Handoff|State at handoff|
|
|
198
|
+
|---|---|---|
|
|
199
|
+
|{date}|{filename}|{one-line state}|
|
|
200
|
+
|
|
201
|
+
## Standing context
|
|
202
|
+
- {spec of record / conventions / frozen facts — items that outlive any single handoff}
|
|
203
|
+
```
|
|
173
204
|
|
|
174
|
-
Add
|
|
205
|
+
Add the new row at the bottom (newest last); update stale state lines while there. The global vault-level `MEMORY.md` (if present) is GENERATED by tooling — never hand-edit it.
|
|
175
206
|
|
|
176
207
|
### Step 7: Confirm
|
|
177
208
|
|
|
@@ -195,7 +226,8 @@ The new session performs the mirror action on arrival: the starter prompt (Step
|
|
|
195
226
|
- **No secrets in the prompt** — API keys, passwords, keypairs stay out
|
|
196
227
|
- **Specific over general** — "execute Task 3 in docs/plans/foo.md" beats "continue the work"
|
|
197
228
|
- **Include gotchas** — anything surprising or non-obvious that would trip up a fresh session
|
|
198
|
-
- **Private vault only** —
|
|
229
|
+
- **Private vault only** — the vault must be a private, local, strategy-safe location. `~/.local/handoffs` is the canonical home; durability is provided by an out-of-band mirror, not by writers choosing alternate locations.
|
|
199
230
|
- **Progress table is part of the chain contract** — once a chain starts using a progress table, every handoff in the chain MUST include + update it. Skipping breaks scannability for the next session and forces a rebuild from prior handoffs.
|
|
200
231
|
- **Progress table echo is the closer, not the full handoff** — Step 7's inline table is a snapshot for the current chat. The handoff file (`.md`) is the durable artifact. Don't paraphrase or trim the table when echoing — render it verbatim.
|
|
201
|
-
- **
|
|
232
|
+
- **FIRST-ACTIONS mirror the closer** — when a progress table exists, the starter prompt's ordered list MUST lead with "render the table before doing anything" (item 1 of FIRST-ACTIONS). Embed the table inside the starter-prompt block (Step 4), not as a file reference, so it survives the user pasting the prompt alone. The fresh session renders it as its first action — a "where we left off" snapshot symmetric to Step 7's "where we ended" closer. No table and no skills-to-invoke → no FIRST-ACTIONS block at all; a skills-only handoff still leads with FIRST (invoke is item 1).
|
|
233
|
+
- **Skill continuity travels by exact name** — every skill from Step 1 item 9 MUST appear in the starter prompt's "Skills to invoke" list, exact invocable name verbatim. A paraphrase ("use the standard audit lens") doesn't reliably trigger the next session's skill matching, and continuation phrasing loses the "starting X" vocabulary a fresh session needs to match descriptions. No applicable skill → omit the list entirely; decorative padding erodes the contract.
|