Maintain a MANIFEST.md in the project root only when a run produces more than
15 artifacts. Below that threshold, do not create one: a manifest for a handful
of files is itself a duplicate index that has to be kept in sync with the files it
lists — the very duplication this protocol family exists to prevent (see
output-composition.md). When the threshold is met, append
one entry per output file as below.
Threshold rationale: the original "log every output to MANIFEST" rule is what drove the
MANIFEST.mdclutter in small idea-discovery runs. A manifest earns its keep only when there are enough artifacts that an index genuinely helps.
If MANIFEST.md does not exist, create it with this header:
# Research Output Manifest
> Auto-maintained by ARIS skills. Tracks all generated artifacts across the research lifecycle.
| Timestamp | Skill | File | Stage | Description |
|-----------|-------|------|-------|-------------|Then append one row per output file written:
| 2025-06-15 14:30 | /idea-creator | idea-stage/IDEA_REPORT_20250615_143022.md | idea-discovery | 12 ideas generated from "LLM reasoning" direction |
| 2025-06-15 14:30 | /idea-creator | idea-stage/IDEA_REPORT.md | idea-discovery | latest copy |
| Stage | Skills |
|---|---|
idea-discovery |
/idea-creator, /idea-discovery, /novelty-check, /research-review |
implementation |
/research-refine, /research-refine-pipeline, /experiment-plan, /experiment-bridge, /run-experiment |
review |
/auto-review-loop |
paper |
/paper-writing, /paper-write, /paper-compile |
Before writing output, if the skill depends on a prerequisite file from a previous stage:
- Check if the prerequisite file exists at its expected stage-scoped path (e.g.,
idea-stage/IDEA_REPORT.md,review-stage/AUTO_REVIEW.md) - If not found at the stage-scoped path, check the legacy root-level path (e.g.,
./IDEA_REPORT.md,./AUTO_REVIEW.md) — see Path Fallback Rule - If not found at either path, warn: "
⚠️ Expected {file} (from {skill}) but not found. Run {skill} first?" - Do not block — the user may have the file elsewhere or want to proceed anyway