ws
Skill3 starsChanged 3 months agoMITView on GitHub
Create and run workstations - permanent areas for routine, repeated work (independent of projects). Actions - new WS, new subWS, new area, new routine, run, from project, list, overview. Hierarchy depth (2 or 3 levels) is fixed at creation.
The file
Show its rules and text
We split this skill into the rules it gives an agent
24 rules. About 0 are common, 10 are distinctive, and 14 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
14
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
If the requested action is ambiguous or contradictory, do NOT guess: flag it and ask for clarification before executing.
- Very specific: line 22
Every workstation is either 2-level or 3-level.
- Very specific: line 29
Before any action other than "new WS": read vault/workstations/<workstation>/areas.md, take Levels, and obey it.
- Distinctive: line 52
If the action was unknown, say so first, then show the table.
- Distinctive: line 58
Ask for anything missing: name and purpose.
- Distinctive: line 60
Creation mode: Ask how the structure should be built (in simple tier use plain words: "build as we go" vs.
- Distinctive: line 94
Add a routing map row to root CLAUDE.md (using the prefixed folder name).
- Distinctive: line 102
Check $ARGUMENTS: workstation name required.
- Very specific: line 103
Check the depth: Read Levels from vault/workstations/<workstation>/areas.md.
- Distinctive: line 104
Ask for anything missing: sub-workstation name (kebab-case) and purpose.
- Very specific: line 106
Create workstations/<workstation>/<SS>-<sub>/ — pure structure, no CLAUDE.md, no resources/outputs.
- Very specific: line 114
Check $ARGUMENTS and read Levels from areas.md.
- Distinctive: line 117
Ask for the area name (kebab-case) and purpose.
- Very specific: line 118
Ask: are runs dated? (If yes, each run reads from / writes to YYYY-MM-DD/ subfolders.)
- Very specific: line 120
2-level: read Next area from areas.md, use it as AA, add the row (Next output: 001), bump Next area.
- Very specific: line 121
3-level: read Next area from the owning sub-workstation's row, use it as AA, add the area row (ID <SS>-<AA>, folder path, Next output: …
- Very specific: line 133
Check $ARGUMENTS: the work area, addressed per the workstation's depth (<ws> - <area> at 2 levels, <ws> - <sub> - <area> at 3).
- Very specific: line 140
Write vault/workstations/<workstation>/[<SS>-<sub>/]<AA>-<area>/routine.md: frontmatter + sections Definition, Steps, Cadence, Parameters, …
- Distinctive: line 141
If revising an existing routine.md: show the diff, get approval, keep a change note in the file.
- Very specific: line 147
Check $ARGUMENTS: the work area, addressed per the depth.
- Very specific: line 155
Improve: If the run revealed a better way, propose a change to routine.md — apply only with user approval.
- Very specific: line 161
Check $ARGUMENTS: project name.
- Distinctive: line 181
Never create resources/ or outputs/ outside a work area.
- Very specific: line 188
All created folder and file names follow the Latin-alphabet kebab-case convention (root CLAUDE.md, Output Hygiene & Naming).
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Task
Execute the requested action: $ARGUMENTS
Calling rule: /ws <action> <arguments>.
If the requested action is ambiguous or contradictory, do NOT guess: flag it and ask for clarification before executing.
Core principle: work is done at work-area level only. Workstations and sub-workstations are organizational structure for routines — the same rule work packages carry on the project side (root CLAUDE.md, Hierarchy Protocol). Projects are for temporary activity (done once); workstations are for repeated activity.
Tier check (read axiom-config.md first): in simple tier, every workstation is 2-level — do not ask the depth question, do not mention 3-level structure, and manage numbering silently. In advanced tier, follow the depth rules below in full.
Hierarchy depth (advanced tier — read before any action)
Every workstation is either 2-level or 3-level. The depth is chosen when the workstation is created and recorded in its registry as Levels: **2** or Levels: **3**.
| Depth | Chain | Sub-workstations | Addressing |
| 2-level | Workstation → Work Area (WA) | Not allowed | <ws> - <area> |
| 3-level | Workstation → Sub-workstation → Work Area (WA) | Mandatory — every WA lives in one | <ws> - <sub> - <area> |
Before any action other than "new WS": read vault/workstations/<workstation>/areas.md, take Levels, and obey it. WA numbers restart at 01 inside each sub-workstation, so at 3 levels a WA is identified only together with its sub-workstation — always address it that way.
The depth is locked. This skill never converts a workstation between 2 and 3 levels. If the user asks for it, refuse and point to /setup new (Setup Protocol): the change is drafted as a setup file, executed once, and archived to setup/done/.
If action is empty
Describe this skill: its purpose and the actions table from "overview". Do not execute anything.
If action is "overview" (or unknown)
| Argument | Action |
new WS | Create a workstation (structure + rules, including the depth choice in advanced tier) |
new subWS <workstation> | Create a sub-workstation. Advanced tier, 3-level workstations only |
new area <workstation>[ - <sub>] | Create a work area — the work unit |
new routine <area> | Create or revise the routine definition (vault routine.md) |
run <area> | Execute the routine per its definition and record the run |
from project <project> | Derive a workstation from an existing project |
list | All workstations: areas, cadence, last run |
overview | This table |
If the action was unknown, say so first, then show the table.
If action is "new WS"
- Ask for anything missing: name and purpose. Derive the kebab-case folder name (Latin alphabet only) and confirm if it differs.
- Depth. Simple tier: 2-level, silently. Advanced tier: ask for the hierarchy depth (2 or 3 levels) — show the table above and state plainly that the choice is fixed and can only be changed later through a setup file. Do not default silently.
- Creation mode. Ask how the structure should be built (in simple tier use plain words: "build as we go" vs. "map out all routines now"):
- Agile (default) — create the workstation shell now; sub-workstations and work areas are added incrementally via
new subWS/new areaas routines emerge. Continue with the steps below unchanged. - Predictive — map the full routine landscape upfront: interview for the complete inventory of recurring activities — what is repeated, how the activities group, cadence per activity (accept a pasted list or build it through questions). Analyze it and map it to the hierarchy — 3-level: groups → sub-workstations, activities → WAs; 2-level: activities → WAs; flag groupings that don't fit the fixed depth and propose merges/splits. Present the full proposed tree with final names (kebab-case, acronym and number prefixes per the naming convention) and wait for approval. Then scaffold everything in one pass: all registry rows allocated in order, all folders, all vault mirror nodes (
runs.mdper WA, purpose seeded from the inventory). Routine definitions are not written in bulk — after scaffolding, offernew routinearea by area.
- Agile (default) — create the workstation shell now; sub-workstations and work areas are added incrementally via
- Derive a workstation acronym (2 uppercase letters). Confirm it with the user and check it is globally unique — scan every
vault/workstations/*/areas.md(Acronym:line) and everyvault/projects/*/ids.md(Acronym:line); workstations and projects share one namespace, so folder prefixes never collide acrossworkstations/andprojects/. - Create
workstations/<ACR>-<name>/— the confirmed acronym as an uppercase prefix, then the kebab-case name (e.g.MK-marketing) — containing onlyCLAUDE.md— sections: Identity (what this workstation is, what routes here — state the depth here too), Goals (link to vault goals page), Work Areas (table: area, routine, cadence — filled as areas are created), Rules (workstation-specific). Vault (same
ACR-prefix): createvault/workstations/<ACR>-<name>/withgoals.md,status.md, andareas.md— the registry, the WS analogue of a project'sids.md. Frontmatter + [[wiki links]]. The shape follows the depth:2-level — one counter for work areas:
Acronym: **MK** Levels: **2** Next area: **01** | AA | Work area (folder) | Next output | | -- | ------------------ | ----------- |3-level — a sub-workstation counter, plus one area counter per sub-workstation:
Acronym: **MK** Levels: **3** Next sub-workstation: **01** | SS | Sub-workstation | Next area | | -- | --------------- | --------- | | ID | Work area (folder path) | Next output | | -- | ----------------------- | ----------- |Next outputis the running number in produced filenames (Output Hygiene & Naming); it starts at001in every new work area. There are no task IDs on the workstation side.- Add a routing map row to root CLAUDE.md (using the prefixed folder name).
- Suggest the next structural step — agile mode: a sub-workstation for 3-level workstations, the first work area for 2-level ones; predictive mode: the structure already exists — offer
new routinefor the first area instead.
If action is "new subWS"
- Simple tier: explain that sub-workstations belong to advanced mode and offer
/axiom tier advanced. Do not create anything. - Check $ARGUMENTS: workstation name required; if missing or unknown, list workstations and ask.
- Check the depth. Read
Levelsfromvault/workstations/<workstation>/areas.md. If the workstation is 2-level, refuse: it has no sub-workstations. Offer the two legitimate paths — create a work area directly under the workstation, or convert to 3 levels via/setup new. Never create it anyway. - Ask for anything missing: sub-workstation name (kebab-case) and purpose.
- Allocate the number first (the folder is named after it): read
Next sub-workstationfromareas.md, use it asSS, add its row (number, name,Next area: 01), bump the counter (monotonic, never reused). - Create
workstations/<workstation>/<SS>-<sub>/— pure structure, no CLAUDE.md, no resources/outputs. - Vault: create
vault/workstations/<workstation>/<SS>-<sub>/withgoals.md. Update the workstation CLAUDE.md Work Areas table. - Suggest creating the first work area inside it.
If action is "new area"
- Check $ARGUMENTS and read
Levelsfromareas.md. Workstation required; if missing or unknown, list workstations and ask. Then check the form against the depth:- 3-level, no sub-workstation given → refuse. Every WA must live in one. List the sub-workstations and ask which, or offer
new subWSfirst. - 2-level, a sub-workstation given → refuse. The area goes directly under the workstation.
- 3-level, no sub-workstation given → refuse. Every WA must live in one. List the sub-workstations and ask which, or offer
- Ask for the area name (kebab-case) and purpose.
- Ask: are runs dated? (If yes, each run reads from / writes to
YYYY-MM-DD/subfolders.) Allocate the area number first (the folder is named after it), from the counter that matches the depth:
- 2-level: read
Next areafromareas.md, use it asAA, add the row (Next output: 001), bumpNext area. - 3-level: read
Next areafrom the owning sub-workstation's row, use it asAA, add the area row (ID<SS>-<AA>, folder path,Next output: 001), bump that sub-workstation'sNext area. Area numbers restart at 01 in every sub-workstation.
Numbers are monotonic and never reused. Create
workstations/<workstation>/[<SS>-<sub>/]<AA>-<area>/withresources/andoutputs/.- 2-level: read
- Vault: create
vault/workstations/<workstation>/[<SS>-<sub>/]<AA>-<area>/— same numbered folder — withruns.md(empty history). Update the workstation CLAUDE.md Work Areas table. - Offer to continue with
new routine— without a routine,runhas nothing to execute.
If action is "new routine"
Creates or revises the routine definition for a work area. Nothing is executed here. A work area holds exactly one routine — the routine is a document inside the WA, not a level of its own.
- Check $ARGUMENTS: the work area, addressed per the workstation's depth (
<ws> - <area>at 2 levels,<ws> - <sub> - <area>at 3); resolve or ask. - Interview, one block at a time, only what is open:
- What are the steps? (concrete, numbered — tools, sources, checks)
- Cadence: how often, triggered by user or by schedule later?
- Parameters: what varies per run?
- Expected outputs: what is produced, format, where?
- Comparisons: what should each run be compared against (previous run, baseline, threshold)?
- Write
vault/workstations/<workstation>/[<SS>-<sub>/]<AA>-<area>/routine.md: frontmatter + sections Definition, Steps, Cadence, Parameters, Outputs, Comparisons. - If revising an existing routine.md: show the diff, get approval, keep a change note in the file.
If action is "run"
- Check $ARGUMENTS: the work area, addressed per the depth; resolve or ask. If no
routine.mdexists: suggestnew routinefirst. - Prepare. Read
routine.mdand the recent entries ofruns.md. If runs are dated: createoutputs/YYYY-MM-DD/(and readresources/YYYY-MM-DD/if inputs are dated); else use the folders directly. The dated folder is the one place a date belongs — files inside it still follow the naming rule (<acr>-<address>-<NNN>-<name>, number from the area'sNext output), never a date prefix. - Execute the steps as defined. Ask only when a parameter is undefined.
- Compare against previous runs per the Comparisons section (trends, anomalies).
- Record:
- Append to
runs.md: date, parameters, result summary, anomalies, link to output folder. - Promote durable insights to
vault/knowledge/pages, cross-linked from the run entry. - Update workstation
status.md.
- Append to
- Improve. If the run revealed a better way, propose a change to
routine.md— apply only with user approval.
If action is "from project"
- Check $ARGUMENTS: project name; resolve against
projects/or ask. - Clarify: which activity of the project becomes the routine? What carries over?
- Execute "new WS" — the depth is asked fresh (advanced tier), not inherited from the origin project, and it gets its own acronym (globally unique, so it cannot reuse the origin project's). Then "new area" (and "new subWS" first if 3-level) and "new routine", using the project's vault knowledge (goals, decisions, WP outputs) as input.
- Cross-link: workstation vault pages reference the origin project's pages. The project itself is not modified or deleted.
If action is "list"
Table: workstation | depth | work areas (with sub-workstation where 3-level) | cadence (from routine.md) | last run (from runs.md) | status note.
After any action
- Append to
vault/log.md, updatevault/index.mdif pages changed. - Report the created/changed structure as a tree (structure actions) or the run summary (run).
Notes
- Never create resources/ or outputs/ outside a work area.
routine.mdis procedural memory,runs.mdepisodic, promoted insights semantic (vault/knowledge/). Do not bury durable knowledge in runs.md.- Workstations are independent of projects; "from project" copies knowledge, never moves it.
- The workstation folder itself carries the acronym prefix —
<ACR>-<name>(e.g.MK-marketing), inworkstations/and in the vault mirror. The acronym lives in the workstation'sareas.mdand is globally unique across projects and workstations. In the actions above,<workstation>means the acronym-prefixed folder name. Only the name part may later be renamed — the acronym prefix is fixed. - Sub-workstation folders carry the
SS-number prefix, work-area folders theAA-prefix, both nested inside the acronym-prefixed workstation folder inworkstations/and in the vault mirror. Only the name part may later be renamed; the prefixes are fixed, and a freed number is never reused. - In a 3-level workstation, area numbers are not unique on their own (each sub-workstation restarts at 01). Always address a WA together with its sub-workstation.
- There are no tasks and no task IDs on the workstation side — that protocol is project-only.
- All created folder and file names follow the Latin-alphabet kebab-case convention (root CLAUDE.md, Output Hygiene & Naming); the uppercase acronym prefix is the one exception, alongside the numeric
SS-/AA-prefixes.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

