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.

PreviousCreate a skillNextStack defaults