Documentation

Authoring artifacts

Create artifacts in the right place, move them through their lifecycle, and make accountability explicit.

Start with the graph

Call workspace_summary to orient yourself, then search for the idea before creating anything. Read the intended parent's chain so the new artifact inherits the right strategic context.

Call artifact_types for the type you plan to create. Its allowedParentTypes, allowedStates, and fields are the live contract; do not infer a type or field from an older example.

  • • A project belongs under a goal.
  • • A ticket belongs under a project.
  • • A problem belongs under a persona, goal, or project.

Use lifecycle states and closure reasons deliberately

Mission, vision, strategy, goal, domain_model, persona, and problem use draft, active, or closed. Execution types also support backlog, todo, in_progress, and in_review. The artifact_types response is authoritative for each type.

Closing answers where the work is in its lifecycle; closure_reason answers why it closed. Pass both explicitly when the reason matters. Use completed for delivered work, abandoned for intentionally stopped work, obsolete when the premise no longer applies, migrated when another system now owns it, and duplicate when another artifact is canonical.

Archiving is separate from closure. Archive an artifact to shelve it from normal lists, not to claim that its work was completed.

Close delivered work

artifacts_update({
  id: "<ticket-uuid>",
  state: "closed",
  closure_reason: "completed"
})

Make ownership explicit

Ownership identifies the workspace member accountable for the artifact. Call members_list to get a valid member UUID, then pass owner_id during creation or update it later with artifacts_update.

Assign ownership before moving execution work into in_progress. Clear owner_id only when accountability has genuinely returned to the team; do not use an unassigned artifact as a substitute for an unclear handoff.

Reassign an artifact

artifacts_update({
  id: "<artifact-uuid>",
  owner_id: "<workspace-member-uuid>"
})

Verify the result

Read the artifact's chain after writing. Confirm the parent, type-specific content, state, owner, and any additional links match the intended work. Treat detector findings returned with a write as follow-up work, not as decoration.