Vibe Implement
idiotLeoLYJ/Daliu-Awesome-Skills
Vibe Coding 流水线的实现阶段(流水线终点,顺序 idea → interaction → architecture → design → prototype → implement)。当 interaction.md、architecture.md、design.md、prototypes/ 已就绪,用户说"开始实现""写代码""把设计落地""进入开发""implement /…
Fan out a converged devague plan's dependency waves to parallel agents in isolated git worktrees, one agent per task per wave, with TDD-gated merges by the main agent.
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add agentculture/culture --skill assign-to-workforce -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install agentculture/culture assign-to-workforce --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/agentculture/culture.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/assign-to-workforce .claude/skills/assign-to-workforce && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "assign-to-workforce" agent skill from https://github.com/agentculture/culture/tree/main/.claude/skills/assign-to-workforce into .claude/skills/assign-to-workforce/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "assign-to-workforce", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/agentculture/culture/tree/main/.claude/skills/assign-to-workforceType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add agentculture/culture --skill assign-to-workforce -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install agentculture/culture assign-to-workforce --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agentculture/culture.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/assign-to-workforce .agents/skills/assign-to-workforce && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "assign-to-workforce" agent skill from https://github.com/agentculture/culture/tree/main/.claude/skills/assign-to-workforce into .agents/skills/assign-to-workforce/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "assign-to-workforce", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add agentculture/culture --skill assign-to-workforce -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install agentculture/culture assign-to-workforce --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agentculture/culture.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/assign-to-workforce .cursor/skills/assign-to-workforce && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "assign-to-workforce" agent skill from https://github.com/agentculture/culture/tree/main/.claude/skills/assign-to-workforce into .cursor/skills/assign-to-workforce/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "assign-to-workforce", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/agentculture/culture.git --path .claude/skills/assign-to-workforce--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add agentculture/culture --skill assign-to-workforce -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install agentculture/culture assign-to-workforce --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agentculture/culture.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/assign-to-workforce .gemini/skills/assign-to-workforce && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "assign-to-workforce" agent skill from https://github.com/agentculture/culture/tree/main/.claude/skills/assign-to-workforce into .gemini/skills/assign-to-workforce/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "assign-to-workforce", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install agentculture/culture assign-to-workforceInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add agentculture/culture --skill assign-to-workforce -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/agentculture/culture.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/assign-to-workforce .github/skills/assign-to-workforce && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "assign-to-workforce" agent skill from https://github.com/agentculture/culture/tree/main/.claude/skills/assign-to-workforce into .github/skills/assign-to-workforce/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "assign-to-workforce", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add agentculture/culture --skill assign-to-workforce -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install agentculture/culture assign-to-workforce --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agentculture/culture.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/assign-to-workforce .opencode/skills/assign-to-workforce && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "assign-to-workforce" agent skill from https://github.com/agentculture/culture/tree/main/.claude/skills/assign-to-workforce into .opencode/skills/assign-to-workforce/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "assign-to-workforce", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
assign-to-workforceFan out a converged devague plan's dependency waves to parallel agents in isolated git worktrees, one agent per task per wave, with TDD-gated merges by the main agent.
Assign To Workforce is an agent skill from agentculture/culture. Fan out a converged devague plan's dependency waves to parallel agents in isolated git worktrees, one agent per task per wave, with TDD-gated merges by the main agent. Human gates: the exported spec, the implementation split plan (task map + per-task agent/model proposal + go/no-go), and the final PR. The devague CLI stays deterministic and non-orchestrating (20) — it only describes the graph via devague plan waves; the operator (main agent) performs the fan-out. Use when the user says "assign to workforce", "fan…
Its SKILL.md is about 6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/assign-to-workforce.sh`).
It sits in Agent Workflows, covering Subagents, Git worktrees and Feature launches and release readiness. The repository describes itself as: Culture turns isolated stochastic agents into cooperative, inspectable, improvable artificial colleagues. The licence is Apache-2.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 5d12851. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
gitbashuvFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and uv, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Assign To Workforce loads about 6k tokens when it runs. Until then it costs about 209 tokens; SKILL.md has 3,010 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found patterns that need a careful read before installing.
human here. Do not pause for human approval between wave tasks.Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from agentculture/culture at commit 5d12851, republished under its Apache-2.0 licence (© agentculture). 3,010 words, ~5,983 tokens.
.claude/skills/assign-to-workforce/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.The skill is named assign-to-workforce; the product/CLI it reads is the
devague plan waves command. (The prior leg — turning a spec into a plan —
is the sibling /spec-to-plan skill.)
assign-to-workforce takes a converged devague plan and fans out its
dependency waves to parallel agents (subagents, teammate agents, or generalist
agents) — one agent per task per wave — each working in an isolated git
worktree. The main agent merges each completed worktree gated by TDD. The
human owns exactly three gates: the exported spec, the implementation split
plan, and the final PR.
The devague CLI is never orchestrated by devague itself — devague plan waves describes the dependency graph (#20); it does not spawn agents, manage
worktrees, mark tasks done, or pick a backend. The fan-out is the operator's
job — this skill and the main agent perform it.
The entry point is scripts/assign-to-workforce.sh. Invoke it from the
repository whose plan you are implementing (plans persist under .devague/
in the current directory):
bash .claude/skills/assign-to-workforce/scripts/assign-to-workforce.sh split-plan [--plan <slug>] [--write]
bash .claude/skills/assign-to-workforce/scripts/assign-to-workforce.sh waves [--plan <slug>] [--json]
bash .claude/skills/assign-to-workforce/scripts/assign-to-workforce.sh helpIt resolves the CLI portably — an installed devague on PATH (the normal
case), falling back to uv run devague when you are inside the devague
checkout, else an install hint. The split-plan subcommand reads
devague plan waves --json — the enriched payload (devague#53 t9) that
carries every active task's summary, instruction, acceptance criteria, and
covered targets keyed by task id — and renders the human-facing
implementation split plan: task map (task id, wave, summary verbatim, whether
an instruction is present, acceptance-criteria count), proposed per-task
agent + model assignment, the go/no-go question, and — last — an End state
section that is the verbatim output of devague plan deliverables (#70),
degrading to a one-line hint on a devague too old to have the verb. Adding
--write (issue #82) additionally persists that same content — plus an
owner/model annotation table the script reads back on the next --write —
to a durable file next to the exported plan-md; see The durable split
artifact below. The waves subcommand forwards to devague plan waves
verbatim.
| Subcommand | What it does |
|---|---|
split-plan [--plan S] [--write] | Read devague plan waves --json and print the implementation split plan — task map (summary/instruction/acceptance-criteria count, verbatim) with per-task agent + model proposal, go/no-go, and a trailing End state section quoting devague plan deliverables verbatim (one-line hint on an older devague) — ready for human go/no-go review. With --write, also persist that content to docs/plans/<created-date>-<slug>-split.md (issue #82) — the durable gate-2 record; re-running overwrites the same path in place and preserves any hand-edited Owner/Model cells. |
waves [--plan S] [--json] | Forward to devague plan waves [--json]. Read-only; lists wave batches. On a converged plan exits 0 listing the waves. |
help | Print usage. |
The flow has three human gates and one automated TDD merge loop.
The plan is seeded from a converged frame (devague plan new --frame <slug>).
The human reviewed and approved the spec when it was exported by the /think
skill. No re-approval needed here — the spec gate is already closed.
Before any task is assigned, the main agent presents the implementation split plan for human go/no-go. This is the only gate the human owns at the implementation stage (per task, the TDD gate is the main agent's).
The split plan contains:
devague plan waves --json (no
operator paraphrasing).devague plan deliverables (#70):
what the plan actually produces — confirmed after-state claims, terminal
tasks with acceptance criteria, and surviving open items. Present this to
the human alongside the go/no-go question, not just the task map — approving
a fan-out without seeing the world it produces is the gap this closes. On a
devague too old to have the verb, this degrades to a one-line hint naming
the minimum version instead of failing the split plan.The human may edit any row (agent type, model, scope) before approving. The plan is model-agnostic — devague does not pick a backend (#20).
Run split-plan to print the proposed table:
bash .claude/skills/assign-to-workforce/scripts/assign-to-workforce.sh split-planDo not proceed to fan-out until the human approves the split plan.
split-plan --write)Unlike the exported spec (docs/specs/*.md) and the exported plan
(docs/plans/*.md), the implementation split plan — gate 2 — survived only
in conversation before issue #82. split-plan --write closes that gap with
an artifact-only change (decision c25): the written file is the record;
there is no plan-schema change and no new devague CLI verb, so devague plan waves/show/deliverables stay read-only exactly as before.
bash .claude/skills/assign-to-workforce/scripts/assign-to-workforce.sh split-plan --writeThis writes (or overwrites) docs/plans/<created-date>-<slug>-split.md —
the same date-prefix convention devague plan export uses for the plan-md
it sits beside, derived from the plan's own created timestamp (via
devague plan show --json) rather than today's date, so re-running the
command is idempotent: it updates the same file in place instead of spawning
a dated duplicate. The file carries:
devague plan waves --json, organized under one ## Wave N heading
per wave and one ### <task-id> — <summary> heading per task.Task | Owner | Model) — the durable form
of the human's per-task owner/model decision (#82 ask 2). The script
reads this table back from any existing file at the same path before
regenerating: a human's edited Owner/Model cell for a given task id
survives the next --write, matched by task id, rather than being
clobbered back to the sonnet default. Only edit this table (or add a
new plan/task and re-run) — don't hand-edit the wave/task sections above
it, since those are fully regenerated every run.split-plan — the verbatim output of
devague plan deliverables, nested under its own ## End state heading.Present this file (or its stdout twin from plain split-plan) at the go/no-go
either way; --write is for keeping a committed record of what was actually
approved, not a replacement for the live review.
waves --json payload — the single source for every briefdevague plan waves --json emits {"plan": "<slug>", "waves": [[...], ...], "tasks": {...}} — the ordered dependency-wave batches plus a top-level
tasks object keyed by task id, each entry carrying that task's full working
contract:
{
"plan": "<slug>",
"waves": [["t1"], ["t2", "t3"]],
"tasks": {
"t1": {
"summary": "<task summary>",
"instruction": "<verbatim instruction, or \"\" if none>",
"acceptance_criteria": ["<criterion>", "..."],
"covers": ["<c*/h* id>", "..."]
}
}
}This one payload is enough to build a per-subagent brief with no external
context — no need to also read devague plan show --json or the exported
plan-md. split-plan reads it to render the task map above; the fan-out step
below reads the same payload to build each task agent's brief. Quote
summary, instruction, acceptance_criteria, and covers verbatim
into every brief — never paraphrase them. (Documented identically in the
sibling /spec-to-plan skill, since both skills consume the same payload —
stay consistent if either changes.)
Once the human approves, the main agent fans out each wave in order:
Create an isolated git worktree for each task in the current wave,
inside this repo's own worktree root — .worktrees.<repo-name>, a
sibling of the repo directory:
repo_root=$(git rev-parse --show-toplevel)
wt_root="$(dirname "$repo_root")/.worktrees.$(basename "$repo_root")"
git worktree add "$wt_root/agent-<task-id>" -b agent/<task-id>Never use a bare ../worktrees/ or an in-repo path. The
.worktrees.<repo-name> root is mandatory for three reasons:
../worktrees/ in a multi-repo
parent directory looks like anyone's scratch space; a directory named
after your repo is visibly owned, so another agent or human cleaning up
their own worktrees won't sweep away a live fan-out mid-wave.t1 in every repo and
every plan, so ../worktrees/agent-t1 from two concurrent repos is the
same path. Namespacing by repo name keeps concurrent fan-outs disjoint..worktrees/,
.claude/worktrees/) puts N checkouts inside the tree you are about to
commit and PR — git add -A sweeps them in and git clean -fdx destroys
them. Outside the repo, neither can touch them.Spawn a task agent inside that worktree (using the approved model from the split plan), with:
devague plan waves --json (see The waves --json payload above). No operator
paraphrasing anywhere in this flow: the plan text is the contract the
user confirmed, and a reworded brief silently drifts from it. If a task
has no instruction (""), say so rather than inventing one.LAPSE_CODES in devague/frame.py. The task agent names it
in its transcript or final report; it never runs devague lapse itself,
because it never runs any devague command inside its worktree (see the
hard rule below). The main agent files the record (devague lapse "<what>" --code <code> --origin llm) the moment the task agent reports
it — not deferred to closeout — since written late is written
flattering.Same-wave tasks run in parallel (within-wave tasks have no inter-task dependency; the dependency graph guarantees this). Same-file overlap surfaces as a merge conflict at reconcile time, not a live race — isolated worktrees prevent clobbering.
Wait for all tasks in the wave to complete before starting the next wave.
For each completed task worktree, the main agent:
Runs the task's tests before merge (on the main branch): baseline must pass (or the relevant tests must be absent — the task adds them).
Merges the worktree branch into the main branch:
git merge --no-ff agent/<task-id>Runs the task's tests after merge: they must pass. If they do not, the merge is reverted and the task agent is given the failure output to fix.
Removes the worktree once the merge is accepted:
git worktree remove "$wt_root/agent-<task-id>"Remove only the worktrees this run created — never rm -rf the
.worktrees.<repo-name> root itself, and never touch another repo's
worktree root. A concurrent fan-out may be live inside it.
The human does not review individual task merges. Per-task acceptance is the main agent's responsibility — the TDD gate (tests pass before AND after merge) plus the task's acceptance criteria. This mirrors the non-authoritative working state pattern of the Human Review Loop (#17): per-task merge records are uncommitted working state; the authoritative human gate is the final PR.
Advance to the next wave only after all tasks in the current wave are merged and their tests pass.
Once all waves are merged and the full test suite passes, the main agent opens
a PR via the cicd skill (agex pr open). The human reviews and merges. This
is the last and only remaining human gate.
Two hand-offs bracket execution — one that can fire mid-run, one that always fires after the final PR merges:
/deviate. If a task agent (or the main agent)
discovers the confirmed plan no longer matches reality partway through a
wave, that is not a silent edit to this run — stop, get explicit human
approval for the divergence, and record it via the sibling /deviate
skill (devague deviate) before resuming the fan-out. This is not a fourth
standing gate; it is the human owner of gate 2 approving an amendment to it
in-flight./validate-delivery, then /summarize-delivery.
Once the final PR is merged, close the execution loop cleanly instead of
stopping at a green merge:
a. Validate delivery. Run the sibling /validate-delivery skill —
the execution-to-evidence leg. It runs the plan's behavioral tests
agent-side and files what it found (obligations met, evidence, and any
behavioral deltas) via the devague CLI; a failing or unchecked outcome is
filed and reported exactly as such, never rounded up.
b. Summarize the delivery. Run the sibling /summarize-delivery
skill — the delivery-side closure leg. It turns the run into a committed
accountability artifact (docs/deliveries/<created-date>-<slug>.md) that
records planned-versus-actual delivery, the mid-work decisions the
workforce made, where execution drifted from the plan, evidence-backed
delivery claims (a claim without evidence stays unverified, never
asserted as done — the strength ladder now draws on what
/validate-delivery filed), and any remaining work. The devague plan waves --json payload you fanned out is the planned-work baseline it
compares actuals against.
c. Both close partial and failed runs too. Neither skill requires every
wave to have merged — a run that shipped only some tasks, or none, still
produces a truthful record: the failure lands under drift and remaining
work, and no claim says done without evidence.This is the accountability wrap-up after the three gates, not a fourth gate —
/deviate, /validate-delivery, and /summarize-delivery are all method-only
and record- or read-only (#20): none of them orchestrate, gate merges, or
mutate devague state beyond their own append-only records. Don't stop at "PR
merged" — the standing flow is merge, then /validate-delivery, then
/summarize-delivery.
These protect the human-gate contract and the TDD guarantee.
.worktrees.<repo-name>. Every worktree this
skill creates goes in that one repo-owned root beside the repo directory —
never a shared ../worktrees/, never inside the repo. Clean up only the
worktrees you created; leave the root and anyone else's worktrees alone.devague plan.
devague plan waves is read-only scheduling metadata (#20); more broadly, a
task agent never runs any devague command in its worktree, including
devague lapse. If a task agent notices its own reasoning degraded — a
skipped check, an assumption standing in for a real measurement, an
unverified grader, missing provenance, or another LAPSE_CODES case
(devague/frame.py) — it reports the degradation in its transcript or
final report; it does not file it. The main agent files that record
the moment the task agent's report surfaces it, not deferred to closeout
(devague lapse "<what>" --code <code> --origin llm), the same way it
alone runs every plan-mutating move — mirroring the /scope subagent
boundary, where exploration subagents report and only the main agent runs
a devague move (#79/#91). Adjudicating
a filed lapse (devague lapse --confirm/--reject) is the same human who
already owns gate 2/3 — no new role — typically exercised once the run
reaches /summarize-delivery.The split-plan subcommand prints to stdout and exits 0 when a converged
plan is found. On error (no plan, cyclic graph) it exits non-zero with a
hint: line on stderr. The waves subcommand forwards the CLI's own output
contract (stdout, --json for structured output, exit 0 on success).
The trailing End state section (#70) never fails split-plan: on a devague
new enough to have plan deliverables, it quotes that command's stdout
verbatim under an End state (from `devague plan deliverables`): header; on
an older devague, it prints exactly one hint line naming the minimum
version (e.g. hint: End state view requires devague >= 0.18.0 (devague plan deliverables))
and split-plan still exits 0.
--write adds exactly one line after all of the above: wrote split artifact: <path> on the first run, updated split artifact: <path> on every
run after (issue #82). It calls one additional read-only command,
devague plan show --json (for the plan's created timestamp and title);
a failure there exits non-zero with that command's own stderr, same as a
plan waves --json failure.
Picking up after /spec-to-plan exported a plan for the frame my-feature:
a() { bash .claude/skills/assign-to-workforce/scripts/assign-to-workforce.sh "$@"; }
# 1. Inspect the waves
a waves
# 2. Present the implementation split plan for human review
a split-plan
# --- HUMAN: review the table, edit agent/model assignments if needed,
# then say "approved" to proceed ---
# 3. Fan out wave 1 (t1, t2, t3 are independent — run in parallel).
# All worktrees live under this repo's own root, beside the repo dir:
# e.g. <parent>/devague -> <parent>/.worktrees.devague/
repo_root=$(git rev-parse --show-toplevel)
wt_root="$(dirname "$repo_root")/.worktrees.$(basename "$repo_root")"
git worktree add "$wt_root/agent-t1" -b agent/t1
git worktree add "$wt_root/agent-t2" -b agent/t2
git worktree add "$wt_root/agent-t3" -b agent/t3
# ... spawn task agents in each worktree, await completion ...
# 4. TDD-gated merge for each wave-1 task (no human per task)
git merge --no-ff agent/t1 # tests pass before + after
git worktree remove "$wt_root/agent-t1"
git merge --no-ff agent/t2
git worktree remove "$wt_root/agent-t2"
git merge --no-ff agent/t3
git worktree remove "$wt_root/agent-t3"
# 5. Advance to wave 2 (t4 depends on t1–t3 being merged)
git worktree add "$wt_root/agent-t4" -b agent/t4
# ... spawn, await, merge with TDD gate, remove worktree ...
# 6. Open the final PR (human gate 3)
bash .claude/skills/cicd/scripts/workflow.sh opendevague plan waves --json is the standing brief for each task agent — its
task id, summary, instruction, acceptance criteria, and the targets it covers
are all in that one payload. Quote those fields verbatim into each task
agent's brief; the fan-out is honest only if what the subagent builds against
is exactly what the user confirmed in the plan.
Previous leg: spec-to-plan
Next leg: deviateAfter every successful, non-exempt move, the CLI prints one next: <recommended move> line to stderr — follow it, or run devague plan status when unsure
what comes next.
This is a first-party skill — its origin is agentculture/devague, where
the devague agent maintains it alongside the tools it operates (dogfooding),
next to its siblings /think and /spec-to-plan. It is the third skill in
that outbound family, covering the implementation leg after a plan converges.
The flow runs the opposite direction of the vendored guildmaster skills:
guildmaster pulls this from devague and broadcasts it to the rest of the
AgentCulture mesh. The cite, don't import policy still holds: downstream repos copy it,
they don't symlink or depend on it. See docs/skill-sources.md.
© agentculture, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (scripts) in .claude/skills/assign-to-workforce of agentculture/culture.
Open the folder on GitHubat commit 5d12851
Assign To Workforce next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Assign To Workforce this skillagentculture/culture | 114 | — | ~6k | Automated safety check: Warn | Apache-2.0 | |
| Vibe ImplementidiotLeoLYJ/Daliu-Awesome-Skills | 140 | — | ~2.7k | Automated safety check: Pass | None | |
| Nv Implementnovuhq/novu | 40k | — | ~1.7k | Automated safety check: Pass | Custom licence | |
| ClawTeam Multi-Agent Swarmwin4r/ClawTeam-OpenClaw | 1.5k | 1 repos | ~2.9k | Automated safety check: Pass | MIT | |
| Agent Deckasheshgoplani/agent-deck | 1.1k | — | ~1.8k | Automated safety check: Pass | MIT | |
| Clawteamwin4r/ClawTeam-OpenClaw | 1.5k | — | ~3.1k | Automated safety check: Pass | MIT |
idiotLeoLYJ/Daliu-Awesome-Skills
Vibe Coding 流水线的实现阶段(流水线终点,顺序 idea → interaction → architecture → design → prototype → implement)。当 interaction.md、architecture.md、design.md、prototypes/ 已就绪,用户说"开始实现""写代码""把设计落地""进入开发""implement /…
novuhq/novu
Implement planned work by fanning out parallel subagents on isolated worktrees — TDD at pre-agreed seams, per-slice nv-park-and-review, merge back, full suite once at the end.
win4r/ClawTeam-OpenClaw
Launches a swarm of specialist Hermes agents in git-worktree-isolated tmux windows with a kanban board and file-based inboxes, using built-in templates like hedge-fund and code-review.
asheshgoplani/agent-deck
agent-deck, the terminal session manager for AI coding agents.
win4r/ClawTeam-OpenClaw
Multi-agent swarm orchestration. An agent skill from win4r/ClawTeam-OpenClaw.
professorpalmer/Puppetmaster
Operates and supervises Puppetmaster, a multi-agent orchestrator, through its MCP tools or CLI, picking the right verb for edits, reviews, audits and long-running jobs.
agentculture/culture
Show a Culture agent's full configuration in one read-only view: its system-prompt file (CLAUDE.md / AGENTS.md / GEMINI.md), the parallel culture.yaml, and the agent's local .claude/skills index.
agentculture/culture
CI/CD lane for culture: branch, commit, push, create PR, wait for automated reviewers, fetch comments, fix or pushback, reply, resolve threads.
agentculture/culture
All agent communication from culture: in-mesh chat (channels, DMs, mentions, knowledge sharing) via culture channel CLI, AND cross-repo hand-off briefs to sibling-repo agents (agentirc, steward…
agentculture/culture
Cross-repo + mesh communication: file tracked GitHub issues on sibling repos, comment on existing issues, fetch issues with body + comments to inline current state into briefs, and send live…
agentculture/culture
Switch a PyPI package install between the production index, TestPyPI pre-release builds, and a local editable checkout.
agentculture/culture
Run pytest with parallel execution and coverage. An agent skill from agentculture/culture.
Categories
Fan out a converged devague plan's dependency waves to parallel agents in isolated git worktrees, one agent per task per wave, with TDD-gated merges by the main agent. Assign To Workforce is an agent skill from agentculture/culture. Fan out a converged devague plan's dependency waves to parallel agents in isolated git worktrees, one agent per task per wave, with TDD-gated merges by the main agent.
Assign To Workforce fits situations like: the user says assign to workforce; fan out the plan; parallel subagents; after /spec-to-plan exports a plan.
Run `npx skills add agentculture/culture --skill assign-to-workforce -a claude-code`. Or copy the skill folder (.claude/skills/assign-to-workforce in agentculture/culture) into .claude/skills/assign-to-workforce in your project. Claude Code loads it when a task matches its description.
Run `npx skills add agentculture/culture --skill assign-to-workforce -a codex`. Or copy the skill folder (.claude/skills/assign-to-workforce in agentculture/culture) into .agents/skills/assign-to-workforce in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add agentculture/culture --skill assign-to-workforce -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/assign-to-workforce, .gemini/skills/assign-to-workforce, .github/skills/assign-to-workforce and .opencode/skills/assign-to-workforce in your project.
Going by SKILL.md and its folder, Assign To Workforce needs a shell for the scripts in its folder and the command-line tools its instructions call (git, bash and uv). Our summary lists: A Bash shell.
SKILL.md contains no URLs. Its commands use git and uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 1 warning(s): tells the agent its actions are pre-authorized / not to stop for confirmation. Read the flagged lines before installing; the check is not a guarantee either way. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Assign To Workforce is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 6k tokens (SKILL.md is roughly 24k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Assign To Workforce: Vibe Implement (idiotLeoLYJ/Daliu-Awesome-Skills, 140 stars), Nv Implement (novuhq/novu, 40k stars), ClawTeam Multi-Agent Swarm (win4r/ClawTeam-OpenClaw, 1.5k stars) and Agent Deck (asheshgoplani/agent-deck, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
agentculture (a GitHub organization) maintains it in agentculture/culture, which has 114 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 10, 2026.
Source: agentculture/culture on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.