Skip to content

Commit 12cbc5a

Browse files
committed
docc: update wrkstrm design-system pages
1 parent bd73c8e commit 12cbc5a

10 files changed

+493
-3
lines changed

design-system.docc/design-systems.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,21 @@ A set of public design guides for DocC authoring, preview workflows, and documen
1212

1313
@Image(source: "clia-design-systems-hero", alt: "Hero: terminal + DocC + tooling")
1414

15+
## Public vs Private
16+
17+
Wrkstrm documentation is split into public and private surfaces.
18+
19+
- **Public** content is publishable (e.g. GitHub Pages) and must be written for an external reader.
20+
- **Private** content is internal-only (operators, local paths, internal benchmarks/incidents, unreleased plans).
21+
22+
### The top level is not a dumping ground
23+
24+
The bundle root should stay small and curated. Add new pages to an appropriate topic folder (for example `docc/`, `tui/`, `spm/`, `svg/`) and link them through the relevant container article.
25+
26+
Treat the boundary as a **release contract**, not a folder naming preference. When content must move from private → public, follow the explicit bridging/graduation rules in:
27+
28+
- <doc:docc-design-system-file-organization>
29+
1530
## Topics
1631

1732
### DocC
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# Discord Conventions (Org + Agent Channels)
2+
3+
@Metadata {
4+
@PageImage(purpose: icon, source: "docc-docc-design-system-icon", alt: "DocC design-system icon")
5+
@PageKind(article)
6+
@PageColor(purple)
7+
}
8+
9+
This page documents the current Discord information architecture conventions used to keep large, multi-org agent rosters scannable.
10+
11+
## Design decision: Operators are Agents (no separate category)
12+
13+
We experimented with splitting “operators” and “agents” into separate Discord categories.
14+
15+
We reverted that.
16+
17+
**Rationale**
18+
19+
- An “operator” is an **operating posture** (guardrails + safety defaults), not a different kind of entity.
20+
- Discord navigation should remain stable as the roster grows; splitting by posture creates churn.
21+
- Posture is better represented in:
22+
- channel naming (type prefix), and
23+
- triad Agency (constraints / S-Type), not sidebar taxonomy.
24+
25+
## Category naming (org-first, type prefix)
26+
27+
Org categories are prefixed by a shared org-type emoji, and suffixed with a per-org callsign:
28+
29+
- Format: `🌐-<org>-<callsign>`
30+
31+
Example org callsigns:
32+
33+
- `🌐-wrkstrm-⚙️`
34+
- `🌐-todo3-📦`
35+
- `🌐-text-allora-🗣️`
36+
- `🌐-wrkstrm-finance-💹`
37+
- `🌐-laussat-studio-🎨`
38+
39+
## Channel naming (type first, emoji last)
40+
41+
Agent/operator chat channels are named with type first and the persona emoji last:
42+
43+
- Format: `<type>-<slug>-<emoji>`
44+
45+
Where:
46+
47+
- `<type>` is currently:
48+
- `💠` for agent persona chats
49+
- `🧬` for operator-posture chats
50+
- `<slug>` is the stable identifier (lowercase, kebab-case; keep it short)
51+
- `<emoji>` is the persona emoji (single emoji)
52+
53+
Examples:
54+
55+
- `💠-crush-🐍`
56+
- `💠-tau-🪐`
57+
- `🧬-rismay-🧬`
58+
- `🧬-uptobat-👻`
59+
60+
## Operator thread protocol (🧬)
61+
62+
Operator-posture channels (🧬) can accumulate many parallel lines of thought. Use Discord threads to keep work
63+
scannable without fragmenting into new channels.
64+
65+
Minimal protocol:
66+
67+
- **One thread = one intent.** If the intent changes, spin a new thread.
68+
- **Thread opener** must include a short framing header (who/with/org/lane/scope) + a one-line goal.
69+
- Capture outcomes explicitly:
70+
- `DECISION:` for durable decisions.
71+
- `TODO:` for actionable follow-ups.
72+
73+
Promotion path (turn threads into durable knowledge):
74+
75+
- Stable rule/pattern → promote to `memory.docc/expertise/`.
76+
- Dated outcome/postmortem → promote to `memory.docc/journal/`.
77+
- Sketch/hypothesis → keep in `memory.docc/ideas/`.
78+
- Committed work item → `.clia/BACKLOG.md`.
79+
80+
## Message formatting
81+
82+
- See <doc:design-system-discord-message-formatting>.
83+
84+
## Notes
85+
86+
- Channel topics may contain automation hints (e.g. `$sync ^channel-name ...`). Keep these in sync if the channel is renamed.
87+
- Avoid embedding “lane” semantics into Discord categories; use naming + triads.
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# Discord Message Formatting (safe subset)
2+
3+
@Metadata {
4+
@PageKind(article)
5+
@PageColor(purple)
6+
}
7+
8+
This page documents the **safe** Discord message formatting subset we rely on for operator and agent work.
9+
10+
Goal: messages should render predictably, stay readable on mobile, and be resilient to tool limitations.
11+
12+
## Supported formatting (reliable)
13+
14+
- **Bold:** `**bold**`
15+
- *Italic:* `*italic*`
16+
- __Underline__: `__underline__`
17+
- ~~Strike~~: `~~strike~~`
18+
- Inline code: `` `code` ``
19+
- Code blocks:
20+
21+
```
22+
```ts
23+
const x = 1
24+
```
25+
```
26+
27+
- Block quotes:
28+
- `> quote`
29+
- `>>> multi-line quote`
30+
- Lists:
31+
- bullets: `- item`
32+
- numbered: `1. item`
33+
34+
## Links
35+
36+
- Plain URLs auto-link reliably.
37+
- Avoid depending on rich embeds for critical information.
38+
39+
## Message size + chunking
40+
41+
- Discord hard limit is **2000 characters** per message.
42+
- Prefer multiple short messages over one long message.
43+
- Put any structured payload into a **fenced code block**.
44+
45+
## Templates
46+
47+
### Thread opener (operator)
48+
49+
```
50+
by: <operator>
51+
with: <participants>
52+
org: <org>
53+
lane: operator 🧬
54+
55+
goal: <one sentence>
56+
57+
links:
58+
- <url>
59+
60+
TODO:
61+
- [ ] <action>
62+
63+
DECISION:
64+
- <if any>
65+
```
66+
67+
### Status card
68+
69+
```
70+
status: <backlog|in-progress|blocked|done>
71+
blockers:
72+
- <blocker>
73+
next:
74+
- <next action>
75+
```
76+
77+
## Tooling constraints (current)
78+
79+
- Inline buttons are not enabled for Discord in this deployment.
80+
- Treat “embeds” as a nice-to-have; the canonical content should be plain text + markdown.

