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
4of4
Moves
plan.transitionWhat 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.