Signal Rail files are plain text. Any text editor — Notepad, VS Code, Vim, a terminal editor on a remote machine — can open and modify them. Manual editing is a legitimate operating mode, not an unsafe fallback, but it requires discipline. The rails work because they stay strict, and nothing in a plain-text file prevents you from writing in the wrong place, using the wrong ID, or renaming a section that agents and the workstation depend on. These rules exist to make manual editing safe.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/xxyoudeadpunkxx/signal-rail/llms.txt
Use this file to discover all available pages before exploring further.
The core rule
Do not turn manual editing into free-form note taking. Every edit must respect the eight properties that make a Signal Rail instance coherent:| Property | What it means |
|---|---|
| Canonical destination | Write material to the file that governs its level |
| File authority | Each file owns its level — do not override one file with content from another |
| Local templates | Use the entry template inside each file as the shape for new entries |
| Entry markers | Append-driven files have an entry zone — stay inside it |
| Append zones | New entries go at the bottom of the zone, not scattered through the file |
| ID families | Use the correct ID prefix for each file (F-xx, D-xx, L-xx, P-xx, A-xx) |
| Source authority | Do not promote material whose governing source is not yet closed |
| Promotion boundaries | A strong sentence is not a decision. A useful idea is not freeze. Meet the criteria. |
Append-driven files and the entry zone
Template scaffolding
Inside the entries zone of each append-driven file you will find one or more
[TEMPLATE ONLY] blocks. These are scaffolding — they show the correct shape for a new entry in that file.- Do not delete
[TEMPLATE ONLY]blocks. They preserve the entry shape for future use and for automated tools. - Do not treat them as live entries. A
[TEMPLATE ONLY]block does not count as a real decision, latent idea, parking item, or archive record. - When you add a real entry, add it as a new block alongside the template — copy the template shape, fill in the fields, and keep the original
[TEMPLATE ONLY]block in place.
ID families
Each file that uses IDs has its own prefix family. IDs are local to their container — aD-04 in the decision log is not the same namespace as an L-04 in the latent ideas file.
| File | ID prefix | Notes |
|---|---|---|
02_protocol_freeze.txt | F-xx | Maximum 5 entries (F-01 through F-05) |
04_decision_log.txt | D-xx | No maximum |
05_latent_ideas.txt | L-xx | No maximum |
98_parking.txt | P-xx | No maximum |
99_archive.txt | A-xx | No maximum |
D-03), the cross-file reference stays in the links to field of the entry — it does not become a new local ID in the referencing file. Increment IDs sequentially and never reuse a retired ID.
Section title stability
Section titles in01_orientation.txt, 02_protocol_freeze.txt, 03_master_working.txt, 06_ai_to_ai.txt, and 08_surface_map.txt are operational anchors. Agents and the workstation navigate these files by locating specific section titles. If you rename a section, you break navigation.
Keep every section title exactly as it appears in the canonical file. Fill in the content beneath a section title — do not rename the title itself.
What to edit in each file
01_orientation.txt
01_orientation.txt
01_orientation.txt governs project identity, perimeter, and reading frame. It is what lets an agent (or a new team member) understand the project correctly without reading everything else first.What to fill in: the named sections — Project Name, What It Is, Why It Exists, Core Direction, Accepted Trade-offs, Main Boundaries, Hard Boundaries. Write about the host project, not about Signal Rail.What not to put here:- Current work, active blockers, or what you did today (that belongs in
03) - Decisions that have already been made (that belongs in
04) - Ideas that are still unresolved (that belongs in
05) - Workflow explanations or operating instructions
01 every session.02_protocol_freeze.txt
02_protocol_freeze.txt
02_protocol_freeze.txt holds identity constants — things that, if removed, would make the project stop being itself.What to fill in: F-01 through F-05 slots (maximum 5 entries). Each entry requires:id— F-01, F-02, etc.principle— the identity constant being frozenwhy it is frozen— the reasoning that makes this hard to reopenlinks to— cross-references to supporting decisions or orientation sectionsreopening trigger— the specific condition that would justify reopening this freeze
- Would the project stop being itself if this were removed?
- Are you defending a foundation, or a solution that just feels right today?
- Does this truly belong to the project’s identity — not to its current implementation?
03_master_working.txt
03_master_working.txt
03_master_working.txt is the live operational picture of the project — where it is right now, what is active, what is blocking it, and what comes next.Named sections: Project Name, Last Updated (date), Current Objective, Current Blocker, Current State, Work In Progress, Open Items That Matter Now, Real Open Questions, Active Risks, Next Step.What to update: all named sections whenever the operational picture changes. At minimum, realign these five sections at every session close:- Current State
- Work In Progress
- Real Open Questions
- Active Risks
- Next Step
D-xx IDs in 03 must point to real, existing entries in 04_decision_log.txt. Do not reference a decision ID that has not been logged yet.What not to put here: project identity (that belongs in 01), historical decisions (that belongs in 04), ideas that are still mobile (that belongs in 05).04_decision_log.txt (append-driven)
04_decision_log.txt (append-driven)
04_decision_log.txt records choices that have already won against a real alternative and are already in effect. The key test: if you cannot state what the decision won against, it is not a decision yet — it is a preference or a direction.How to add an entry:- Open the file and locate the
--- ENTRIES START ---/--- ENTRIES END ---zone - Copy the
[TEMPLATE ONLY]entry shape - Add your new entry inside the zone, after any existing entries
- Fill in all fields:
id(D-xx, next in sequence),decision,date,won against,because,links to,status - Leave the
[TEMPLATE ONLY]block in place
won against field is not optional. If it is blank, the entry is not ready to be logged.05_latent_ideas.txt (append-driven)
05_latent_ideas.txt (append-driven)
05_latent_ideas.txt holds live but unresolved material — ideas, directions, and threads that matter and need to stay visible, but are not stable enough for 04 or 02.How to add an entry:- Locate the
--- ENTRIES START ---/--- ENTRIES END ---zone - Copy the
[TEMPLATE ONLY]entry shape - Fill in:
id(L-xx),title,state,body,next step,links to - Valid state values:
new,to review,to absorb,parked,dead
next step — even if the next step is “review at next session” or “decide whether to park or promote.” An L-xx entry without a next step is incomplete.98_parking.txt (append-driven)
98_parking.txt (append-driven)
98_parking.txt holds useful material that is not active now but could matter later. Parking is not the same as archiving — parked material is still potentially live.How to add an entry:- Locate the
--- ENTRIES START ---/--- ENTRIES END ---zone - Copy the
[TEMPLATE ONLY]shape - Fill in:
id(P-xx),title,body,parked on(date),next step to reactivate it
Next Step to Reactivate It field is required. A parking entry without a reactivation path is an archive entry in disguise — move it to 99 instead.99_archive.txt (append-driven)
99_archive.txt (append-driven)
99_archive.txt holds closed, historical, superseded, or no-longer-live material. Once something is archived, it is not active and should not be referenced as current authority.How to add an entry:- Locate the
--- ENTRIES START ---/--- ENTRIES END ---zone - Copy the
[TEMPLATE ONLY]shape - Fill in:
id(A-xx),title,body,archived on(date),reason
98 instead.What never to do manually
Workstation
Use the offline HTML workstation to read, stage, and write to a live Signal Rail instance with built-in guardrails and preview.
Lateral Kernel
Understand how the lateral kernel governs agent behavior inside a Signal Rail instance — the execution layer that sits above the entry rules.