Skip to content

I3173 — A synced workspace conversation proposes candidate records that cite their conversation and message, and nothing becomes canonical without an act

Map synced workspace content (.ai/local/workspaces) into knowledge candidates and intent proposals through the existing candidate pipeline and intent.propose, each citing the typed workspace reference of ADR 0211 pinned to the upstream message identity (never a positional message index); promotion stays an act.

BLOCKED wave 7 · p2 · implementation profile · parallel safe

Part of external-workspaces — An external workspace is read the way this repository reads anything else, and its content never becomes public by accident.

Blocked. This issue cannot start until I1307, I1308, I3281, I3284 are done. The status is derived from that, not declared.

Objective

Map synced workspace content (.ai/local/workspaces) into knowledge candidates and intent proposals through the existing candidate pipeline and intent.propose, each citing the typed workspace reference of ADR 0211 pinned to the upstream message identity (never a positional message index); promotion stays an act.

Why

Owner, 2026-10-12 and 10-15: the ChatGPT Project should feed intents, milestones and issues automatically; this import was done by hand on 2026-10-18 (board p12). It is local: a vendor caller proposing over the remote surface is I3286. Milestone external-workspaces is named by no intent, so this is derived maintenance. Proposed in ADR 0211 (A record promoted from a workspace cites the message it came from by a typed reference that validates in every checkout and resolves only where the store is held) (proposed; it carries no authority until the owner accepts it). Sources: chatgpt-majordomus:c239#0, chatgpt-majordomus:c267#0, chatgpt-majordomus:c267#2.

Current state

external-workspaces declares the kind and the sync (I1301-I1310); nothing proposes records from synced content.

Desired state

Proposals with citations; nothing tracked carries transcript text.

Scope

  • lib/knowledge.sh
  • apps/majordomus-cli/src/capability/builtin/intents.rs
  • docs/KNOWLEDGE.md
  • .ai/repo/workspaces/README.md
  • test/cases/981_an_observation_becomes_a_grouped_candidate.sh
  • test/cases/2978_an_intent_is_proposed_by_a_capability.sh
  • test/cases/93_workspace_kind.sh

Out of scope

  • Writing to the vendor
  • Storing conversation text in the tracked tree

Dependencies

Acceptance criteria

  • Every proposal cites its workspace reference in the ADR 0211 form, pinned to the upstream message
  • A transcript marker in a proposal is refused
  • Nothing is promoted without an act
  • Each new case named here takes its number from `scripts/case-numbers next` and is announced on the board before the file is written (ADR 0053); a case number written in this record before that is provisional

Validation

  • bash test/run.sh 93_workspace_kind 2978_an_intent_is_proposed_by_a_capability 981_an_observation_becomes_a_grouped_candidate

Evidence required

  • case_workspace_proposes_records

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I3173.yaml. Read it back with majordomus plan show I3173.

Searches the titles and descriptions of every page this site publishes.