Skip to content
cccskills
FreePublished on GitHub

dock-state

The Dock's agent-state folds — one fenced source of truth in @kolu/terminal-vocab, the load-bearing order≠colour split, and the one "is something happening" question. Use when editing agentProjection or the canvas dock.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md3.3 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

The Dock's agent-state folds

kolu's on-canvas Dock (packages/client/src/canvas/dock) renders agent state through fenced folds that live once in @kolu/terminal-vocab/agentProjection.

  • One source of truth. The agent-state vocabulary — how AgentInfo['state'] folds to a coarse class — lives once in agentProjection, as state satisfies never-fenced folds: agentUrgency (needs-you ranking), agentPaintClass (pip/glyph colour), attentionClass + attentionActive (which attention list a terminal is in, and whether something is happening in it), alertClass (notify membership). Never re-derive any of these with a hand-rolled switch over the state literals — import the fold. A new state literal must force one decision, in the fenced fold, not silently route through a copy.

  • The order≠colour split is load-bearing — don't collapse it. A just-finished waiting agent RANKS idle (agentUrgency) but PAINTS linger (agentPaintClass) — the dimmed "it just finished" cue, distinct from the full-strength awaiting a genuinely blocked agent wears. Every surface keeps that decoupling. Since #2141 no dock surface SORTS at all (row order is structural), so the live form of the split is select by paint, colour by paint, and never re-derive either from metadata: the pinned needs-you strip takes its membership from pip (the attention class), the same fold its violet capsule paints from — see statePipBind's asking, which names itself the ONE test for "blocked on you". awaiting_user (genuinely blocked) is what earns the strip; waiting (the post-turn lull) does not. agentUrgency remains the shared RANK vocabulary, still pinned by the dock parity test.

  • "Is something happening" is ONE question with ONE answer. attentionActive(attentionClass(agent, finished), live) decides a mark's MOTION and every count that summarises a scope — a host tab, a repo section header. Never fold your own notion of busy for a count: four such notions once coexisted, and every attention bug in PR #2019 was two of them disagreeing (a tab reading 2 beside three moving marks). It takes padi's EF2 finish verdict and raw byte motion as well as the agent state, so it lives beside — not inside — the state-only folds above.

  • The folds' home is settled — don't repatriate them. They live in the shared @kolu/terminal-vocab package even though the Dock is today their only paint consumer. That is history, not misplacement: the browser fleet mirror (pulam-web) they once also served died with the pulam world (the W2.3 burial deleted every pulam* package), and padi-tui is deliberately not a paint mirror (a thin uncoloured status/watch/wait/create CLI — no needs-you sort, no paint classes, no alert). Judging a fold's home by today's consumer count and "tidying" it into a kolu-local module is churn, not structure — and if a fleet mirror ever returns, it consumes these same folds, and the old two-surface sync contract (git history of this file) revives with it.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Write a kolu blog post grounded in the real build history — mine the Claude Code session logs behind a feature for the actual story (for large efforts, fan out over the transcripts with an ultracode workflow), draft it in the author's voice, and wire it into the Astro site. Use when asked to write a blog post or engineering essay about something that was built, especially one that should read as a narrative of what actually happened rather than invented marketing copy.

The English summary is being prepared. Showing the original description.

juspay/kolu82Updated Oct 21, 2026

ci

Free

Run this repo's CI end-to-end — kolu's policy on top of the odu runner: banned opt-out flags, x86_64-linux pinning, pool upkeep, fail-fast surfacing, e2e timing evidence, and the green-gate. Triggers on "run CI", "drive CI", "re-run the pipeline", "close the red check", "warm the pool". Runner mechanics live in the `/odu` skill.

The English summary is being prepared. Showing the original description.

juspay/kolu82Updated Oct 21, 2026

Launch the kolu dev server on two RANDOM free ports so it never collides with the running production `kolu.service`, remember the ports for the rest of the session, and tear down only the dev instance. Load before running the app locally — for evidence capture, driving a live kolu with the chrome-devtools MCP, or any `just dev` you'd otherwise run by hand. Triggers on "run kolu locally", "launch the dev server", "boot kolu", "drive a live kolu", "start the app to screenshot it", or before pointing chrome-devtools at a local kolu.

The English summary is being prepared. Showing the original description.

juspay/kolu82Updated Oct 21, 2026

Classify, write, and audit documentation per Diátaxis (diataxis.fr) — the four-quadrant method (tutorials · how-to guides · reference · explanation). Encodes the compass as a decision procedure, each quadrant's contract as hard rules, and an executable mixed-mode audit. Project-agnostic; the per-repo doc-location mapping lives in a repo rule of the project's own (kolu: the Kolu overlay below). Use when writing any user-facing doc, structuring a docs site, or auditing existing docs for mixed modes.

The English summary is being prepared. Showing the original description.

juspay/kolu82Updated Oct 21, 2026

E2E test conventions — semantic selectors, arrange-steps that prove the process started, runtime markers that cannot match the shell echo, and absolute-path tool invocations. Use when writing or changing a .feature scenario under packages/tests.

The English summary is being prepared. Showing the original description.

juspay/kolu82Updated Oct 21, 2026

Produce visual PR evidence — a screenshot or video — whenever a change has on-screen impact. Tests are never a substitute; a change can be backend by cause and visible by effect. Capture via the project's e2e harness on a pu box, or by driving a live kolu with the chrome-devtools MCP; host on a GitHub release and post a `## Evidence` comment. Triggers on "post evidence", "screenshot the change", "record a video of this", "show it working", "prove it", or finishing any change whose effect is visible on screen.

The English summary is being prepared. Showing the original description.

juspay/kolu82Updated Oct 21, 2026

See all skills by juspay

Report a problem with this skill