Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"name": "work-system",
"source": "./plugins/work-system",
"description": "Generic task and worktree workflow system for Claude Code. Manage tasks as markdown files, work in isolated git worktrees, and track progress through the full lifecycle.",
"version": "1.6.0"
"version": "1.7.0"
},
{
"name": "pr-flow",
Expand Down
2 changes: 1 addition & 1 deletion .claude/knowledge/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

## Features
- `features/backfill-and-origin-metadata.md` — `/backfill-knowledge` significance bar + origin-reconstruction cascade
- `features/statusline-integration.md` — Status-line segment: plugins can't own `statusLine.command`; marker-block injection
- `features/statusline-integration.md` — Status-line segments: plugins can't own `statusLine.command`; marker-block injection; the `[cks …]` + `[ws …]` two-segment coexistence and ws's never-block-on-network PR cache
- `features/herdr-kickoff-automation.md` — herdr `herdr-launch.sh`: `launch` (`/kickoff`) + `resume` (`/continue <task>` reopens an `/exit`-closed tab)
- `features/herdr-close-automation.md` — `/close` in herdr: cwd-tab teardown, plugin SessionEnd hook, the one TUI-exit primitive, detached self-exit onto idle
- `features/task-archiving-on-close.md` — `/close` archives (not deletes) the task file; adaptive commit + ff-push to main
Expand Down
20 changes: 20 additions & 0 deletions .claude/knowledge/features/statusline-integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,24 @@ The "inject a marked block into a user-owned file you don't control" pattern
recurs — `/init` does the same to `CLAUDE.md`. Idempotent marker blocks are the
plugin's standard mechanism for editing files the user also edits.

## The work-system parallel (`[ws …]`)

work-system reuses this whole pattern for its task backlog: `/work-system:statusline`
injects a **second** marker block (`# >>> work-system:ws-statusline >>>`) that renders
`[ws ○… ●… ◇… ✓…]` — `tasks/*.md` counts by state (not-started / active / in-review /
merged) with muted single-width glyphs, zero columns dropped. It owns a distinct
marker segment and coexists with `[cks …]` in one `~/.claude/statusline.sh`; the two
installers are near-identical clones (a deliberate, accepted duplication over building
a shared host library).

Non-obvious bit worth keeping: **PR state must never block a render.** `gh pr list` is
far too slow to call on every status-line paint, so `ws-statusline.sh` reads only a
short-TTL cache file in `.git/` (shared across worktrees via the common git dir; never
dirties the tree) and, when it's stale, kicks off a *detached* background `gh` refresh —
stdout/stderr closed so the host statusline's command substitution doesn't wait on the
child — that writes the cache for the *next* render. The first render after a state
change is therefore one refresh behind; an accepted trade for a never-blocking line.
A `mkdir` lock (with a stale-lock sweep) keeps concurrent renders from spawning a
refresh stampede.

Related: [skill-composition](../architecture/skill-composition.md) (shared-script single-source), [ci-structure-checks](../deployment/ci-structure-checks.md).
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ entries are grouped per plugin, newest first.

## work-system

### 1.7.0 — 2026-07-15
- Add `/statusline` skill: a `[ws ○… ●… ◇… ✓…]` task-backlog segment for Claude Code's status line. Counts `tasks/*.md` by state (not-started / active / in-review / merged) with muted single-width glyphs; PR state comes from a short-TTL `.git/` cache refreshed by a detached background `gh` call, so rendering never blocks on the network. Own marker segment coexists with the knowledge-system `[cks …]` block.

### 1.6.0 — 2026-07-02
- Add `/continue` reopen mode to recover `/exit`-closed herdr tabs.

Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ This is a **Claude Code plugin marketplace** (monorepo) containing plugins that
## Current Plugins

- **knowledge-system** (v1.5.x) — Knowledge management with three layers: Rules, Knowledge, Memory. Skills: `/init`, `/query`, `/curate`, `/reindex`, `/backfill-knowledge`, `/migrate`, `/statusline`
- **work-system** (v1.2.x) — Task and worktree workflow. Skills: `/define`, `/kickoff`, `/adopt`, `/continue`, `/status`, `/close`, `/list`
- **work-system** (v1.7.x) — Task and worktree workflow. Skills: `/define`, `/kickoff`, `/adopt`, `/continue`, `/status`, `/close`, `/list`, `/statusline`
- **pr-flow** (v1.1.x) — PR review feedback loop. Skills: `/open`, `/cycle`, `/check`, `/fix`, `/rebase`, `/merge`
- **swarm** (v0.4.x) — Local mixture-of-agents code review (external `codex`/`grok` CLIs — grok-4.5 + composer — plus Claude lenses). P2: `/swarm:review` pipeline (scope→fan-out→merge→verify); P5: `--fix`/`--loop` apply the findings you agreed with. Skills: `/swarm:review`, `/swarm:agents`

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Lightweight, native knowledge management for Claude Code projects. Three layers

Generic task and worktree workflow system. Manage tasks as markdown files, work in isolated git worktrees, and track progress through the full lifecycle. Inside a [herdr](plugins/work-system/README.md#herdr-integration) session, `/kickoff` auto-opens a tab (named after the task, shortened for the sidebar) with the worktree as cwd, starts Claude, and runs `/continue` for you; `/continue <task>` from the main session reopens that tab and resumes it if a stray `/exit` closed it; and `/close` tears the tab down again when the task is merged.

**Commands:** `/define`, `/kickoff`, `/adopt`, `/continue`, `/status`, `/close`, `/list`
**Commands:** `/define`, `/kickoff`, `/adopt`, `/continue`, `/status`, `/close`, `/list`, `/statusline`

[Documentation →](plugins/work-system/)

Expand Down
2 changes: 1 addition & 1 deletion plugins/work-system/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "work-system",
"description": "Generic task and worktree workflow system for Claude Code. Manage tasks as markdown files, work in isolated git worktrees, and track progress through the full lifecycle: create, start, continue, check, close.",
"version": "1.6.0",
"version": "1.7.0",
"author": {
"name": "gering"
},
Expand Down
1 change: 1 addition & 0 deletions plugins/work-system/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ Generic task and worktree workflow system for Claude Code. Manage tasks as markd
| `/status` | Check task status (PRs, branches, commits) |
| `/close` | Clean up after merge (worktree, branches; archives the task file) |
| `/list` | Overview of all tasks, worktrees, and status |
| `/statusline` | Add a `[ws …]` task-backlog segment to Claude Code's status line |

## How It Works

Expand Down
Loading
Loading