Add phases to the sprint
Register a phase name. The entire artifact pipeline works with it immediately.
Register in config.json
Open .nanostack/config.json and add your phase names to the custom_phases array. Set the order in phase_order so the pipeline knows when each phase runs.
{
"custom_phases": ["deploy", "monitor"],
"phase_order": [
"think",
"nano",
"review",
"qa",
"security",
"ship",
"deploy",
"monitor"
]
}That is all. No code to write, no plugin to install, no registration API. The phase name becomes a first-class citizen of the pipeline.
What registration enables
Once a phase is registered, every pipeline script recognizes it:
- bin/save-artifact.sh deploy result.json— saves an artifact tagged with the deploy phase.
- bin/find-artifact.sh --phase deploy— finds the most recent deploy artifact for the current project.
- bin/discard-sprint.sh— cleans up deploy artifacts along with all other phases.
- bin/sprint-journal.sh— includes deploy in the sprint timeline.
- The analytics pipeline tracks deploy duration and artifact sizes.
Dependency graph
When /conductor orchestrates a sprint, it reads the depends_on field from each SKILL.md to build a dependency graph. Custom phases integrate into this graph like built-in phases.
{
"phases": {
"think": { "depends_on": [], "concurrency": "exclusive" },
"nano": { "depends_on": ["think"], "concurrency": "exclusive" },
"review": { "depends_on": ["nano"], "concurrency": "read" },
"qa": { "depends_on": ["nano"], "concurrency": "read" },
"security": { "depends_on": ["nano"], "concurrency": "read" },
"ship": { "depends_on": ["review", "qa", "security"], "concurrency": "exclusive" },
"deploy": { "depends_on": ["ship"], "concurrency": "exclusive" },
"monitor": { "depends_on": ["deploy"], "concurrency": "read" }
}
}The conductor resolves this graph at sprint time. Phases with no unmet dependencies are eligible for execution. Phases with concurrency: read can run in parallel. Phases with concurrency: exclusive run alone.
In the example above, review, qa, and security fan out in parallel after nano completes. Ship waits for all three. Deploy waits for ship. Monitor can start as soon as deploy finishes.
Phase naming conventions
Phase names must be lowercase alphanumeric with hyphens. They map directly to directory names and artifact filenames:
# Good deploy smoke-test load-test canary-check # Bad Deploy # uppercase smoke_test # underscore load test # space
Pick short, specific names. The phase name appears in every artifact, every log line, and every sprint summary. You will read it often.