Skip to content
Cockpit0.29.0
A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live

I1301

A workspace is a declared object of the layer; only its content is local

Where it stands

devtask.issue
Readiness
complete completion is recorded and every required evidence token is present
Status
DONE
Can start
not now
Milestone
Milestone status
ACTIVE
Wave
0
Waiting on
none
Holds back
Behind it in all
9
Evidence
4 of 4
A move writes the repository: it stamps one field of this issue's record and appends one event to the ledger, and a commit will carry both.
The same moves from a terminal

majordomus plan start I1301

majordomus plan verify I1301

majordomus plan done I1301

What it is

Objective
Register `workspace` as a kind — allowed keys, schema, directory contract — and declare the first workspace under .ai/repo/workspaces/, so that the catalogue of what may be synced is the repository's own tracked statement while the synced content stays out of the tracked tree.
Why
ADR 0025 established that .ai/local reaches no surface: the Rust index knows one discovery, tracked files through the git index, and excludes the local half at three points. A synced corpus therefore cannot ride the kind pipeline — but the declaration of which workspace exists, who holds it, what the operator authorised and how it is reached carries none of the private content and all of the useful metadata. Declared as a kind it is indexed, readable, listable and projectable for free, exactly as tests/external_extension.rs proves for any other kind.
Now
No workspace kind, no .ai/repo/workspaces directory, no allow file and no schema exist.
Wanted
A workspace object states vendor, workspace identity, the human name, what the operator authorised, the browser profile reference by name only, and the capabilities the adapter is expected to negotiate. It is indexed, closed by an allow file, and carries a context README per ADR 0011.
Done when
unknown: the record declares no `completion`
Risk
A schema written for ChatGPT becomes a ChatGPT file with a generic name. It has to state only what a second vendor would plausibly restate, and push everything else into a named vendor block.

Acceptance

  • The object states vendor, upstream workspace identity, display name, the authorisation the operator asserts, the browser profile reference by name, and the expected capability set
  • Keys are closed by share/allow/workspace.txt and an unknown key is refused
  • The directory carries a context README stating what is authoritative and what is generated, per ADR 0011
  • The object is listed and read through the existing object surface with no code that special-cases it
  • No secret value and no credential name appears in the object or its schema
Validation
bash test/run.shbin/majordomus doctormajordomus generate --check
Evidence required
kind_registeredkeys_closeddirectory_contractobject_indexed
Evidence present
kind_registeredkeys_closeddirectory_contractobject_indexed

Scope

Touches
.ai/repo/workspacesshare/kinds.yamlshare/allow/workspace.txtshare/schemas
Not
Any synced content; the store is I1303Any credential, cookie or token value; the declaration names a profile, it does not hold oneAny Rust that special-cases the kind
Depends on
none
Priority
p0
Profile
deep-work
Parallel safe
true
Owner
unknown: the record declares no `owner`

The work so far

Branches
none
Merged
none
Commits
0
Trunk
master
Sessions
none
Created
2026-09-09
Updated
2026-09-09T18:26:36Z
Started
2026-09-09T18:25:15Z
Verified
2026-09-09T18:26:21Z
Completed
2026-09-09T18:26:36Z

Synchronisation

Adapter
scripts/github-sync
Repository
unknown: the derived plan's header carries no repository
External issue
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
State there
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it

Findings

Nothing is wrong with these records.