Knowledge vault (Orion/PARA) migrated from the pre-Orion 484vault on 2026-10-01. Deliberately orphaned: prior history contained a plaintext password and stays local-only on branch archive/pre-boilerplate-history. Secrets and live Hermes state are gitignored.
104 lines
5.3 KiB
Markdown
104 lines
5.3 KiB
Markdown
---
|
|
name: orion-close
|
|
description: "Close a finished workstream in an Orion vault and return its deliverable to the Area that spawned it. Verifies done_when is actually met, splits the output into deliverable (→ 2. Areas/<Area>/knowledge/) and process record (→ 5. Archive/<Area>/<ID>/), updates the Area hub, releases follow-ups tied to the work, and repoints inbound links. Not reversible. Distinct from orion-archive, which retires a whole Area. Triggers on: close workstream, close [ID], this is done, finish workstream, ship it."
|
|
---
|
|
|
|
# orion-close — return a finished workstream to its Area
|
|
|
|
**An Area spawns a workstream; when the workstream finishes, its deliverable comes home.** The Area is the memory; the workstream is the episode. If finished output archives together with its process, the Area learns nothing and the next workstream starts cold.
|
|
|
|
```
|
|
2. Areas/<Area>/ ──spawns──▶ 1. Projects/<Area>/<Name>/
|
|
knowledge/ ◀── deliverable ──────────────────┤
|
|
└── process ──▶ 5. Archive/<Area>/<ID>/
|
|
```
|
|
|
|
## Close or archive?
|
|
|
|
| | `orion-close` | `orion-archive` |
|
|
|---|---|---|
|
|
| Trigger | One workstream **finished** | A whole Area **ended or paused** |
|
|
| The Area | **Stays, gains knowledge** | Moves into the archive |
|
|
| Reversible | **No** | Yes |
|
|
|
|
**Is the Area staying? → close. Is it going away? → archive.** If there's any chance the work resumes, it's `paused`, not closed.
|
|
|
|
---
|
|
|
|
## 1. Verify `done_when:` against reality
|
|
|
|
Read the hub's `done_when:` and check it against what actually exists — not against how finished the work feels.
|
|
|
|
**Not met → stop and say which part is outstanding.** Never rewrite `done_when:` at close time to match what happened; a done-when edited at close never tested anything. Legitimate paths:
|
|
|
|
| Situation | Action |
|
|
|---|---|
|
|
| Work is done, the sentence was wrong | **The owner's call.** Record the correction and why on the hub, then close |
|
|
| Work stopped and won't resume | Not a close — `paused` with a reason |
|
|
| Scope changed | Old workstream closes as superseded; a new one opens with a new ID |
|
|
|
|
## 2. Split the output
|
|
|
|
| Pile | Goes to | What |
|
|
|---|---|---|
|
|
| **Deliverable** | `2. Areas/<Area>/knowledge/` | What the Area now knows: conclusions, specs, finished documents, reusable findings |
|
|
| **Process record** | `5. Archive/<Area>/<ID>/` | How it got there: session notes, drafts, dead ends, the hub itself |
|
|
|
|
**One question per file:** *would someone working in this Area six months from now want this without knowing the workstream existed?* Yes → knowledge. No → archive.
|
|
|
|
**When genuinely unclear, ask.** This is the one checkpoint that stops execution.
|
|
|
|
## 3. Migrate the deliverable
|
|
|
|
Move each deliverable file into `knowledge/`. **Keep the filename** (renaming breaks links for no gain). Add a provenance line if missing: *"Produced by `<ID>` — `<Name>`, closed YYYY-MM-DD."*
|
|
|
|
## 4. Archive the process record
|
|
|
|
Move everything else, **including `<ID>_hub.md`**, to `5. Archive/<Area>/<ID>/`. Set `status: closed`, add `closed: YYYY-MM-DD`. No tombstone needed — nothing to restore.
|
|
|
|
## 5. Update the Area hub
|
|
|
|
Mark the workstream closed in `## Workstreams`, with its ID and one line on what it produced. Link the deliverable from the hub or `knowledge/_index.md`. ⚠ **Never decrement `workstream_counter:`.** IDs are never reused.
|
|
|
|
## 6. Release follow-ups
|
|
|
|
List every `tier: relationship` person whose follow-up exists *for this workstream* (they link the hub, are named by its `next:`, or their page says so). **Change nothing on their pages** — whether the relationship outlives the work is the owner's call. Record them on a `Released:` line in the log entry; the next weekly sweep lists them.
|
|
|
|
## 7. Repoint inbound links
|
|
|
|
1. **Scan** every `.md` in the vault for `[[…]]` targets pointing into the old folder (full-path and bare-name forms). Ignore links inside code blocks.
|
|
2. **Resolve each hit against the real file tree** — a grep hit is a hypothesis.
|
|
3. **Change only the link target, never the prose.** Keep display aliases: `[[new/path/File|Original Text]]`. Ledgers (`4. Decisions/`, `wiki/log.md`, `wiki/folds/`) included — pointer only.
|
|
4. **Rescan from scratch and report that number**, not a tally of your edits.
|
|
|
|
## 8. Log and hand off
|
|
|
|
Append to `wiki/log.md`: `[build]` with a `Shipped:` line if the deliverable is a shipped thing, otherwise `[vault]`. Include `Released:` if any. Then suggest `cascade`.
|
|
|
|
---
|
|
|
|
## Output
|
|
|
|
```
|
|
## Close — <ID> · <Name>
|
|
|
|
done_when: "<sentence>" — ✅ met / ⚠ met with correction (why)
|
|
Deliverable → 2. Areas/<Area>/knowledge/
|
|
- <file> — what the Area now knows
|
|
Process → 5. Archive/<Area>/<ID>/ — N files incl. hub
|
|
Area hub: <what changed>
|
|
Links repointed: N — rescan shows N dead (was N)
|
|
Released: <Name — follow_up_by, what it was for> · or none
|
|
|
|
Next: run cascade.
|
|
```
|
|
|
|
## Rules
|
|
|
|
- **Verify done_when before anything moves.** Never rewrite it to fit.
|
|
- **Split deliverable from process.** Ask only when genuinely unclear.
|
|
- **Every migrated file carries its origin.**
|
|
- **Never decrement the counter. Never reuse an ID.**
|
|
- **Closing isn't reversible.** If it might resume, pause it.
|
|
- **Only link targets change. Rescan and report the rescan.**
|
|
- **`area: none` workstreams archive whole** — there's no knowledge base to receive a deliverable.
|