design-system.docc/docc/docc-design-system-discord-conventions.md

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
1-
# Discord Conventions (Org + Agent Channels)
1+
# Discord Conventions (Org + Agent Channels) [MOVED]
22

33
@Metadata {
44
@PageImage(purpose: icon, source: "docc-docc-design-system-icon", alt: "DocC design-system icon")
55
@PageKind(article)
66
@PageColor(purple)
77
}
88

9-
This page documents the current Discord information architecture conventions used to keep large, multi-org agent rosters scannable.
9+
This page has moved.
10+
11+
New canonical location:
12+
13+
- `design-system.docc/discord/design-system-discord-conventions.md`
1014

1115
## Design decision: Operators are Agents (no separate category)
1216

@@ -55,7 +59,27 @@ Examples:
5559
- `💠-crush-🐍`
5660
- `💠-tau-🪐`
5761
- `🧬-rismay-🧬`
58-
- `🧬-uptobat-r-👻`
62+
- `🧬-uptobat-👻`
63+
64+
## Operator thread protocol (🧬)
65+
66+
Operator-posture channels (🧬) can accumulate many parallel lines of thought. Use Discord threads to keep work
67+
scannable without fragmenting into new channels.
68+
69+
Minimal protocol:
70+
71+
- **One thread = one intent.** If the intent changes, spin a new thread.
72+
- **Thread opener** must include a short framing header (who/with/org/lane/scope) + a one-line goal.
73+
- Capture outcomes explicitly:
74+
- `DECISION:` for durable decisions.
75+
- `TODO:` for actionable follow-ups.
76+
77+
Promotion path (turn threads into durable knowledge):
78+
79+
- Stable rule/pattern → promote to `memory.docc/expertise/`.
80+
- Dated outcome/postmortem → promote to `memory.docc/journal/`.
81+
- Sketch/hypothesis → keep in `memory.docc/ideas/`.
82+
- Committed work item → `.clia/BACKLOG.md`.
5983

