Asset validation
Use when the user wants to evaluate, review, iterate on, validate, or run evidence-backed acceptance for a reusable asset such as a skill, plugin, rule, or agent. Trigger on 评估, 迭代, 验收, evaluate, validate, review, 靶场, observation-based acceptance, or explicit asset-validation. **DO NOT** trigger on testing ordinary application code.From its SKILL.md
npx -y skills add MarioJames/skill-foundry --skill asset-validationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 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.
SKILL.md
7.4 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it
Asset Validation
Validate reusable assets through review, acceptance design, real CLI execution, evidence capture, and cleanup. You are the observer. Asset-under-test runs as real CLI in tmux, never as subagent.
HARD CONSTRAINTS
- MUST run the asset-under-test as real CLI in tmux; DO NOT use a subagent as the asset-under-test.
- DO NOT query SQLite directly. All state reads/writes go through
scripts/acc.py. - DO NOT create or update memory, global notes, caches, or host config unless the user explicitly asks.
- NEVER print settings files or secret env values; report paths only.
- NEVER manufacture a pass by doing the asset-under-test's work in the observer.
- NEVER glob-clean
/tmp/acc-*or kill broad tmux state; rely onacc finalize/acc cleanup --round. - DO NOT run
acc --helpfor discovery; contracts here and in references are authoritative. - MUST feed tasks via
acc feed-task --roundoracc profile run-task; onlyacc finalizeleavesrunning. - Plugin assets MUST be staged via sandbox settings/
--plugin-dir; DO NOT use real or symlinked HOME skill roots as install evidence.
Convergence And Task Design
Before tasks or verdicts, use references/convergence-and-task-design.md: observer-owned verdicts, post-fix clean-pass, capability profiling, progressive ladders. A tiny task is only smoke for complex assets.
Command Entry
Derive <skill_dir> from this skill folder, not a hard-coded global install path. The ACC resolver is defined in references/unattended-execution.md (staged copy -> repo checkout -> loaded skill dir); use that resolver verbatim.
All state reads/writes go through scripts/acc.py. If a read is missing, add a narrow acc command first.
Thin script entry. Keep scripts/acc.py thin (args, dispatch, JSON, error shaping). Put durable capabilities in focused submodules: DB, env prep, plugin staging, tmux observation, cleanup.
State And Config
State lives in ~/.acceptance/state.sqlite3; ACCEPTANCE_HOME overrides for tests or isolation. Select CLI at start/launch: ask claude/codex in attended mode, default claude when absent.
acc start idempotently prepares sandbox workdir, isolated DB root, ACCEPTANCE_TMPDIR, runtime roots, and Claude settings. Use returned isolation_env.
Entry Routing
@assetplus 评估 / 迭代 / 验收 / acceptance / evaluate / validate: full pipeline.@assetplus review: review only; stop after review-and-fix.@assetwith no verb: ask for full pipeline / acceptance only / review only.- Multiple unfinished acceptances:
acc accept list --asset <name> --status draftand ask which to continue.
Unattended Mode
When the user is away, sleeping, or asks for automatic completion, treat confirmations as pre-authorized unless the action changes destructive scope or touches assets outside the asset-under-test.
Use references/unattended-execution.md before unattended rounds (command spine, temp-file rules, prompt shape, tmux capture, cleanup).
Phase Checklist
- Classify the asset; first write with
acc bootstrap(acc asset add+acc accept newis the two-step equivalent). Attended: confirm type/purpose first; unattended: record pre-authorized confirmation. - Write capability profile and progressive observer-scored tasks. See convergence reference.
- Review/fix major logic only in the asset-under-test. See references/review-and-fix.md.
acc accept update: strategy, acceptance prompt, criteria, task prompts, ladder, fixture. Flat task JSON:{"t1": "body to send"}.- Pick scheduling mode with reason: stop-loss / collect-first / hybrid.
- Launch observe loop only after prompt, criteria, tasks, fixture, cleanup plan, and ladder coverage are explicit.
- After each round: finalize/clean, fix defects, re-run from
acc startuntil fresh clean PASS or blocked. - Before feeding tasks, confirm each is a black-box stimulus; observer scores from transcripts, commands, files, processes, cleanup.
Observe Loop
Real CLI spine: acc start --cli <claude|codex> -> acc launch --round <round_id> --cli <claude|codex> -> acc feed-task --round <round_id> --task t1 -> bounded wait -> acc capture -> acc record -> independent re-verification -> acc finding as needed -> acc finalize. Omit --cli to default claude. Default acc finalize cleans sandbox, nested sandboxes, plugin staging, and round tmux. Use --keep-sandbox only for local debug, then acc cleanup --round <round_id> before return.
Only acc finalize changes a round out of running; DO NOT poll the DB for that transition.
After finalize, inspect verdict and evidence. On FAIL/CONDITIONAL or incomplete cleanup/evidence, keep working per the convergence reference.
Side Effects
Write only the acceptance DB, round sandbox, fixture/evidence paths, and authorized asset-under-test fixes. DO NOT create or update memory, global notes, caches, or host config unless the user explicitly asks.
Gotchas
- Correct-looking answer without skill/agent/plugin/command/transcript evidence is a bypass.
- Direct
sqlite3 .../state.sqlite3is a bypass; useacc round list,acc history,acc show, or add anaccread. - NEVER print settings files or secret env values; report paths only.
acc capture/acc recordand every structuredaccread redact known secret keys and high-confidence bare tokens. The rig also sanitizes evidence persisted by older versions before returninground listorhistory; add a regression whenever a new token shape is observed. - Bash variables do not persist across tool calls; resolve
ACCeach Bash or store in"$WORK/.acc-path". - Self-review is not a negative trigger test. Observer MUST watch behavior, not ask the asset to grade its own trigger.
- One-line toy task is smoke only; not final verdict for complex orchestration/recovery/workflow assets.
- NEVER manufacture a pass by doing the asset-under-test's work in the observer.
- NEVER glob-clean
/tmp/acc-*or kill broad tmux; rely onacc finalizeauto-cleanup, oracc cleanup --roundfor kept/debug/orphan rounds. - Fixed scratch paths (
/tmp/acc-toy,/tmp/acc-work-path.txt,/tmp/.<name>_marker) collide. Persist paths only under the round sandbox or itsACCEPTANCE_TMPDIR, e.g."$WORK/.workpath".
Asset Strategies
Before final verdict, apply references/asset-strategies/common.md plus the per-type file. Skill assets need script-entry assessment and, for self-validation/validation-harness skills, the outer/nested round boundary.
What ships with it: 25 files
118.2 KB alongside SKILL.md, 11 of them executable
assets/
references/
- asset-strategies/agent.md2.1 KB
- asset-strategies/common.md2.7 KB
- asset-strategies/plugin.md3.5 KB
- asset-strategies/rule.md2.1 KB
- asset-strategies/skill.md5.5 KB
- asset-understanding.md2.8 KB
- convergence-and-task-design.md5.9 KB
- review-and-fix.md1.4 KB
- scheduling.md1.3 KB
- unattended-execution.md11.5 KB
scripts/
- acc.pyruns22.9 KB
- catalog.pyruns11.6 KB
- cleanup.pyruns1.4 KB
- db.pyruns4.3 KB
- envprep.pyruns4.9 KB
- __init__.pyruns0 B
- observe.pyruns7.9 KB
- plugin_runtime.pyruns9.4 KB
- profiles.pyruns6.1 KB
- redact.pyruns950 B
- rounds.pyruns7.0 KB