Repository navigation
Standard Format
Beta prerelease: validate the selected version in your project. See the release policy.
SYSTEMX defines a reusable project operating format. It is a project-maintained convention, not a certification or an externally ratified industry standard. Documentation can be used without the CLI. The CLI validates the JSON records and generated views described here; it does not execute an agent runtime.
- Put the complete
.SYSTEMXdirectory at the host project root. Preserve exact path casing on every system; the stored folder name must be.SYSTEMX. A local lowercase alias may only route to that directory under the exact-case contract. Use UTF-8 text and relative references. -
VERSIONidentifies the template release. Each canonical JSON document has its own integerschemaVersion; version 1 rejects missing or unknown fields. - Add project-specific metadata in separate project-owned documents and link them from Global context. Do not silently extend canonical JSON records.
- Emit UTC ISO 8601 timestamps with
Z. The reader accepts explicit timezone offsets. History begins atcreatedAtand timestamps cannot go backwards. - A compatible template update can keep record schema version 1. Incompatible record changes need a documented migration before an existing project adopts them.
- Reusable prompts stay blank until adoption. Example IDs, dates, and commands in documentation are illustrations and grant no authority.
| Canonical file | Owns | Derived or supporting files |
|---|---|---|
GLOBAL/CONTEXT.md |
Project identity, constraints, accepted sources | Project brief and architecture references |
GLOBAL/ACCESS-MATRIX.json |
Canonical selected-scope reviewed intents, denials and gaps; 20 default-deny actor/pattern prompts | XLSX review projection and optional Markdown narrative; Access Matrix grants no host permission |
PLAN/MASTER-PLAN.md |
Outcomes, milestones, acceptance, sequencing rationale | Task ID references |
PLAN/MAP.md |
Project-owned pointers to source locations, system interfaces, trust boundaries, and evidence routes | System MAP; accepted source hierarchy stays in Global context |
ROOT/SX-RULES.md / ROOT/SX-MILESTONE.md (optional) |
Internal coordination conventions and planning/tool-card vocabulary | ROOT planning and task delta |
ROOT/PLAN.json (optional) |
Request provenance and structural nodes referencing existing milestones/tasks | Derived progress; no duplicated task state |
ROOT/MIRRORS.json (optional) |
Actual external item bindings, timestamped observations, and bounded cards | Read-only task delta; no continuous connector |
WORK/TASKS.json |
Task ownership, state, dependencies, evidence, history | Six generated work views |
WORK/FOCUS.json |
Selected objective, existing task IDs, checkpoint pointer | Generated CURRENT.md
|
AGENTS/REGISTRY.json |
Stable role IDs and memory paths | Each role's scoped memory |
MEMORY/PROJECT.md |
Verified durable facts, decisions, lessons | Dated session checkpoints |
AUTOBOT/CATALOG.json |
Ten fixed specialist identities/functions and Agent Alpha coordinator | Selected specialist .MD documents and AGENTA.MD
|
AUTOBOT/REQUESTS.json |
Explicit detail request identity and retained completion evidence | Bounded context and selected freshness status |
AUTOBOT/AGENDA.json |
Optional Agent Alpha selected-scope settings, blank by default | Read-only session settings; no timer or scheduler |
AGENTB/BOTS.json |
Named BOT/DOT metadata and canonical task references | One AGENTB/.SYSTEMXB-BOT_NAME directory per instance; no provider session |
DATA/.gitignore |
Default local payload exclusion policy | Exact tracked README scaffolds; data audit
|
project.json |
Explicit host-project commands | Empty config/project.example.json
|
INSTALLATION.json (managed installs) |
Selected defaults release, version pin, profile, update policy, fingerprints | Retained defaults under .systemx/releases/<version>/
|
Keep raw/private runtime artifacts in ignored local storage. A role is not a
running process; a report is not an authorization grant; a generated view is
not a second editable ledger. Preserve original evidence when superseding it.
The access matrix and map are blank Markdown records until adoption, not new
canonical JSON schemas. A child .SYSTEMXP keeps its own blank copies at
GLOBAL/ACCESS-MATRIX.md and PLAN/MAP.md; existing populated child files are
never reset to match a newer seed. Neither document duplicates WORK/TASKS.json
or WORK/FOCUS.json.
The top-level object contains exactly schemaVersion and tasks (an array).
Every task contains the following fields; none are optional in stored records.
| Field | Type and rule |
|---|---|
id |
Unique TASK- ID with at least three digits and a positive number; CLI allocates the next number |
title |
Nonempty string |
owner |
An ID in the agent registry |
status |
todo, in_progress, blocked, needs_review, done, or cancelled
|
milestone |
Empty string or an M- ID with at least three digits declared in the master-plan table |
scope |
Array of nonempty strings describing intended files/systems; may be empty during intake |
acceptance |
Nonempty array of nonempty acceptance criteria |
dependsOn |
Unique IDs of existing tasks; no cycles |
nextAction |
String; required for in_progress, empty for terminal states |
blocker |
Nonempty only for blocked; empty in other states |
evidence |
Array of nonempty evidence references/descriptions; required for done
|
reviewedBy |
agent.0 or user for done; otherwise empty |
createdAt, updatedAt
|
Timezone-aware ISO timestamps |
history |
Nonempty chronological array of state events |
Each history event contains exactly at, status, owner, note, evidence,
and reviewedBy. History starts at todo; the latest event must match the task's
state, owner, evidence, reviewer, and update time. Completed events retain their
evidence and reviewer. Cancelled tasks need a nonempty reason in the latest note.
| Current state | Allowed next states |
|---|---|
todo |
in_progress, blocked, cancelled
|
in_progress |
todo, blocked, needs_review, cancelled
|
blocked |
todo, in_progress, cancelled
|
needs_review |
in_progress, blocked, done, cancelled
|
done or cancelled
|
todo |
Nonterminal states also accept updates without a state change. Dependencies must
be done before a task is active, under review, or complete. Reopening terminal
work clears its current evidence/reviewer while preserving historical events;
reopen dependent work first when necessary to keep that invariant valid.
Evidence sufficiency requires review under the evidence guide. The CLI checks metadata consistency, not identity, authenticity, or product quality.
WORK/FOCUS.json contains exactly schemaVersion, objective, taskIds,
checkpoint, and updatedAt. Its blank state has empty strings and an empty
task list. Active focus needs a nonempty objective (maximum 600 characters) and
a timestamp. It can select up to ten unique existing task IDs, including completed
context. A checkpoint is empty or a path to an existing Markdown file under
MEMORY/sessions/; absolute paths, parent escapes, symlinks, and archive README
pointers are rejected. Selection replaces the whole focus; it never changes tasks.
AGENTS/REGISTRY.json contains exactly schemaVersion and agents. Each agent
has id, role, and memory. IDs are unique agent.0, agent.1, etc., without
leading zeroes, plus agent.x (event-time), agent.y (cli-worker), and
agent.z (review) after explicit activation with compatible tools. From
1.10.0-alpha.2, separate autobot init --apply can add agent.a
(autobot-coordinator); X/Y/Z roles-init does not activate Alpha. Agent 0
must have role coordinator; other roles are nonempty
descriptions. Memory must exist at AGENTS/<id>/MEMORY.md, without symlinks.
project.json contains schemaVersion, project, checks, and commands.
project contains string name and description fields. Checks are objects with
unique nonempty name and nonempty command argument arrays. Commands contain
exactly dev, build, and deploy; an empty array leaves an action unconfigured.
See configuration and work commands.
The optional agent-message schema describes messages,
with its own lifecycle. It neither replaces the task ledger nor adds a bus or
scheduler. Its $id is a schema identifier; the CLI does not fetch it or contact
any vendor. A general JSON Schema validator is needed to enforce that schema.
Use validate for an adopted project. Use validate --template on a pristine
distribution before publication. The latter also requires:
- Reject unexpected public DATA paths before JSON/Markdown content inspection. This strict distribution inventory is separate from adopted DATA audit, which stays bounded and does not traverse payload content.
- Only the explicitly listed distribution files; no local artifacts, initialized project config, extra workers, custom documents, caches, or dependencies.
- Blank work and focus, Agent 0 only, and empty example command configuration.
- An empty project registry and blank child creation seeds; no adopted
.SYSTEMXPfolders. - Reviewed blank context, plan, and memory seeds matching
config/template-records.jsonSHA-256 values (UTF-8 text normalized to LF). - A complete
config/distribution.jsoninventory whose file fingerprints match the published release, including its own version and blank-record manifest.
An adopted project is expected to fail the blank-template check after it records real work. This check is not a secret scanner or an approval of every sentence; maintainers still review the source, provenance, examples, and exact export. If a blank prompt intentionally changes, review that change and update its seed hash. Do not rebaseline populated project records to make them publishable.
Publish from the reviewed tracked revision, excluding local artifacts. For a folder-only archive from this distribution repository:
git archive --format=zip --output=../SYSTEMX-template.zip HEAD .SYSTEMXExtract the archive and run validate --template there before sharing it. The
MIT license and source attribution remain part of every copy. Follow the
upgrade guide when merging into an active project.
The optional INSTALLATION.json contains exactly schemaVersion, profile,
repository, activeVersion, pinnedVersion, autoUpdate, installedAt,
updatedAt, releases, and archiveDigests. Existing schema-1 state is read
compatibly and converted to schema 2 on its next manager-owned state write;
older releases receive a null archive receipt. Profiles are project,
directory, drive, or chat.
Repository is a GitHub OWNER/REPO. Version IDs are exact X.Y.Z final releases
or X.Y.Z-alpha.N prereleases, with no leading zeroes and alpha N starting at 1.
The selected ID determines the discovery channel; see release policy.
pinnedVersion is either null or the active version. In the 1.8.9 and later
check-only managers, a pinned version may use either autoUpdate: "manual" or the opt-in
"on-start" release notice. The notice never selects a release. Older root
managers may retain automatic startup selection until explicitly refreshed.
releases maps retained version IDs to their distribution-manifest SHA-256 values.
archiveDigests maps the same IDs to null or a receipt with sha256 and
verifiedBy (explicit-pin or observed-only). A receipt is not a publisher
signature.
An update appends a verified default snapshot and creates missing root files. It never replaces or deletes an existing project file, folder, or release snapshot. Only manager-owned selection/check metadata changes, with earlier selection states retained. Root VERSION and copied default files therefore retain their initial contents; the selected defaults version comes from INSTALLATION.json. Running a selected release must use the outer project's mutable records. Snapshot records are blank seeds and never become the active project's ledger or memory.
The distribution manifest contains exactly schemaVersion, version, and
files, mapping portable relative file paths to SHA-256 fingerprints normalized
to LF. It excludes its own fingerprint. Immutable release snapshots include the
manifest itself; installation state records that manifest's fingerprint.
Fingerprints detect changed artifacts relative to the selected source; they are
not independent publisher signatures. See installation
for policy, local locking, interrupted writes, and filesystem limits.
Projects/REGISTRY.json contains exactly schemaVersion: 1 and projects.
Each entry has exactly name, path, records, and kind. Paths are relative
to the outer .SYSTEMX and must equal Projects/NAME and
Projects/NAME/.SYSTEMXP. Names are unique ignoring case; use the exact stored
spelling for selection. The public registry is empty.
A child's ledger, focus, agent registry, and project.json use the contracts
below, scoped to that child. project.name must match its registry name.
SOURCES.json contains schemaVersion: 1 and sources; each source has kind,
location, and description. See SYSTEMX PROJECTS for allowed
kinds, path rules, local status snapshots, and command examples.
IDs and dependency edges stay inside one ledger. Qualified project/task references
are prose coordination links, not cross-ledger dependencies. Each child has its
own Agent 0 memory but shares the outer defaults, pin, and update policy.
There are no nested .SYSTEMX installs, implicit current project, automatic
source transport, or recursive child workspaces. Unknown custom registries need
reviewed migration; the tools reject them without replacing their files.
This section includes the 1.9.0-alpha.2 Agent Y extension. In the older
1.8.9-alpha.1 release, roles-init --apply activates
X/Z only and has no Agent Y job ledger.
The public registry remains Agent 0 only. roles-init --apply explicitly adds
standard role entries and project-owned records while preserving existing bytes.
Activated agent.x/agent.y/agent.z IDs require tools that support them;
older readers are not compatible with those added IDs. Record schema version 1 is otherwise
unchanged. A downgrade after activation requires a reviewed migration or backup.
EVENTS/EVENTS.json contains schemaVersion: 1 and events. Each event has id,
key, at, recordedAt, actor (kind, id), kind, stage, summary,
tasks, revision, and evidence. Stable-key replays preserve the original
record and conflicting facts are refused. EVENTS/SCHEDULE.json contains
schemaVersion: 1 and items, with one due occurrence per item and explicit
open/complete/cancelled bookkeeping. See Agent X.
AGENTS/agent.y/JOBS.json is a scoped, portable Agent Y handoff ledger created
only after role activation, with top-level schemaVersion: 1 and jobs. Each
job refers to one existing agent.y-owned task, one selected provider, a
repository identity and observed base revision, allowed file scope, execution
result, and optional owned GitHub branch/PR lifecycle. It records identities,
revisions, and evidence references rather than raw prompts, full transcripts,
absolute host paths, or configured adapter arguments. An ignored, owner-only
state/agent-y/Y-<id>.json sidecar in the selected scope holds local repo,
prompt, and worktree paths plus configured arguments. Do not publish or sync that
host-local state; a portable job alone cannot resume execution on a different
machine. A whole-folder copy may include ignored files, so inspect backup scope.
The job does not replace task status, authenticate the provider, or install its
CLI. A draft PR is opt-in after a successful run; ready, abandoned close, and
verified cleanup after merged/accepted state are separately gated. Cancelled
unmerged work is retained. Agent Y has no merge
command. See Agent Y for commands and authority boundaries.
REVIEWS/POLICY.json contains schemaVersion: 1, policyId, version, and
exactly ten categories, each with id, name, and exactly ten questions
(id, question). Stable IDs are C01–C10 and Z01.01–Z10.10. A question change
requires a new policy version; used policy versions are frozen under policies/.
Requests retain the subject, code/input revision, evidence revision, stage,
policy snapshot/hash, and all 100 answers. Reports preserve answers, derived
scores, source fingerprints, and time. See Agent Z for the
answer contract, scoring, comparison, and immutable-report behavior.
Normal validation checks current optional event/schedule ledgers, Agent Y jobs,
and review policy when present. Historical review requests/reports have explicit selected-ID
validation; they are not all loaded into context. None of these records replaces
WORK/TASKS.json, authenticates a worker, or proves evidence independently.
The generic public panel retains ten exact named specialists plus AGENTA.MD.
Its registry remains Agent 0 only until explicit adoption. autobot init --apply
adds agent.a (autobot-coordinator) and missing selected-scope records without
replacing existing bytes. This is separate from X/Y/Z roles-init; no role
activation starts a process or expands authority. AUTOBOT manual.
AUTOBOT/CATALOG.json contains exactly schemaVersion, coordinator, maximum,
and bots. Coordinator is agent.a, maximum is integer 10, and the ordered list
retains exactly ten stable slots: autobot.design, autobot.soul, autobot.memory,
autobot.rules, autobot.research, autobot.brand, autobot.media,
autobot.tokens, autobot.data, and autobot.archive. Each slot contains id,
name, file, and a bounded nonempty functions array. IDs, names, exact-case
AUTOBOT/Design.MD through Archive.MD paths, and slot order are fixed; adopted
project functions/detail can change within the reviewed schema.
AUTOBOT/REQUESTS.json contains exactly schemaVersion and requests. Each
request has id, createdAt, identity, state, and completion. Identity
contains selected scope, caller, purpose, external input revision label, optional
existing task ID, selected sorted specialist IDs, catalog policy hash, and the
charter/selected-file path/hash/byte inventory. ID is ABR- plus 20 hexadecimal
characters from that identity's fingerprint. State is requested or complete.
A requested record has null completion; completion has completedAt, summary,
responseRevision, and nonempty original evidence references. Time is strict,
chronological, and future timestamps beyond the small host-clock tolerance are
refused. Completion and detail do not modify canonical task status.
Each selected document is bounded at 256 KiB; context at 64 KiB; request history
at 4,096 entries and 8 MiB. Source paths are contained, exact-case, unlinked
files. A repeated identity reuses a completed result without refreshing its
evidence time. Source/catalog changes make a historical result stale and refuse
completion against old context. A declared external input revision is not
fetched or independently checked. Selected status inspects current document
fingerprints; summary status does not scan all historical results. These are
consistency checks and caller claims, not authentication or independent proof.
Optional child panel initialization uses the same schema under its .SYSTEMXP;
no root/sibling facts or requests are inherited. Ordinary default updates are
additive. Context does not preload the panel or recursively read DATA.
DATA/.gitignore ignores payloads by default while allowing only its own policy,
root README, eight exact standard directories, and each directory's direct
README. The directories are TEMP, LARGE, IMPORTS, RESEARCH, ASSETS, EXPORTS, CACHE,
and ARCHIVE. Each re-ignores contents, so arbitrary nested READMEs remain ignored.
A child has a separate optional DATA tree. data init --apply adds missing seed
files only; status/audit are bounded synthetic-ignore-probe and tracked-index
reports, not exhaustive verification of actual untracked paths. A custom per-file
exception can evade the probes; check named exports with git check-ignore.
Git policy is unverified
without a repository/Git. Already tracked/history/force-added files are not made
private by ignore. There is no automatic transport, upload, recursive payload
scan, untracking, or deletion. Full DATA manual.
.SYSTEMX · DOT SYSTEMX · Maintained by Wayne Tech Lab LLC · Repository · User manual · Prompt cookbook · MIT license
Beta 1.11.0-beta.4 prerelease — validate the selected release in your project. Release policy. Project records, configured commands, and verified evidence determine the state of each adopted project.
DOT SYSTEMX · User manual
1. Start here
- Current beta product film: chapters and scenes
- The Guided Folder: historical 4K walkthrough
- Start with a Folder: 4K animated guide
- Introduction video and archived poster
- Advanced walkthrough: inside the coordination layer
- Choose a workspace
- Agent 0 roster: roles, bots, and CLI paths
- Agent 0 and toolchain direct I/O
- First-time setup
- Provider and harness onboarding
- Daily workflow
- One-shot project guide
- Shared workspaces, clouds, and bots
- Historical use-case workflows
- Four current system maps
- Current maps, seven agent guides, and atlas
- 8K engineering master companion
- Agent guide text and CLI flows
- Visual guide and historical diagrams
- 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: 20 standard entries
- Agent Beta, Agent1, and Agenda
- 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