Repository navigation
ROOT Planning and Task Delta
The optional ROOT/ layer connects a request, its planning structure, canonical
tasks, and observations from an IDE/harness or a cloud/bot task list. Use it when
one project spans several execution surfaces or needs more planning detail than
a milestone table. A small task can continue using the existing Master Plan and
WORK/TASKS.json alone.
This guide describes the published 1.11.0-alpha.6 interface. Use a reviewed compatible selection; the wiki can describe features newer than your installed defaults. The versioned SX-RULES.md and SX-MILESTONE.md are the fixed portable guides for that release. See Versions and changelog for verification and publication evidence.
Record in the selected .SYSTEMX or .SYSTEMXP
|
Responsibility |
|---|---|
ROOT/SX-RULES.md |
Internal coordination rules: scope, task authority, bounded work, evidence, reconciliation, and stopping |
ROOT/SX-MILESTONE.md |
Shared planning vocabulary, generic tool-card contract, and worked examples |
ROOT/PLAN.json |
Originating/delegated request records and structural planning nodes referencing existing milestones/tasks |
ROOT/MIRRORS.json |
Explicit external-item bindings, timestamped observations, and reviewed tool cards |
PLAN/MASTER-PLAN.md |
Accepted outcomes, declared M-... milestone IDs, dependencies, and acceptance requirements |
WORK/TASKS.json |
The single canonical task status, owner, dependencies, evidence, and acceptance history |
WORK/FOCUS.json |
Current objective, existing task IDs, and optional checkpoint reference |
| Agent X/Y/Z records | Existing event/time records, CLI job lifecycle, and fixed-policy review evidence |
SX-RULES.md describes how to use SYSTEMX. It does not override the user's
instructions, a higher-priority instruction, host permissions, or a service's
actual access controls. Project/company policy may be linked with its source,
scope, and review date; a local document cannot grant external authority.
ROOT records start blank in the public template. No real project, founder profile, research topic, machine path, or private chat is copied into the seeds.
The directory name ROOT/ denotes this optional coordination layer. The CLI
selector --root selects the outer record scope, while RTask denotes request
origin. Those three uses do not grant operating-system root access.
Use this common order when a project needs all levels:
flowchart TD
R["RTask: originating request"] --> S["STask: optional delegated request"]
R --> M["Milestone: accepted outcome or checkpoint"]
S -. "bounded scope" .-> T
M --> W["Wave: group of related phases"]
W --> P["Phase: coherent task list"]
P --> G["Group: optional task collection"]
G --> T["Task: canonical TASK ID"]
T --> U["Subtask: optional smaller scope"]
U --> A["Single action: next concrete step"]
The diagram describes planning meaning, rather than a mandatory execution chain.
Requests provide provenance; a delegated request can cover several tasks without
becoming another depth level. A milestone node references an M-... ID already
declared in the selected Master Plan. Planning nodes carry references and
structure, rather than a second set of task statuses.
| Term | Practical meaning | Rule |
|---|---|---|
| Milestone | A measurable outcome or major checkpoint | Require the agreed evidence; structural progress never accepts it automatically |
| Wave | A group of related phases that contributes to an outcome | Size it for dependencies and review capacity; it need not run concurrently |
| Phase | A coherent task list, such as discovery or integration | Group work by purpose and its gate |
| Group | Optional collection within a phase | Omit it when it adds no useful distinction |
| Task | Bounded work with ownership and acceptance | Use an existing canonical TASK-... ID |
| Subtask | Optional finer planning detail | Give independently owned/accepted work its own canonical TASK-... ID |
| SingleTask / single action | One concrete step within a task | Represent it with an action node or a checklist/next action unless separate ownership or acceptance is needed |
| RTask | The originating request from a person or harness | Keep the accepted objective/source reference stable |
| STask | A child, follow-up, or delegated request linked to its parent request | State its narrower scope; it starts no separate agent and changes no task state |
| Event | An observed incident, crash, bug, unknown, or time observation | Record with Agent X and link relevant tasks; it is not a planning depth |
Skip optional levels. For a small change, a milestone and one task may be enough.
For a larger app, a milestone might have two waves, each with a few phases and
only the tasks needed next. Display labels such as 01-01-01 are navigational
addresses; use stable record IDs for references when the plan is rearranged.
There is no mandatory 10-by-10 nesting. Ten phases × ten waves × ten groups × ten tasks × ten subtasks × three actions would produce 300,000 actions for one milestone. Generating that skeleton would spend context and create maintenance work before discovering whether those actions are needed. Expand the next bounded segment, retain later outcomes at a higher level, and revise the plan when new evidence changes the scope. Worker limits and the ten-task focus limit are separate execution constraints.
A ready execution batch is the non-conflicting work selected for concurrent workers. It can draw tasks from an eligible phase or wave; it does not redefine “wave,” erase dependency gates, or authorize additional processes.
- SYSTEMX: canonical tasks, focus, plans, evidence, and acceptance.
- IDE/harness: the app's current plan items, native subagents, tool results, and UI task state.
- Optional cloud/bot: provider run IDs, remote task items, automation observations, or a CLI/bot's execution state.
These surfaces need traceable agreement about the same work; they do not need
the same number of rows. One IDE item can map to several canonical tasks, and
one task can have several provider attempts. Bind each external identity to its
actual selected scope and existing TASK-... references.
flowchart LR
C["WORK/TASKS.json\ncanonical task + acceptance"] --> D["Read-only ROOT delta"]
H["Harness item\nidentity + observed state/revision"] --> D
B["Cloud/bot item\nidentity + observed state/revision"] --> D
F["Binding + task fingerprint\ntime + evidence"] --> D
D --> Q["Explain mismatch / unknown\nchoose next reconciliation action"]
Q --> O["Authorized owner reviews\nthen updates the correct surface"]
A saved observation records what a caller saw, at a stated time and source revision, plus its evidence references. It is a snapshot, not a live connector or proof that remote work happened. A later change to the canonical task makes an earlier observation's task fingerprint stale even if its raw label still looks compatible.
root delta reports mapping, freshness/revision, and status differences for a
bounded selection. It assesses the harness layer by default. Use repeated
--layer harness --layer bot to assess both; a layer you omit is explicitly
not_assessed, rather than missing or implicitly synchronized. Do not invent a
bot item when the project uses no bot. An
observation without --expected-revision keeps the revision explicitly
unverified. When supplied, the expected revision is a caller-declared comparison
value; SYSTEMX does not fetch the external source to establish its truth. Treat
unmapped, stale, unknown, unavailable, or unverified items as unresolved. A
successful local command means that the bounded operation completed; it cannot
prove an IDE plan, provider account, or cloud application remains synchronized.
Read back the actual external surface using its available authorized tools, then
record a fresh observation. Default freshness is change-based. A deliberate
root delta --max-age-seconds N can add an age boundary for time-sensitive work;
expiry is a reason to inspect the situation, not an automatic retry schedule.
The default selection uses current focus when available, otherwise active tasks
first, with 10 tasks returned by default. --task selects explicit existing
IDs and --limit accepts 1–100. Coverage counts and truncation state describe
the selected candidate set; a bounded result is not a claim about every task in
the ledger. At most ten matching bindings per task/layer are returned, with
truncation reported.
Correct a binding with root bind ... --supersedes BIND_ID, using a new key and
retaining the original history. Supersession keeps the same layer/channel. A
corrected mapping can retain the same external item and revise its task set; a
replacement external attempt can change the item only while retaining the same
canonical task set. Original bindings and observations remain stored, while the
superseded binding leaves the current comparison. Supersession does not cancel
a provider job, close a PR, or remove external resources. Verify the earlier
process handle before starting conflicting replacement work. Current binding
alignment does not claim that every historical attempt succeeded.
| External observation | What the owner must still establish |
|---|---|
| Pending / running | Which canonical tasks it covers and whether their recorded state agrees |
| Blocked | The actual blocker, scope, and next action; do not reduce it to plain pending |
| Completed / CLI exit 0 | Execution may be ready for review; task acceptance and any live outcome remain separate |
| Cancelled | Retained work, cancellation reason, and owned-resource disposition |
| Unknown / unavailable | Access or evidence is missing; no completion inference |
An external item covering several canonical tasks is compared with the aggregate state of all bound tasks, including members outside the requested delta selection. One accepted task plus one active task expects a running item; it does not create a mismatch merely because the accepted member is done. All remaining non-cancelled members done/under-review can project to completed, while canonical acceptance remains separate for each task. A change to any bound member makes the captured canonical fingerprint stale. The comparison does not hide a changed member merely because only another member was selected.
For an external item, cancelled members are omitted when other members remain; their canonical cancellation/history stay intact. Projection rules apply in this order:
| Covered canonical tasks | Compatible external state |
|---|---|
| All cancelled | cancelled |
| Remaining members all done or needs-review | completed |
| Blocked plus in-progress |
blocked or running
|
| Blocked without in-progress | blocked |
| In-progress, or done/review mixed with pending work | running |
| Remaining members all todo | pending |
An IDE may expose only pending, in-progress, and completed. That lossy projection
must preserve SYSTEMX blocked, needs_review, and cancelled distinctions in
annotations/evidence. Never mark a canonical task done merely to match a
provider's completed label. Agent 0 or the user accepts a task through the
existing reviewed transition after its criteria are met.
A useful reconciliation pass reads the canonical task and exact external item, compares revisions and evidence, classifies the difference, updates only the correct surface under existing authority, and records the readback. Stop when the evidence has not changed or access is unavailable. Do not repeat the same check indefinitely or create a new worker just because a delta exists.
ROOT is optional in adopted projects. Initialization previews missing files;
--apply adds the reviewed seeds while preserving existing project files.
Enable it separately in each scope where it is useful. Run relative launcher
commands from the outer workspace directory containing the intended .SYSTEMX:
cd "/path/to/workspace"
# Outer records: preview, then apply the reviewed addition.
bash .SYSTEMX/SYSTEMX.sh root init
bash .SYSTEMX/SYSTEMX.sh root init --apply
bash .SYSTEMX/SYSTEMX.sh root status
# A registered child has independent ROOT records.
bash .SYSTEMX/SYSTEMX.sh projects root init --project Project-A
bash .SYSTEMX/SYSTEMX.sh projects root init --project Project-A --apply
bash .SYSTEMX/SYSTEMX.sh projects root status --project Project-A
# Installed manager: target is the directory containing outer .SYSTEMX.
systemx run --target /path/to/workspace --offline -- root status
systemx projects --target /path/to/workspace -- root delta --project Project-AThe child does not receive another CLI/default cache or nested .SYSTEMX.
.SYSTEMX/ROOT means the outer record layer; a child's equivalent is
.SYSTEMX/Projects/Project-A/.SYSTEMXP/ROOT. Root and child IDs are local to their
scope. Include that scope in every handoff.
root packet --task TASK_ID returns selected canonical work and bounded related
request/node/card references. Repeat --task to select several tasks; --limit
accepts 1–10 and the complete packet must fit 64 KiB. The command reports
selection truncation and refuses an oversized packet, rather than silently
removing task acceptance criteria. Select fewer tasks and leave large evidence
behind references when needed. It makes no remote observation or tool call.
The packet cap measures the actual final CLI output in UTF-8 bytes, including indented JSON, scope/limit metadata, and its trailing newline. Other ROOT command replies are bounded to 128 KiB. An output-cap refusal happens before a request/node/binding/observation/card replaces its ledger; initialization also checks its final response before writing scaffolds or an operation log. This specific rejection leaves records unchanged. Other filesystem failures retain the normal atomic-write and operation-receipt behavior.
root status derives milestone task counts from unique canonical task IDs,
including descendant references and canonical milestone assignments. Counts
show recorded task progress, while milestoneAcceptanceEstablished remains
false: accepting the milestone's outcome still requires the agreed review. An
empty set is not an accepted milestone.
Run this example only in an adopted project. Replace example references and use the IDs actually returned by each command:
bash .SYSTEMX/SYSTEMX.sh root request \
--key initial-brief --kind rtask --title 'Build the accepted application' \
--source-ref 'approved-brief.md' --applyAn STask uses --kind stask --parent RETURNED_REQUEST_ID with its own title,
source reference, and stable key. Declare M-001 in the selected
PLAN/MASTER-PLAN.md table before creating its canonical task. For example:
| ID | Outcome | Acceptance evidence required | Dependencies | Task IDs |
| --- | --- | --- | --- | --- |
| M-001 | Reviewed project baseline | Reproducible setup and retained relevant checks | None | Fill with the returned task ID |Then create the task with that same canonical milestone assignment:
bash .SYSTEMX/SYSTEMX.sh task-add \
--title 'Establish the project baseline' --milestone M-001 \
--acceptance 'Setup is reproducible and relevant verification evidence is retained' \
--next 'Inspect the actual project setup and required checks'The following commands assume the returned ID is TASK-001 in a fresh ledger.
Use the actual returned ID throughout if it differs. Add that ID to the Master
Plan row. An existing unassigned task cannot be placed under an M-001 planning
node; its canonical milestone must already match. The standard task-set command
does not reassign milestones. Omit milestone ancestry for unassigned work, or
review a deliberate canonical-record migration while preserving its history.
Declaring a milestone is not accepting its outcome.
bash .SYSTEMX/SYSTEMX.sh root node \
--key baseline-outcome --kind milestone --title 'Reviewed project baseline' \
--request RETURNED_REQUEST_ID --milestone M-001 --apply
bash .SYSTEMX/SYSTEMX.sh root node \
--key baseline-task --kind task --title 'Establish the project baseline' \
--request RETURNED_REQUEST_ID --parent RETURNED_MILESTONE_NODE_ID \
--task TASK-001 --applyroot node supports milestone, wave, phase, group, task, subtask, and action
kinds. Referencing tasks does not create, reassign, or complete them. Keys make a
repeated intended operation identifiable; inspect an existing result rather than
creating duplicate records with a different key.
bash .SYSTEMX/SYSTEMX.sh root bind \
--key app-plan-baseline --layer harness --channel 'current-ide-session' \
--item 'actual-plan-item-id' --task TASK-001 --apply
bash .SYSTEMX/SYSTEMX.sh root observe \
--key baseline-readback-1 --binding RETURNED_BINDING_ID \
--raw-state 'in progress' --state running \
--revision OBSERVED_SOURCE_REVISION \
--expected-revision EXPECTED_SOURCE_REVISION \
--evidence 'retained-tool-result-or-record-reference' --apply
# Assess the actual layers used by this project.
bash .SYSTEMX/SYSTEMX.sh root delta --task TASK-001
bash .SYSTEMX/SYSTEMX.sh root delta --task TASK-001 --layer harness --layer botUse --layer bot for an actual cloud/bot/provider identity. Repeat --task on a
binding for several existing tasks and --evidence on an observation for
multiple references. The fresh task in the example is still canonical todo;
a real external running observation therefore exposes state_difference.
That is a successful report of disagreement, not a command failure. Record the
actual external state and follow the normal task workflow; do not rewrite a
canonical state simply to make the delta look aligned. Assessing bot without
a real bot binding likewise reports unmapped work.
The normalized observation states are pending, running,
blocked, completed, cancelled, unknown, and unavailable; preserve the
original label in --raw-state. An optional --at supplies an actually observed
time. Evidence references and revision strings remain caller claims until
independently checked. Keep credentials and raw private transcripts out of
public records.
Some harness plan tools expose an item list without a native revision. Capture
the actual observed plan snapshot and use a reproducible digest of that
snapshot when a revision identity is needed. Label it plan-snapshot digest
(for example observed-snapshot:sha256:ACTUAL_DIGEST), retain the capture time,
scope/tool readback evidence, and document the normalization used to make the
digest reproducible. A Git commit ID describes source code; it cannot silently
stand in for the harness plan's version.
If no trustworthy source revision or snapshot is available, retain
revision_unverified by omitting --expected-revision and recording the
limitation honestly. Equality between caller-supplied source and expected
revision strings remains an attested comparison. ROOT does not fetch the plan
or authenticate either value.
A tool card is a bounded, inspectable handoff describing the selected task, request/scope, advertised capability, reviewed inputs, expected effect, permissions, source revision, required evidence, and stopping condition. It helps a model choose the next real tool call. It does not install a provider, create a tool, bypass consent, or execute a shell/MCP call by existing on disk. For example, after identifying an existing task and the real enabled tool:
bash .SYSTEMX/SYSTEMX.sh root card \
--key inspect-baseline --task TASK-001 \
--provider ACTUAL_HARNESS_OR_PROVIDER --tool ACTUAL_ADVERTISED_TOOL_NAME \
--purpose 'Inspect the agreed baseline evidence' \
--input-revision REVIEWED_INPUT_REVISION \
--expected-evidence 'Retained result with task and source revision' \
--permission-boundary 'Read only within the accepted project scope' \
--stop-condition 'Return the result or the first unresolved access blocker'Inspect the preview, then repeat with --apply to save the card. Repeat
--task or --expected-evidence where appropriate; optional --request links
the originating/delegated request. Saving a card does not invoke its named tool.
The host supplies available tool names, input schemas, confirmations, and results. Inspect those capabilities in the current session and use the actual advertised interface. VS Code tools can be built in, extension-provided, or MCP-provided; their availability depends on the session's enabled tools. VS Code tools documentation, extension tool contract. MCP exposes a discovery/call protocol and input schemas; SYSTEMX's card does not implement that protocol or turn a hint into an authorization boundary. MCP tool specification.
Keep argument descriptions minimal and reviewed. Use existing Agent Y jobs for provider execution, Agent X events for observed timing/incidents, and canonical task evidence for acceptance. A card links those records rather than duplicating full job histories, prompt transcripts, or output streams.
| Role | ROOT coordination responsibility |
|---|---|
| Agent 0 | Resolve the originating objective and scope, select bounded ready work, reconcile delta, review evidence, and own task acceptance |
| Agent X | Record actual events/time and link task/revision/evidence; preserve failed attempts without automatically retrying |
| Agent Y | Carry a separately authorized CLI task and optional draft-PR handoff under its existing lifecycle gates |
| Agent Z | Apply its fixed review to the named subject/policy/evidence revision; changed inputs may justify another review |
| AGENTA / Agent Alpha | Retrieve selected specialist detail and reuse unchanged results with their original evidence time |
| Native subagent / external bot | Execute the bounded assignment its actual harness authorized, then return an evidence-backed result |
A request, event, card, or mismatch does not automatically trigger every role. Call only the role needed next. Agent Z's score cannot accept a task, Agent Y's exit code cannot certify delivery, and AGENTA's detail result cannot change the canonical backlog. Agent 0, Agent X, Agent Y, Agent Z, Agent Alpha.
For a new web app, accept one researched brief as an RTask. Declare milestone
M-001 for a verified foundation, organize a small discovery/foundation wave,
and give each phase only the tasks that can currently be scoped. Map the IDE's
“Foundation” item to those tasks; bind a provider attempt separately if Agent Y
or an authorized cloud bot is used.
When a provider reports completed, record that observation and retain its actual
revision/output. Review the diff/checks against the original task criteria; use
needs_review while acceptance is pending. An incident becomes an Agent X event
and, if actionable, a separately scoped follow-up task. After acceptance, refresh
the harness/cloud projection and save the readback. Later delivery and live
verification remain explicit tasks with their own required evidence.
For two research topics, use registered child scopes Project-A and Project-B when sources, access, or acceptance differ. Each child's Global context, Master Plan, tasks, ROOT records, and memory remain independent. Keep only deliberately shared constraints and portfolio outcomes in the outer records. A source URL provides a location; actual read/write access and transport remain external.
On interruption, preserve the accepted objective, scope, request/node/task IDs, source and evidence revisions, actual last observations, failed attempts, remaining delta, blocker, and one concrete next action. Save a session checkpoint and select it in focus when appropriate. An explicit stop/pause instruction ends new execution; checkpointing must not silently restart workers or loops.
A later session checks the saved revisions and changed inputs, then resumes the next authorized step. Reuse still-valid evidence and report its original time. Read only the relevant ROOT segment and selected role/reference detail; the entire planning tree is not required context for every turn.
Planning and memory · Task workflow · One-shot project guide · Shared workspaces, clouds, and bots · CLI and Tools
The refreshed four-part infographic shows this
layer together with Agent 0/X/Y/Z, AGENTA, all ten AUTOBOTS, DATA, and named
.SYSTEMXP scopes. The overview identifies internal rules/planning and the three
task surfaces; the detailed pages trace selected evidence and context routing.
Read the accompanying text for exact file paths and limits. The pictures show a
coordination workflow: local observations → read-only delta → Agent 0's
authorized tool action → external readback. They do not install an IDE/cloud
connector, synchronize TODOs in the background, or accept a task because an
external item reports completed.
.SYSTEMX · DOT SYSTEMX · Maintained by Wayne Tech Lab LLC · Repository · User manual · Prompt cookbook · MIT license
Alpha 1.11.0-alpha.6 — use at your own risk; may change daily. Release policy. Project records, configured commands, and verified evidence determine the state of each adopted project.
DOT SYSTEMX · User manual
1. Start here
- Start with a Folder: 4K animated guide
- Introduction video and 4K poster
- Advanced walkthrough: inside the coordination layer
- Choose a workspace
- First-time setup
- Daily workflow
- One-shot project guide
- Shared workspaces, clouds, and bots
- Use-case infographics: four environments
- Four-part system infographic
- Visual Guide
- New chat setup prompt
- Prompt cookbook
2. Work and continuity
- SYSTEMX PROJECTS
- AUTOBOT and Agent Alpha: Tier 2
- Local DATA storage
- Planning and memory
- ROOT planning, rules, and task delta
- System MAP
- Access Matrix
- Task workflow
- Agent X: events and time
- Agent Y: CLI and PR channels
- Agent Z: fixed review
- 100 review questions
- Agent 0 and subagents
- Subagent processing
- Advanced use cases
- Evidence and acceptance
- Anti-drift and long-running work
- Tokens, cost, and time
3. Setup and maintenance
- Project / VS Code
- OS directory
- Google Drive
- LLM chat
- Exact casing and alias
- Installation and updates
- Upgrading
- Uninstall and cleanup
4. Advanced reference
- Standard format
- Technical Guide
- Stack Guide
- Library integration
- CLI and Tools
- Command reference
- Configuration and quality
- Operations and troubleshooting
- Security and support
- Code review and readiness
5. Project information