Items
Skill Marcel-Bich/marcel-bich-claude-marketplace/plugins/credo/skills/items
A collection of mainly my own productivity plugins for Claude Code.
npx -y skills add Marcel-Bich/marcel-bich-claude-marketplace --skill itemsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 13 stars13 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.
What its author says it does
Copied from the file, not written here
The credo work-item model, where the FOLDER an item file lives in is the single source of truth for its status, gated by a hard Definition of Done. Use whenever you create, update, or track a work item; whenever you decide whether something is "done" and may move to 2_done/; whenever you move an item between status folders (clarify, go, done, archived, parked); whenever new code might be unwired; or when someone asks where a task stands. This is the credo task system: .credo/items/ replaces ad-hoc task lists. Applies inside subagents too - if you build or complete work, record and gate it as an item.
SKILL.md
11.9 KB, as published. Nobody here has run it
items - the credo work-item model
A work item is a single Markdown file under .credo/items/. The folder the file lives
in is the only source of truth for its status. There is no status field, no marker, no
task-tracker entry - an item changes status by physically moving between folders. This is
deliberate anti-drift: multiple status sources drift out of sync, one physical location
cannot. .credo/items/ IS the task system; do not mirror items into a separate task list.
Task backend. If the task backend is
gsd(set in.credo/configastask_backend, or via theCREDO_TASK_BACKENDenv override; resolve withcredo-config.sh backend), the credo item system is inactive - GSD's phases are the task system for this project. Do NOT create or move.credo/items/; use GSD's workflow instead. This skill applies only when the backend iscredo(the default) ornone.
Status = folder (the only truth)
The folder tree (created by credo-init) and what each folder means:
.credo/items/
1_todo/
1_clarify/ open questions - needs the user, NOT buildable yet
2_go/ clarified and approved - buildable (go-gate: only 2_go is buildable)
2_done/ Definition of Done met (agent and/or user), gate passed
3_verified/ USER-ONLY - human-in-the-loop confirmation (an agent never places here)
4_archived/ abandoned / deprecated / rejected
parked/
hold/ blocked by an external dependency
future/ deliberately deferred
Never encode status anywhere else. If you want to know an item's status, look at which folder its file is in - nothing else is authoritative.
Mandatory frontmatter (lean)
Exactly five required fields. Keep it minimal:
---
id: 124 # integer from credo-id-next.sh (monotone counter, folder is a safety floor)
title: Short imperative title
created: 2026-07-04 # YYYY-MM-DD, the day the item was created (in 1_clarify)
type: feature # one of: bug | optimization | feature | question | chore
ui: false # bool - true means a visual verify is a DoD requirement
---
type:bug|optimization|feature|question|chore.ui: boolean. Whentrue, a passing visual verification (the credoverifyskill, measured layout + real interaction at every configured viewport) is a mandatory part of this item's Definition of Done.
Everything else (priority, source, blocked_by, relates_to, regression, ...) is
not a mandatory field. Do not add speculative frontmatter. Write such information only
when it actually applies, free-form in the body.
Filenames and ids
-
File name:
<id>-<slug>.md, e.g.124-live-reload-panel.md. The slug is a short, lowercase, ASCII, dash-separated summary of the title. -
Frontmatter
id:matches the number in the filename. -
Reference an item elsewhere as
#124(plus its date/short context - transcript line numbers are not stable references). -
Get ids only from the counter helper, never compute one yourself. Issue the next id with:
"${CLAUDE_PLUGIN_ROOT}/scripts/credo-id-next.sh"It is deterministic and never-reuse: the monotone counter, not the folder, decides the number, so a deleted
#124is never reissued. On each call the helper also scans the items tree as a safety floor and takesmax(counter, highest existing id) + 1, so a stale or rolled-back counter (merge, clone, restore, sync) never hands out an id that is already in use (it warns on stderr when it reconciles). Do not compute an id by scanning files or takingmax+1yourself - that reuses deleted ids and skips the lock.
Body sections
Use these English headings in this order. A blank template ships at
"${CLAUDE_PLUGIN_ROOT}/templates/item.template.md".
- Requirement (verbatim) - the requirement in the user's own words, quoted exactly,
with its source. Never trim, soften, reinterpret, or invent constraints. Keep
user-verbatim text strictly separate from any assistant proposal (label proposals as
such). This mirrors the credo
requirements-verbatimrule. - Success Criteria (= DoD) - observable "the user can X" statements, each one checkable. These ARE the Definition of Done for this item. Vague criteria that cannot be observed are not acceptable; make each one exercisable.
- Implemented - what was actually built, with concrete
file:linereferences. This is where the wiring is recorded (which caller reaches the new code). - Verify - the honest 4-valued verification state, per layer. See below.
- History - the folder journey with dates, e.g.
created (clarify) 2026-07-04 -> go 2026-07-04 -> done 2026-07-05. Record why an item moved, especially any move backwards.
The 4-valued Verify (honest, per layer)
For each relevant layer (backend, ui, human-only), record exactly one of four
states - honestly, never optimistically:
- not-started - the code/behavior for this layer does not exist yet; work on it has
not begun. Distinct from
n/a, which means the layer does not apply at all. - present - the code/behavior exists in the source, but has not been shown to run.
- wired-but-behavior-unverified - it is reachable and called (wired into a real code path), but its actual runtime behavior has not been observed.
- exercised - the behavior was actually driven end-to-end and observed to be correct
(for
ui, that means a real visual verify - see the credoverifyskill).
For any human-only layer that only a person can confirm, add a why_human note
explaining what the user must check and why an agent cannot.
A verify attempt that surfaces a defect is a failed verify: that is not one of the
four progress states above, it is a defect outcome that sends the item back (see "Bug
found during verify"). Only exercised (or a user-confirmed human-only criterion) counts
toward the Definition of Done.
Wiring matters: new code with no caller / not reachable is a gap, not "done". At most it
is present. The DoD requires exercised, which forces the wiring to exist and to run.
If you find unwired code, that is a gap - raise or reopen an item for it.
Before you record failed or "not started" for a capability, you MUST first run a wiring
check against the real code: search the source for the endpoint, class, function, or
tests that would implement it. This matters most for items cut from older specs - the
feature may already have been built under a DIFFERENT task or item number, so assuming it
is missing is often simply wrong. If the check shows it is built but its runtime behavior
has not been observed, record wired-but-behavior-unverified, not failed. Reserve
failed for a real defect actually surfaced by exercising the code.
Definition of Done (the gate into 2_done/)
An item may move into 2_done/ ONLY when ALL of these hold. This gate is hard.
- Every Success Criterion is
exercised(or, for a human-only criterion, explicitly confirmed by the user). Nothing left atnot-started,present, orwired-but-behavior-unverified. - If
ui: true, a passing visual verify is mandatory - the credoverifyskill at every configured viewport (measured layout, real interaction, live update where required, hard reload after rebuild), with screenshots saved under.credo/screenshots/. - No open remainder - nothing needed for the item's core is still outstanding.
- Mandatory audit-after-completed by a DEDICATED subagent - the credo
auditskill MUST be run by a subagent that is NOT the builder of this item. A builder auditing their own work does not satisfy the gate. This applies in every session mode (active, passive, autonomous), no exceptions. Only a passing audit lets the item enter2_done/. - Docs updated in the same change - documentation is part of the change, not a
follow-up. Any change that affects documented behavior MUST update the docs in the same
change; stale docs = incomplete (C14). Prefer
/dogma:docs-updatewhen dogma is installed - it is the canonical README + wiki sync; if dogma is not installed, do a best-effort manual update of the affected docs (companion tool when present, graceful degrade when not). Scope explicitly includes the project wiki (a separate repo) and in-repo READMEs, not just files inside this commit - "same change" is not "same repo only". Searchdocs/**,.credo/docs/, in-repo READMEs, and the wiki for what the change affects and update it now. - Version bump as part of the DoD - bump the version as part of completing the work, dogma-first (follow dogma's versioning if present), credo as fallback only.
completed != done: a builder saying "I finished" is not done. Done is the physical
2_done/ folder, reached only after the audit gate passes. The marker is the folder, not
a claim and not a task-tracker field.
3_verified/ is USER-ONLY
An agent NEVER moves an item into 3_verified/ autonomously. 3_verified/ is
human-in-the-loop confirmation: only the user places an item there after re-testing it
themselves. The agent's job is to actively ask the user to re-test items sitting in
2_done/ and, when the user confirms, let the user move them to 3_verified/.
(Future option, not built here: a PreToolUse hook that blocks any agent write or move
into */3_verified/*. For now the rule is enforced by this skill and by the move helper
refusing that target.)
Bug found during verify -> back to 1_todo/1_clarify
If verification (or audit) surfaces a bug in work that was claimed done, the item goes
back to 1_todo/1_clarify - not to 2_go - with a History note describing what was
missed. It needs clarification before it is buildable again. Agents never self-degrade
2_done/: an agent does not silently move a done item down; it records the finding and
moves it back to clarify per this rule (or, for a clear and approved fix, the audit skill
governs whether it returns to 2_go).
Moving items (lifecycle)
Prefer the move helper - it is atomic, never deletes, and refuses the user-only target:
"${CLAUDE_PLUGIN_ROOT}/scripts/credo-item-move.sh" <id> <target>
# target: clarify | go | done | archived | hold | future
Valid transitions (folder = status):
1_clarify -> 2_goonce the user gives an explicit GO (go-gate: only2_gois buildable;1_clarifyis not). In a presence session, clarify and propose that GO one item at a time, each item in its own Ask round - see "One item per Ask round" in the common core (session-active skill).2_go -> 2_doneonly after the full Definition of Done gate above passes.2_done -> 1_clarifywhen a bug is found (see above).- any ->
parked/hold(external block) orparked/future(deferred), or4_archived(abandoned/rejected). 2_done -> 3_verifiedis user-only and is never done by an agent or the helper.
After any move, update the item's History section with the transition and its date.
Whenever you move something by hand instead of the helper, use mv (never delete + write)
so the id-counter invariant and the file's identity are preserved.
dogma-first
Where dogma already governs a concern (versioning, git rules, language, linting), follow dogma first and treat these credo rules as fallback only, never as a duplicate or a conflict. DOGMA-PERMISSIONS always take precedence.