SOC 직업 분류 기준
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/tomevault-io/skills-registry --skill fizzbee명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
| Use when this capability is needed.
> Use when this capability is needed.
Review architecture and API design for the vfs-s3 project. Use when the user mentions @architect, asks to review an issue's design, discuss module boundaries, API shape, or architectural decisions for vfs-s3. Also trigger when the user wants to create an ADR (Architecture Decision Record) or evaluate a technical approach for the project. Intended for dispatch from Codex automation or Claude routines; GitHub trigger phrase: @vfs-s3-bot please prepare design doc Use when this capability is needed.
| name | fizzbee |
| description | > Use when this capability is needed. |
Full references: ~/.claude/skills/fizzbee-docs/VERIFICATION_GUIDE.md, ~/.claude/skills/fizzbee-docs/GOTCHAS.md, ~/.claude/skills/fizzbee-docs/PERFORMANCE_GUIDE.md
A FAILED result means a safety assertion was violated. The output includes a counterexample trace.
Step 1: Read the failing trace
The output shows the sequence of actions that led to the violation. Look at:
AlwaysFoo, BalanceNonNegative, etc.)Step 2: Reproduce with a guided trace
Copy the failing action sequence and replay it:
fizz --trace "Node#0.RequestLock
Node#1.RequestLock
Node#0.DoWork" spec.fizz
Add --trace-extend 1 to see what enabled actions exist at each step:
fizz --trace "Node#0.RequestLock" --trace-extend 1 spec.fizz
Step 3: Reduce config to minimum
Shrink the state space so you can visualize it:
fizz --preinit-hook "N=1" spec.fizz
dot -Tsvg out/*/graph.dot -o graph.svg && open graph.svg
# Graph auto-generated when < 250 nodes
In the SVG, look for:
WARNING: Trace execution incomplete. Expected 8 links, executed 6 links.
A transition in your trace was blocked. Most common causes:
require guard failed — a condition you expected to be true wasn'tlimit=2 but trace creates 3 distinct values)Debug by running the trace up to the failing step and using --trace-extend 1 to see what's actually enabled:
fizz --trace "Step1
Step2" --trace-extend 1 spec.fizz
The model may be over-constraining (silent pruning) or assertions may be tautological.
Check with simulation:
for seed in 1 2 3 7 13 42; do
fizz -x --max_runs 1 --seed $seed spec.fizz
# Extract transitions
grep -o 'label="[^"]*"' out/*/graph.dot | sed 's/.*label="//;s/"//'
done
Ask: Are all expected actions appearing? If an action never fires:
require guards — is the condition too tight?any empty_list disables the actionWrite a guided trace for the missing scenario:
fizz --trace "ActionThatShouldHappen" spec.fizz
# If incomplete: the action's require guard is blocking it
Check symmetry configuration:
bag() or list()? Lists break symmetry — use bag().# Wrong: list breaks symmetry
workers = []
workers.append(Worker()) # BAD
# Right: bag preserves symmetry
workers = bag()
workers.add(Worker()) # GOOD
Apply performance techniques:
Replace for-loops with list comprehensions (35-45% fewer nodes):
# Slow: multiple statements, multiple yield points
result = []
for item in items:
if item.active:
result.append(item)
# Fast: single expression, single yield point
result = [item for item in items if item.active]
Replace loop+require with require all([...]):
# Slow
for a in appointments:
require not (a.slot == slot and a.day == day)
# Fast
require all([not (a.slot == slot and a.day == day) for a in appointments])
Use smaller configs for model checking:
fizz --preinit-hook "N=2" spec.fizz # instead of N=5
Reduce config first:
fizz --preinit-hook "N=1
SLOTS=1
WINDOW=1" spec.fizz
Check for state space explosion causes:
atomic formax_concurrent_actions: 1 for single-user modelsUse DFS instead of BFS to find bugs faster:
fizz --exploration_strategy dfs spec.fizz
DFS finds counterexamples faster; BFS finds the shortest ones.
Profile the spec:
--max_runs 1 simulation first to get a baseline timefizz --internal_profile spec.fizz for internal profiling| Symptom | Likely Cause | Fix |
|---|---|---|
fizz functions can only be called... | self.x = role.fn() | Use tmp = role.fn(); self.x = tmp |
| Action never fires | any empty_list or require too tight | Check guards |
| Symmetry not working | Symmetric roles in a list | Use bag() |
| Role Init fails to see global | Global created after role | Reorder: create globals first |
| Transition assertion fails on startup | Missing stutter-step check | Add if before.x != after.x: |
for k, v in dict.items() error | Tuple unpacking not supported | for k in d: v = d[k] |
| Model passes but wrong | require used instead of assertion | Use always assertion for invariants |
Full gotchas list: ~/.claude/skills/fizzbee-docs/GOTCHAS.md
# 1. Reproduce failure with minimal config
fizz --preinit-hook "N=1" spec.fizz
# 2. Visualize (works when < 250 nodes)
dot -Tsvg out/*/graph.dot -o graph.svg && open graph.svg
# 3. Guided trace to isolate the path
fizz --trace "Step1\nStep2\nStep3" spec.fizz
# 4. Explore beyond the trace
fizz --trace "Step1\nStep2" --trace-extend 2 spec.fizz
# 5. Simulate to explore behavior
fizz -x --max_runs 1 --seed 42 spec.fizz
Source: fizzbee-io/fizzbee — distributed by TomeVault.