| name | straymark-charter-new |
| description | Scaffold a Charter โ StrayMark's bounded unit of work that pairs declarative ex-ante scope with telemetry ex-post. Use when starting a multi-session implementation block (>1 day, >5 tasks, multi-phase). |
StrayMark Charter Scaffold Skill
Declare a Charter at the start of a bounded, auditable unit of work โ not every change. Charters wrap multi-session work that warrants a stable scope contract you can drift-check at close. They are conceptually distinct from the 12+4 governance document types (AILOG, ADR, AIDEC, โฆ): Charters live at .straymark/charters/NN-slug.md and use a sequential prefix instead of a date prefix.
See STRAYMARK.md ยง15 and .straymark/00-governance/SPECKIT-CHARTER-BRIDGE.md for the lifecycle and the SpecKit โ Charter bridge.
When to use this skill
Trigger on any of:
- Multi-session implementation block (>1 day, >5 tasks across phases).
- Work that warrants external audit at completion.
- A SpecKit feature has reached
tasks.md and the operator wants a stable scope contract before /speckit-implement.
- The user asks to "declare", "open", or "start" a Charter.
If the work is a single-session change โ use /straymark-ailog instead.
Instructions
1. Gather context
straymark charter list 2>/dev/null | tail -5 || true
ls specs/*/spec.md 2>/dev/null | head -5
ls .straymark/07-ai-audit/agent-logs/AILOG-*.md 2>/dev/null | tail -5
2. Confirm with user
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ StrayMark Charter โ declare a bounded unit of work โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฃ
โ โ
โ ๐ A Charter pairs declarative scope (ex-ante) with telemetry โ
โ (ex-post). Lifecycle: declared โ in-progress โ closed. โ
โ โ
โ Required: โ
โ 1. Title (one line) โ
โ 2. Effort estimate: XS | S | M | L โ
โ โ
โ One of (optional but encouraged): โ
โ 3a. --from-ailog AILOG-ID (post-MVP / maintenance origin) โ
โ 3b. --from-spec specs/.../spec.md (greenfield / SpecKit origin) โ
โ โ
โ Default effort: M. โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
3. Pick origin and effort
- Effort heuristic: XS (โค half day), S (โค 1 day), M (1โ3 days, default), L (โฅ 1 week).
- Origin precedence: a single live AILOG โ
--from-ailog; a SpecKit feature spec โ --from-spec; otherwise omit (the operator can fill originating_* fields manually).
4. Run the CLI
The CLI does the scaffolding โ slug derivation, sequential numbering, template substitution, write to .straymark/charters/NN-slug.md. The skill's job is to drive it with the right flags.
straymark charter new \
--title "Workspace foundation for peek MVP" \
--type M \
--from-spec specs/001-peek-mvp-foundation/spec.md
straymark charter new \
--title "Per-service anomaly thresholds" \
--type S \
--from-ailog AILOG-2026-04-28-021
straymark charter new --title "Refactor signal pipeline" --type M
If the title would derive a poor slug, pass --slug <slug> explicitly.
5. Hand off to the operator
After the file is created, the CLI's "Next steps" output already lists what to fill. Surface it verbatim, then add:
Reconnaissance before declaration (#210): when filling ## Files to modify, Read/ls every path before you list it โ do not declare a path you have not opened. Charters authored against assumed, un-read code drift before execution even begins (the LNXDrive findings showed declared paths like lnxdrive-config/src/parser.rs that never existed). Tag genuinely-new files "New" in the Change column. If the Charter modifies a cross-component API (D-Bus/gRPC/REST contract, shared trait, IPC method), list all consumers, not just the producer. straymark validate --include-charters flags declared paths that don't exist (CHARTER-FILES-EXIST).
Reminder: Charter status starts at declared. Flip to in-progress only when execution actually begins. Run straymark charter drift CHARTER-NN before straymark charter close to catch declared-but-not-modified files (or modified-but-not-declared ones).
6. Report result
โ Charter declared:
.straymark/charters/NN-slug.md
charter_id: CHARTER-NN-slug
status: declared
effort_estimate: <XS|S|M|L>
origin: <ailog | spec | none>
StrayMark: Created CHARTER-NN-slug
What this skill does NOT do
- It does not flip status to
in-progress or closed. Lifecycle transitions are operator decisions; pumps the operator through straymark charter close (or manual frontmatter edit for in-progress).
- It does not run drift or audit. Use
straymark charter drift and /straymark-audit-prompt / /straymark-audit-execute / /straymark-audit-review for those phases.
- It does not replace AILOGs. Day-to-day work inside the Charter still produces AILOGs. Record where they go by the Charter's origin: an AILOG-originated Charter lists them in
originating_ailogs:; a spec-originated Charter (with originating_spec:) aggregates its execution AILOGs in execution_ailogs: at close โ originating_ailogs and originating_spec stay mutually exclusive (the schema enforces exactly-one), and execution_ailogs / context_spec carry the other side without tripping it.
Terminal compatibility: If the terminal does not support box-drawing characters (Unicode), use plain-text formatting with dashes and pipes instead (e.g., +--+ instead of โโโโ).