viewing-artifacts
Skill1 starsChanged 3 months agoMITView on GitHub
Shows the state of the artifact trail — briefs, specs, designs, plans, execution — at a glance instead of file by file. Use when the user asks where the project stands, what needs attention, whether the plan is still in sync with the spec, to see the state of specs and plans, or to visualize the trail. Skip when one artifact must be read, written, or edited.
In this repository49 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- working-from-a-ticketSkill
- writing-specsSkill
- clarifying-intentSkill
- dispatching-parallel-agentsSkill
- handoffSkill
- mapping-the-codebaseSkill
- prototypingSkill
- using-git-worktreesSkill
- using-sdlc-skillsSkill
- writing-skillsSkill
- yagniSkill
- finishing-a-branchSkill
- release-readinessSkill
- architecture-decisionsSkill
- coding-standardsSkill
- data-modelSkill
- migration-strategySkill
- reviewing-plansSkill
- system-architectureSkill
- ui-ux-designSkill
- writing-plansSkill
- adding-observabilitySkill
- changing-a-live-schemaSkill
- executing-plansSkill
- rollout-controlsSkill
- subagent-driven-developmentSkill
- test-driven-developmentSkill
- complexity-auditSkill
- containing-an-incidentSkill
- debuggingSkill
- deprecating-an-apiSkill
- diagnosing-a-sessionSkill
- eliminating-correctionsSkill
- large-scale-changesSkill
- post-mortemSkill
- refactor-architectureSkill
- brainstormingSkill
- define-goalsSkill
- feasibility-checkSkill
- scopingSkill
- receiving-code-reviewSkill
- requesting-code-reviewSkill
- reviewing-a-prSkill
- security-auditsSkill
- verification-before-completionSkill
- verification-strategySkill
- visual-ui-verificationSkill
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 3 are distinctive, and 7 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 16
Skip: when a specific artifact must be read, created, or edited: that is the owning skill's work, and this skill never mutates the trail.
- Distinctive: line 17
Skip: when there is no trail and nobody asked for its state.
- Very specific: line 44
Read $root/.sdlc-skills/: briefs/, specs/, designs/, plans/, verification/, audits/, post-mortems/.
- Very specific: line 47
If there is no .sdlc-skills/, render the template's empty state, which names what produces artifacts.
- Very specific: line 53
Read references/state-derivation.md before deriving a value.
- Very specific: line 74
Never write a URL or a scheme into href or src.
- Distinctive: line 75
Before writing, run git check-ignore -q on the view path.
- Very specific: line 80
Write exactly one file: $root/.sdlc-skills/views/index.html, never one inside a linked task worktree.
- Very specific: line 104
When the preview is no longer needed, run bash scripts/stop-server.sh {{pid}} with the pid from the startup record.
- Very specific: line 110
Run without --root, bash scripts/start-server.sh exits 1 with needs --root DIR, and the file-path fallback in Step 3.2 hides that no …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Viewing Artifacts
One self-contained page answers "what is the state of my SDLC work, and what
needs attention?" from the .sdlc-skills/ artifact trail. Every value on it
is derived from a real marker; where no marker exists the page says unknown.
The page carries state, not documents.
When to use
- The user asks for the state, progress, or drift of their SDLC work — what needs attention, how far each initiative is, what changed after a downstream artifact consumed it — or asks to see the trail as a page.
- Skip when a specific artifact must be read, created, or edited: that is the owning skill's work, and this skill never mutates the trail.
- Skip when there is no trail and nobody asked for its state.
Available scripts
scripts/start-server.shandscripts/stop-server.sh— start and stop the governed localhost preview (per-session key, owner watchdog, idle timeout). They wrapscripts/serve.py; never run another server.
Step 1: Read the trail
Resolve the project root: the main checkout, even from a linked task worktree. When the common git directory is not a checkout's
.git(a submodule, a separate git directory, a bare repository's worktree), the root is the current checkout's top.if common="$(git rev-parse --git-common-dir 2>/dev/null)" && common="$(cd "$common" && pwd -P)"; then case "$common:$(unset GIT_DIR GIT_WORK_TREE; git -C "${common%/.git}" rev-parse --is-bare-repository 2>/dev/null)" in */.git:false) root="${common%/.git}" ;; *) root="$(git rev-parse --show-toplevel 2>/dev/null)" || root="$PWD" ;; esac else root="$PWD" fiRead
$root/.sdlc-skills/:briefs/,specs/,designs/,plans/,verification/,audits/,post-mortems/. A folder that is absent means that phase was never reached.- If there is no
.sdlc-skills/, render the template's empty state, which names what produces artifacts. Read an artifact kept at a user-set path only where a recorded pointer names it: a pointer field, theLocationof a row in a ledger, or a plan's bound inputs. If a recorded path cannot be read, that artifact's values are unknown, and Step 3.3 names the cause class. Never search the filesystem for look-alikes. - Read
references/state-derivation.mdbefore deriving a value. Derive every value by its rules: slug allowlist, phase artifacts, approval sources, drift, attention grouping. - Match each section's approved version and location to its decision
ledger, keeping the ledger's own decision vocabulary. Take task progress
from the plan's ledger rows, never from the index checkboxes; only the
state
donecounts as complete. Find drift by comparing the input identity a downstream artifact recorded with that input as it is now; timestamps alone can indicate possible staleness, never prove freshness. Where no value can be derived, say unknown.
Step 2: Render
- Open
assets/page-template.htmlbefore filling anything. Follow its top-of-file and region comments: region order, repeats, omissions, allowed values. Fill every region it marks. - Entity-encode every artifact-derived value before inserting:
&first, then<,>,". Derived values go in as text, except two attribute values the template needs: a topic anchorhref,#topic-plus an allowlisted slug; and an open-filehrefor visualsrc, the path of a file read in Step 1, relative toviews/index.htmland starting with../. Never write a URL or a scheme intohreforsrc. - Before writing, run
git check-ignore -qon the view path. If the path is not ignored, and a verification or review is bound to this checkout's state, ask whether to write it there and stop until the user answers: the write is content, and it changes the hash of that state. A status question is not consent to that. - Write exactly one file:
$root/.sdlc-skills/views/index.html, never one inside a linked task worktree. Createviews/if missing. No external URLs, no JavaScript, no scratch or backup files. Regeneration recomputes from the trail and rewrites in place; never merge a previous render.
Step 3: Deliver
Deliver the file path and offer to serve the page, root
.sdlc-skills/, entryviews/index.html; when the invoking skill holds an open decision, deliver the path only and leave the offer to it. Start the server from$root, only after the user accepts:bash scripts/start-server.sh --root .sdlc-skills --entry views/index.html- Hand over the printed URL. If serving fails or the user declined, the file
path stands. If the script reports
needs python3, say so, name the platform's install route, and deliver the file path. Install a runtime only on explicit request. - Reply in one short message: path or URL, as-of UTC, every place the page says unknown or omitted a block, whether a drift flag came from file modification times, and the cause class of any ledger pointer that could not be honored.
- When the preview is no longer needed, run
bash scripts/stop-server.sh {{pid}}with thepidfrom the startup record.
Gotchas
- Run without
--root,bash scripts/start-server.shexits 1 withneeds --root DIR, and the file-path fallback in Step 3.2 hides that no preview started. - A status request is not consent to a background listener: a preview started unasked opens a local port the user never agreed to.
- From a linked task worktree, the
.sdlc-skills/beside the worktree's files is absent or an older committed copy: reading it shows a false empty trail, and a view written there changes the hash of the state that a pending verification or review is bound to. - In a checkout whose own state is the one under verification or review, a view written under a trail the project does not ignore still changes that checkout's hash.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

