Awesome Reviewers

Treat IDs, artifact filenames, and command invocation strings as part of a naming contract: they must be deterministic for dispatch, glob matching, and resume/compatibility.

Rules 1) Constrain stable identifiers

2) Preserve glob/dispatch landing targets

3) Avoid “naive concatenation” artifact names

4) Use canonical invocation strings

Example (ID + sentinel filename)

# stories.yaml entry
- id: "3-2"  # always quoted; letters/digits/dashes only
# For dispatch-driven write-back, keep within stories/<id>-*.md
{spec_folder}/stories/{story_id}-unresolved.md
{spec_folder}/stories/{story_id}-ambiguous.md
{spec_folder}/stories/{story_id}-{slug}.md