planning
No-Example Workspace Bootstrap Phase 1 Plan
Make Forma capable of guiding Human and Agent users from an initialized empty workspace to a usable first content system without relying on examples.
Goal
Phase 1 should prove that Forma can guide a Human and an Agent from an initialized empty workspace to one useful content system without copying an example workspace or assuming this repository's product R&D model.
The default path must be:
- initialize minimal Forma files;
- discover the Human's first durable content workflow;
- translate that workflow into one configured space, one template, and optional first guideline or view;
- create and verify one or two entries;
- explain health diagnostics in the Human's domain language.
Examples can remain available for later acceleration, but Phase 1 success must not depend on loading or copying them.
Current Gap
The current foundation is close but still thin for first-time Human and Agent users:
forma-cli-coreis useful as a command router, but it cannot carry the detailed design workflow without becoming too large.agents.workspace-bootstrapcontains the first-slice flow, but it mixes workflow guidance with a worked example and is not yet treated as the primary no-example contract.- Existing pressure tests cover docs-backed bootstrap and skill context budgets, but the evaluation criteria are not yet wired into a concrete implementation sequence.
- Product-facing docs and Agent-facing skills can easily grow until simple operations load too much context.
Operating Principles
- No examples in the Phase 1 default path. Examples are learning references or Phase 2 accelerators, not Phase 1 inputs.
- First slice before full taxonomy. A usable first workspace can be one configured space, one template, and two entries.
- Human language first, Forma config second. The Agent should restate the content group, fields, relationships, and verification path before editing config.
- Skills route, docs explain.
forma-cli-coreshould stay short and route Agents to the detailed doc only when empty-workspace setup or config authoring is actually requested. - Context pressure is a product constraint. Any change to docs, skills, init output, or embedded guidance must record what an Agent has to load and whether that loaded set is still acceptable.
Usable Standard
Phase 1 is usable when a Human and Agent can complete this flow without examples:
- The Human describes a real domain in ordinary language, such as research notes, customer records, service runbooks, grant applications, or writing drafts.
- The Agent asks enough short questions to choose one first content group.
- The Agent proposes a first-slice dry run with:
- space id and title;
- directory and include pattern;
- required and optional fields;
- relationship fields, or a decision to defer them;
- template path and input values;
- optional guideline or view;
- files to create;
- verification commands.
- After approval, the Agent creates the minimal config and content files.
config inspect,check,create,list,inspect, andworkspace healthprovide understandable evidence.- Isolated-page health warnings are explained as relationship feedback unless the Human expected a connected graph.
Context Pressure Budget
The implementation should keep the Agent's loaded context layered:
| Layer | Purpose | Budget Target |
|---|---|---|
Project-local skills/forma-cli/SKILL.md |
Repo-specific command entrypoint and trust boundary | Short enough to load on every Forma task |
Built-in forma-cli-core |
Required bootstrap checks and routing | Short router; no long examples |
agents.workspace-bootstrap |
Empty-workspace first-slice workflow | Detailed enough to execute, but still a single focused workflow doc |
| Workspace reference docs | Configuration, spaces, schemas, templates, views, guidelines | Loaded only when the specific artifact is being authored |
| Examples | Learning reference or fast-start material | Not loaded in Phase 1 default path |
Every Phase 1 edit that touches Agent-facing guidance must record:
- which skill and doc pages an Agent must load for the target workflow;
- whether ordinary read-only workspace operations avoid bootstrap docs;
- approximate word counts for changed Agent-facing docs;
- whether any worked example should move behind an explicit reference boundary.
Implementation Slices
Slice 1: Make The No-Example Contract Explicit
Files:
docs/agents/forma-cli-core.mddocs/agents/workspace-bootstrap.mdknowledge/test-cases/forma-cli-docs-bootstrap.md
Steps:
- State that no-example bootstrap is the default for empty workspace setup.
- Keep
forma-cli-coreas a router: bootstrap checks, docs to load, trust boundary, and no embedded worked example. - Make
agents.workspace-bootstrapthe detailed no-example workflow contract. - Update the docs bootstrap evaluation suite so the no-example path is a named Phase 1 gate.
- Record word counts for
skills/forma-cli/SKILL.md,docs/agents/forma-cli-core.md, anddocs/agents/workspace-bootstrap.md.
Done when:
- an Agent can identify the no-example path from
forma-cli-core; - ordinary health/read tasks still do not need
agents.workspace-bootstrap; forma-cli-skill-context-budget-pressureremains valid.
Slice 2: Add A First-Slice Dry-Run Format
Files:
docs/agents/workspace-bootstrap.mddocs/workspace/spaces.mddocs/workspace/templates.mddocs/workspace/schemas.md
Steps:
- Add a compact first-slice proposal format to
agents.workspace-bootstrap. - Require the proposal before shared config or content writes.
- Include explicit deferral language for cross-space references until both sides exist.
- Confirm reference docs describe the same
kind: taxonomy,kind: term,taxonomy: spaces, andcreate.templatemodel. - Keep large examples out of the default flow; if a worked example remains, label it as optional reference material.
Done when:
- the Agent can produce a dry run before edits;
- the dry run has enough detail for Human approval;
- the doc path does not require loading examples.
Slice 3: Strengthen Human-Facing Post-Init Guidance
Files:
docs/cli/init.md- CLI init output implementation after locating the exact source file
- generated or embedded Agent runtime skill content, if the implementation owns it
Steps:
- Inspect the current
forma initoutput and generated files. - Add short next steps that point to the no-example first-slice path.
- Avoid promising a full generator or prebuilt workspace model.
- Keep the output concise enough that it does not duplicate
agents.workspace-bootstrap. - Re-run init pressure checks in an empty temporary workspace.
Done when:
forma initstill creates only the minimal bootstrap files expected by the pressure tests;- the next action is clear to a Human or Agent;
- init output does not become a second long bootstrap document.
Slice 4: Rebalance Detailed Examples And References
Files:
docs/agents/workspace-bootstrap.md- optional new reference doc only if the current doc becomes too large
knowledge/test-cases/scenario-driven-workspace-bootstrap-pressure.md
Steps:
- Review whether the current worked first-slice example creates unnecessary context pressure.
- If it does, move it behind an explicit optional reference boundary or separate reference doc.
- Keep the default bootstrap doc focused on questions, translation pattern, dry-run format, and verification sequence.
- Confirm scenario prompts still test generic domains instead of copying the example.
Done when:
- the default bootstrap doc remains executable without a long copied example;
- examples are discoverable only when the user asks to learn from examples or fast-start.
Slice 5: Run The Phase 1 Pressure Gate
Files:
knowledge/test-cases/forma-cli-docs-bootstrap.mdknowledge/test-cases/docs-backed-agent-bootstrap-pressure.mdknowledge/test-cases/scenario-driven-workspace-bootstrap-pressure.mdknowledge/test-cases/forma-cli-skill-context-budget-pressure.md
Steps:
- Run the ordinary read-only workspace scenario and confirm it loads only lightweight guidance.
- Run a fresh empty-workspace bootstrap without examples.
- Run a wrong-config baseline and confirm
checkcatches the expected issue. - Run at least one scenario-driven domain that is not project management, notes, or this repository's product workflow.
- Record commands, temporary paths, loaded docs, approximate word counts, diagnostics, and any docs changed as a result.
Done when:
- the Phase 1 path works without examples;
- context pressure is measured rather than assumed;
- failures produce concrete doc or CLI follow-up tasks.
Verification Commands
Use the source-current CLI during implementation:
cargo run -q -p forma-cli -- skills get forma-cli-core
cargo run -q -p forma-cli -- docs get agents.workspace-bootstrap
cargo run -q -p forma-cli -- docs get agents.workspace-maintenance
cargo run -q -p forma-cli -- docs get workspace.configuration
cargo run -q -p forma-cli -- docs get workspace.spaces
cargo run -q -p forma-cli -- docs get workspace.schemas
cargo run -q -p forma-cli -- docs get workspace.templates
wc -w skills/forma-cli/SKILL.md docs/agents/forma-cli-core.md docs/agents/workspace-bootstrap.md
cargo run -q -p forma-cli -- check --json
cargo run -q -p forma-cli -- workspace health --json
If CLI init behavior, embedded docs, or generated runtime skill content changes, also run the docs-backed bootstrap pressure tests in a temporary empty workspace.
If Rust code or embedded-doc packaging changes, run:
cargo test -p forma-core
Execution Notes
2026-06-29 Slice 1 And Slice 2 First Pass
Completed the first documentation pass for Slice 1 and Slice 2:
forma-cli-corenow names no-example bootstrap as the default empty-workspace path.forma-cli-coreseparates always-loaded checks, read-only commands, and config-authoring setup so ordinary health/read workflows do not load bootstrap docs.agents.workspace-bootstrapnow includes a first-slice dry-run format before shared config or content writes.- The worked first-slice example is reduced to an optional pattern reference instead of a long copyable default.
forma-cli-docs-bootstrapis now explicitly the Phase 1 no-example bootstrap gate and records concrete context budget targets.
Current Agent-facing word-count baseline:
122 skills/forma-cli/SKILL.md
477 docs/agents/forma-cli-core.md
1027 docs/agents/workspace-bootstrap.md
No forma init runtime behavior was changed in this pass. The current implementation already creates the minimal bootstrap files, so Slice 3 should start with docs and pressure evidence before touching Rust output or generated skill content.
2026-06-29 No-Example Pressure Run
Ran the Phase 1 path against a fresh temporary grant applications workspace without loading or copying examples.
Result:
- Happy path passed from
forma initthrough first-slice config, two created entries, list, inspect, check, and workspace health. - Initial isolated-page health warnings were expected relationship feedback and disappeared after adding explicit links.
- The pressure run exposed a runtime gap: an imported config node with
kind: spaceand top-leveltemplatewas silently ignored. - Added
config.unknownNodeKinddiagnostics for unknown imported config node kinds, while preserving recognizedtaxonomy,term,types, andviewnodes. - Re-ran the wrong-config baseline and confirmed
forma check --jsonnow reportsconfig.unknownNodeKindwithstatus: warning.
Temporary workspace: /private/tmp/forma-no-example-phase1.JfWlhJ.
Non-Goals
- Do not build a full workspace generator in Phase 1.
- Do not introduce a product-specific
task,member,note, orprojectmodel. - Do not make examples part of the default bootstrap path.
- Do not recreate the old
knowledge-workflowskill family one-for-one. - Do not add broad policy runtime before there is a concrete write-operation consumer.
Acceptance Criteria
Phase 1 is complete when:
- a no-example bootstrap path is explicit in Agent-facing guidance;
- the first-slice dry-run format is documented and used before edits;
forma initleaves the Human or Agent with a clear next action;- the existing docs bootstrap pressure suite includes context pressure evidence;
- simple workspace read operations still avoid loading detailed bootstrap docs;
- examples remain optional accelerators rather than required inputs;
- repository
checkandworkspace healthpass after the content changes.
Phase 1 Completion Gate
Phase 1 is complete when these evidence records exist and pass:
- no-example grant applications first-slice run;
- lab calibration discovery and first-slice run;
- wrong-config baseline reports
config.unknownNodeKind; - read-only context pressure test confirms ordinary health/read workflows do not load discovery, bootstrap, schema, template, or example docs;
- repository
check,workspace health, andcargo test -p forma-corepass.
Phase 2 may start only after the no-example path remains usable without examples. Phase 2 examples are accelerators for humans who explicitly ask for a fast start, not dependencies of default workspace setup.
Phase 2 Completion Gate
Phase 2 is complete when:
- no-example bootstrap remains the default path;
- workspace design discovery produces a design brief before first-slice config;
- examples are loaded only after explicit human request or accepted no-example design brief;
- example-assisted flows require a dry run before writing files;
- ordinary read or health workflows load only the project-local skill and
forma-cli-core; - first-slice bootstrap uses the short
workspace.first-slice-configreference by default; - context budget evidence is recorded for core, discovery, bootstrap, first-slice config, and accelerator docs;
cargo test -p forma-core,forma check --json, andforma workspace health --jsonpass.
Follow-Up
After Phase 1 passes, Phase 2 can decide how examples should accelerate setup without becoming the default source of truth. That later work can include example selection, copy/adapt flows, and starter workspaces, but only after the no-example baseline is proven usable.