Completeness score + Markdown export + optional AI
Mechanical. No brain is required to score a plan or export Markdown. Folio is never required.
Completeness score
When a plan is assigned, Open Plan and the CharterPlan inspector show the same five required one-page checks:
- Vision
- Named pillar (≥1)
- Loop verbs
- Slice brief
- Milestone (≥1)
Score is DoneCount / 5, shown as N / 5 · NN%. Ready when all five are filled; otherwise Not ready. Prompt text counts as filled. Default milestone names count. Empty pillar names do not.
This is empty vs filled only. There is no A–F letter grade.
Optional extras (informational, not required, not in the percent):
- Named feature (≥1)
- Named risk (≥1)
An informational 3–5 pillar slots miniLabel still appears only when the slot count is outside that range. An informational ≥1 exit criterion miniLabel still appears when the slice checklist has no non-empty rows.
CharterPlanCompleteness.Evaluate returns the five required rows. EvaluateOptional returns the extras. ScoreLine formats N / 5 · NN% · Ready|Not ready.
Export Markdown
ArTchie / Charter / Open Plan enables Export Markdown when a Game Plan is assigned (the button is no longer permanently grey). Copy Markdown sits beside it.
CharterPlanMarkdown.Build(CharterPlan) writes a Folio-friendly .md:
- Title (
#) - Vision
- Completeness (score line, required checks, optional extras)
- Pillars
- Core loop (verbs / state / feedback / hook, plus a mermaid fence from
CharterCoreLoopMermaid) - Features / MoSCoW (named rows, grouped Must → Should → Could → Won't)
- Vertical slice + exit checklist (and exit notes when present)
- Scope
- Risks (named rows, High severity first)
- Milestones (done checkbox + name + criteria)
Export Markdown writes {title-or-filename}-plan.md next to the plan asset (title if named, otherwise the asset filename). Overwrites that file. If the plan is not on disk yet, Export reports why it cannot; Copy Markdown still works.
After a successful save:
- If Folio is in the project, Charter calls
Folio.FolioWindow.OpenFileby reflection and notes that it opened. - If Folio is not in the project, the status line says Open with Folio / Open.
Charter never asmdef-references Folio. Missing Folio is not an error.
MoSCoW CSV and core-loop .mmd are unchanged separate exports.
Optional AI
Two buttons sit next to the assist brain picker:
- Draft empty section
- Critique pillars / loop
Both are disabled when Brain = None or CharterAiAssist.IsBrainReady is false. The status / helpbox shows the reason (mechanical only, missing CLI, missing Unity AI package, missing extra URL/key). Score and Export Markdown still work.
CLI brains (Grok / Claude / Codex) follow Scribe: logged-in binary on disk, Detect paths, no pasted key. A missing binary fails loud. Unity AI, Ollama, and key extras stay extras — never required.
Draft fills only currently empty text fields: vision, empty pillar use when deciding, empty loop fields (verbs / state change / feedback / hook), empty slice brief. Filled text is never overwritten. Charter does not invent Unity APIs or fake engine types. If nothing is empty, Draft does not call the brain.
Critique returns notes in an EditorUtility.DisplayDialog (full text also on the status line). It does not auto-apply edits.
See Documentation/OpenPlan.md.
Source in the box: Assets/ArTchie Studios/ArTchie-Suite/com.artchie.charter/Documentation/Export.md