6084
## Notes
6185

design-system.docc/docc/docc-design-system-file-organization.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,30 @@ Every `.docc` bundle must follow this organization pattern:
5757

5858
Public DocC bundles are hosted on GitHub Pages; private bundles are rendered by local apps.
5959

60+
## Crossing the public barrier (bridging rules)
61+
62+
Treat the public/private split as a **release boundary** with an explicit contract — not “just a folder”.
63+
64+
### Content classes
65+
66+
1. **Public (OK to ship):** stable concepts and interfaces; outside-readable docs; no internal-only context.
67+
2. **Private (never ship):** operator/local-machine notes, internal benchmarks/incidents, unreleased plans, private paths/identifiers.
68+
3. **Bridgeable (starts private; may graduate):** design notes that might become public after review.
69+
70+
### Graduation checklist (private → public)
71+
72+
A document may cross the barrier only after:
73+
74+
- **Audience rewrite:** remove internal context and assume an external reader.
75+
- **Stability:** behavior is intended to be supported (or explicitly marked experimental).
76+
- **Sanitization:** no private paths (e.g. `/Users/...`), no `.clia/operators/**`, no private corpora references.
77+
- **Surface alignment:** aligns with the public schema/CLI surface that will enforce it.
78+
- **Explicit approval:** a named owner/reviewer signs off.
79+
80+
### Rule of thumb
81+
82+
Exploration happens in **private** docs first. Public docs should generally be **graduated copies** (rewritten), not moved originals.
83+
6084
## Submodule Layout (public vs private)
6185

6286
Mono contains nested Git submodules. When a component transitions from public → private, follow a

design-system.docc/docc/docc-design-system-github-actions.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,51 @@ This keeps redirects deterministic and independent of DocC sanitization.
6262
- Confirm `--hosting-base-path` matches the path the artifact will be served under.
6363
- If you need redirects, generate static `index.html` files as a post-build step.
6464

65+
## Site reliability
66+
67+
This page is about **publishing**.
68+
69+
For monitoring conventions (JSON probes, incident threads, badges, posting rules), see:
70+
71+
- <doc:docc-site-reliability>
72+
73+
74+
### Thread naming convention
75+
76+
Use exactly one of three badges (based on the *last run status*):
77+
78+
- 🟢 (healthy)
79+
- 🟡 (degraded)
80+
- 🔴 (down)
81+
82+
Thread name template (double emoji):
83+
84+
- `{thread-type-emoji}{status-emoji} incidents: site-reliability-{agent-emoji}`
85+
86+
Where:
87+
- `thread-type-emoji` = `🛡️` (SRE/guardrails)
88+
- `status-emoji` = 🟢 | 🟡 | 🔴 (last run status)
89+
90+
Examples:
91+
- `🛡️🟢 incidents: site-reliability-🧩`
92+
- `🛡️🟡 incidents: site-reliability-🧩`
93+
- `🛡️🔴 incidents: site-reliability-🧩`
94+
95+
### Posting rules (state-change only)
96+
97+
Monitors should track the last known status and:
98+
99+
- 🟢 → 🟡: post once with a short degradation summary
100+
- 🟡 → 🟢: post once with a recovery summary
101+
- any → 🔴: post once with a failure summary (include failing probes)
102+
- same → same: **no post** (avoid hourly spam)
103+
104+
### Status definitions (recommended)
105+
106+
- 🟢: all JSON probes succeed (200 + JSON parses + minimal assertions)
107+
- 🟡: some probes fail but primary index probe succeeds
108+
- 🔴: primary index probe fails (or multiple probes fail)
109+
65110
## Failure modes we’ve hit
66111

67112
- **404 on a “subpath site”**: the file tree doesn’t actually include that folder on Pages.

0 commit comments

Comments
 (0)