Work
Formalization mode — actually do the work. Activates the rigor pose — emits claims, runs the verifier loop, keeps research state live, surfaces /think-rigorously patterns silently. Third of five core commands (start → explore → work → check → wrap). Use when committed to a specific problem and ready to derive, prove, compute, or analyze with rigor. Re-runnable mid-session if the rigor pose has slipped.From its SKILL.md
npx -y skills add frodo2647/triptych --skill workAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.9 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it
/work
The default mode for actually solving the problem. Where the verifier runs, claims get emitted, the research state stays live, and the domain mentor surfaces patterns silently.
/work is what makes Triptych Triptych. Most session time is spent here.
When to use
- After
/start(formalization phase) → straight into/work. - After
/explorecrystallizes into a specific question →/work <crystallized goal>. - Mid-session when rigor has slipped (verifier stopped, claims aren't being emitted) →
/workre-establishes the pose. - When the user says "let's derive," "let's compute," "prove this," "let me solve for X."
Step 1: Check / seed research state
Read session and research state:
import sys; sys.path.insert(0, '.')
from core.session import read_session
from core.research import read_state
s = read_session()
state = read_state()
Three cases:
- No goal in session — say "No goal yet. Run
/startfirst, or pass one:/work <goal>." Exit unless goal arg was supplied. - Phase is exploration — switch to formalization. Confirm with user briefly: "Crystallizing on
<goal>. Switching to formalization mode." Theninit_research(goal)to seed state.md + deps.json + session.json with phase=formalization. - Phase is formalization, state already seeded — proceed.
If /work was called with args (/work <sub-goal>), the args either replace the goal (rare — usually means re-starting) or refine it as a sub-question. Ask the user which they meant if ambiguous.
Step 2: Activate the rigor pose
Three things have to be live during /work:
1. Research state visible:
from displays import show_research
show_research()
This pins the Research State tab (Alt+2). It auto-updates as emit_claim, add_established, etc. fire.
2. Verifier loop running (only if claims will be emitted):
/loop 60s /verifier
Start it before the first claim. If it's already running from this session, no-op.
3. Domain mentor primed. Read CLAUDE.local.md ## Domains. The relevant mentor (/physics-in-triptych, /math-in-triptych, /ml-in-triptych) is now active by tag — its rigor patterns and pitfall warnings should surface naturally as the work proceeds.
Step 3: Surface /think-rigorously patterns silently
Before the first equation / step / experiment, run a one-minute self-audit on the goal:
- Type / dimension check — what are the symbols, what are their types/units?
- Decompose — is the problem small enough to hold in one screen? If not, name the parts.
- Bound-then-refine — order-of-magnitude envelope before precise computation.
- Sanity at limits — what should the answer reduce to in the trivial cases?
- Falsifiability — what would change my mind?
- What's missing? — what assumption is silently load-bearing?
These are silent during /work (mention only when one changes a result), audible during /explore (use as Socratic prompts).
Step 4: Emit claims as they become real
Whenever the work produces a non-trivial assertion (a derivation step, a computed result, a key intermediate, a new equation), emit a claim:
from core.verify import emit_claim
emit_claim(
"<the claim, in plain language or notation>",
"<one-line context: what operation produced it>",
depends=["A1", "C2"], # IDs of upstream assumptions/claims
)
The verifier loop drains the queue async — don't block on it. Poll results when a downstream decision depends on a claim:
from core.verify import read_verification_results
new = read_verification_results() # only entries since last poll
for r in new:
if r['type'] == 'result':
process_result(r['claimId'], r['status'], ...)
For the load-bearing assumptions in this work, register them so they show up in the dependency graph (and the assumptions display, if used):
from core.research import add_node
add_node('A1', 'assumption', 'Small-angle regime', 'provisional')
Step 5: Surface assumptions and claims-in-flight (when applicable)
If the work has non-trivial assumptions, show them:
from displays import show_assumptions
show_assumptions(from_research=True, subtitle='for the <goal>')
If claims are actively in flight, show the verification timeline:
from displays import show_claims_status
show_claims_status(subtitle='for the <goal>')
These don't have to be live — but if the work has more than two or three of either, surface them rather than burying them in prose.
Step 6: Suggest the next move
Don't auto-chain — just surface options as work progresses:
- Major result just established → "Good time to
/check?" - Stuck for 15+ minutes → "Want to
/exploreother framings?" - Session winding down → "Ready to
/wrap?"
Args
/work— activates rigor pose for the current goal in session./work <sub-goal>— refines on a sub-question; or, if no session goal yet, sets it directly.
Hard rules
- Don't start the verifier loop if no claims will be emitted. Pure analytical writing or design conversation doesn't need it. Use judgment.
- Don't mention rigor patterns unless one changes a result. They're silent during formalization; the user doesn't need a checklist read aloud.
- Re-runnable mid-session is a feature, not a problem. If rigor has slipped, the user can call
/workagain and the state gets re-pinned. /workdoesn't drive autonomy. For autonomous problem-solving without the human, use/autonomousdirectly — that's a different mode.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.