openhermes 4.3.0 → 4.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTEXT.md +10 -1
- package/README.md +54 -42
- package/bootstrap.ts +396 -142
- package/harness/agents/oh-browser.md +97 -0
- package/harness/agents/oh-builder.md +78 -0
- package/harness/agents/oh-facade.md +75 -0
- package/harness/agents/oh-fusion.md +45 -0
- package/harness/agents/oh-gauntlet.md +71 -0
- package/harness/agents/oh-grill.md +71 -0
- package/harness/agents/oh-investigate.md +60 -0
- package/harness/agents/oh-manifest.md +95 -0
- package/harness/agents/oh-plan-review.md +40 -0
- package/harness/agents/oh-planner.md +50 -0
- package/harness/agents/oh-refactor.md +37 -0
- package/harness/agents/oh-retro.md +46 -0
- package/harness/agents/oh-review.md +85 -0
- package/harness/agents/oh-security.md +83 -0
- package/harness/agents/oh-ship.md +76 -0
- package/harness/agents/oh-skill-craft.md +38 -0
- package/harness/agents/openhermes.md +28 -73
- package/harness/codex/AUTOPILOT.md +235 -87
- package/harness/codex/CHARTER.md +80 -0
- package/harness/instructions/SHELL.md +76 -0
- package/harness/lib/background/background.test.ts +197 -0
- package/harness/lib/background/index.ts +7 -0
- package/harness/lib/background/interfaces.ts +31 -0
- package/harness/lib/background/manager.ts +320 -0
- package/harness/lib/composer/compose.test.ts +168 -0
- package/harness/lib/composer/compose.ts +65 -0
- package/harness/lib/composer/fragments/01-identity.md +1 -0
- package/harness/lib/composer/fragments/02-delegation.md +6 -0
- package/harness/lib/composer/fragments/03-permissions.md +13 -0
- package/harness/lib/composer/fragments/04-task-flow.md +15 -0
- package/harness/lib/composer/fragments/05-confidence.md +5 -0
- package/harness/lib/composer/fragments/06-parallelization.md +17 -0
- package/harness/lib/composer/fragments/07-shell.md +41 -0
- package/harness/lib/composer/fragments/08-routing.md +8 -0
- package/harness/lib/composer/fragments/09-guardrails.md +12 -0
- package/harness/lib/composer/index.ts +1 -0
- package/harness/lib/hooks/builtins/confidence-gate-hook.ts +70 -0
- package/harness/lib/hooks/builtins/delegation-depth-hook.ts +59 -0
- package/harness/lib/hooks/builtins/error-recovery-hook.ts +107 -0
- package/harness/lib/hooks/builtins/memory-sync-hook.ts +73 -0
- package/harness/lib/hooks/builtins/plan-check-hook.ts +43 -0
- package/harness/lib/hooks/builtins/route-tracking-hook.ts +147 -0
- package/harness/lib/hooks/builtins/sanity-check-hook.ts +52 -0
- package/harness/lib/hooks/builtins/shell-detect-hook.ts +96 -0
- package/harness/lib/hooks/hooks.test.ts +1016 -0
- package/harness/lib/hooks/index.ts +30 -0
- package/harness/lib/hooks/registry.ts +416 -0
- package/harness/lib/hooks/types.ts +71 -0
- package/harness/lib/memory/index.ts +18 -0
- package/harness/lib/memory/interfaces.ts +53 -0
- package/harness/lib/memory/memory-manager.ts +205 -0
- package/harness/lib/memory/memory.test.ts +491 -0
- package/harness/lib/memory/plan-store.ts +366 -0
- package/harness/lib/recovery/handler.ts +243 -0
- package/harness/lib/recovery/index.ts +14 -0
- package/harness/lib/recovery/interfaces.ts +48 -0
- package/harness/lib/recovery/patterns.ts +149 -0
- package/harness/lib/recovery/recovery.test.ts +312 -0
- package/harness/lib/sanity/anomaly-tracker.ts +127 -0
- package/harness/lib/sanity/checker.ts +178 -0
- package/harness/lib/sanity/index.ts +13 -0
- package/harness/lib/sanity/interfaces.ts +24 -0
- package/harness/lib/sanity/sanity.test.ts +472 -0
- package/harness/lib/sync/file-watcher.ts +174 -0
- package/harness/lib/sync/index.ts +11 -0
- package/harness/lib/sync/interfaces.ts +27 -0
- package/harness/lib/sync/plan-sync.ts +536 -0
- package/harness/lib/sync/sync.test.ts +832 -0
- package/harness/skills/oh-ascii/DEEP.md +292 -0
- package/harness/skills/oh-ascii/SKILL.md +31 -0
- package/harness/skills/oh-ascii/scripts/check_ascii_alignment.py +596 -0
- package/harness/skills/oh-browser/DEEP.md +54 -0
- package/harness/skills/oh-browser/SKILL.md +30 -0
- package/harness/skills/oh-builder/DEEP.md +63 -0
- package/harness/skills/oh-builder/SKILL.md +12 -90
- package/harness/skills/oh-expert/DEEP.md +85 -0
- package/harness/skills/oh-expert/SKILL.md +13 -106
- package/harness/skills/oh-facade/DEEP.md +182 -0
- package/harness/skills/oh-facade/SKILL.md +15 -279
- package/harness/skills/oh-freeze/DEEP.md +18 -0
- package/harness/skills/oh-freeze/SKILL.md +10 -19
- package/harness/skills/oh-full-output/DEEP.md +25 -0
- package/harness/skills/oh-full-output/SKILL.md +12 -65
- package/harness/skills/oh-fusion/DEEP.md +120 -0
- package/harness/skills/oh-fusion/SKILL.md +17 -295
- package/harness/skills/oh-gauntlet/DEEP.md +77 -0
- package/harness/skills/oh-gauntlet/SKILL.md +13 -105
- package/harness/skills/oh-grill/DEEP.md +51 -0
- package/harness/skills/oh-grill/SKILL.md +12 -63
- package/harness/skills/oh-guard/DEEP.md +19 -0
- package/harness/skills/oh-guard/SKILL.md +10 -24
- package/harness/skills/oh-handoff/DEEP.md +48 -0
- package/harness/skills/oh-handoff/SKILL.md +13 -23
- package/harness/skills/oh-health/DEEP.md +74 -0
- package/harness/skills/oh-health/SKILL.md +13 -76
- package/harness/skills/oh-init/DEEP.md +85 -0
- package/harness/skills/oh-init/SKILL.md +13 -127
- package/harness/skills/oh-investigate/DEEP.md +171 -0
- package/harness/skills/oh-investigate/SKILL.md +13 -66
- package/harness/skills/oh-issue/DEEP.md +21 -0
- package/harness/skills/oh-issue/SKILL.md +11 -27
- package/harness/skills/oh-manifest/DEEP.md +92 -0
- package/harness/skills/oh-manifest/SKILL.md +12 -109
- package/harness/skills/oh-plan-review/DEEP.md +90 -0
- package/harness/skills/oh-plan-review/SKILL.md +13 -115
- package/harness/skills/oh-planner/DEEP.md +172 -0
- package/harness/skills/oh-planner/SKILL.md +12 -149
- package/harness/skills/oh-prd/DEEP.md +45 -0
- package/harness/skills/oh-prd/SKILL.md +10 -26
- package/harness/skills/oh-refactor/DEEP.md +122 -0
- package/harness/skills/oh-refactor/SKILL.md +17 -410
- package/harness/skills/oh-retro/DEEP.md +26 -0
- package/harness/skills/oh-retro/SKILL.md +12 -24
- package/harness/skills/oh-review/DEEP.md +87 -0
- package/harness/skills/oh-review/SKILL.md +11 -97
- package/harness/skills/oh-security/DEEP.md +83 -0
- package/harness/skills/oh-security/SKILL.md +14 -96
- package/harness/skills/oh-ship/DEEP.md +141 -0
- package/harness/skills/oh-ship/SKILL.md +14 -32
- package/harness/skills/oh-skill-craft/DEEP.md +369 -0
- package/harness/skills/oh-skill-craft/SKILL.md +13 -177
- package/harness/skills/oh-skills-link/DEEP.md +16 -0
- package/harness/skills/oh-skills-link/SKILL.md +10 -20
- package/harness/skills/oh-skills-list/DEEP.md +20 -0
- package/harness/skills/oh-skills-list/SKILL.md +9 -22
- package/harness/skills/oh-triage/DEEP.md +23 -0
- package/harness/skills/oh-triage/SKILL.md +8 -24
- package/harness/skills/oh-worktree/DEEP.md +169 -0
- package/harness/skills/oh-worktree/SKILL.md +32 -0
- package/lib/harness-resolver.ts +8 -10
- package/package.json +7 -5
- package/tsconfig.json +1 -1
- package/harness/codex/CONSTITUTION.md +0 -73
- package/harness/codex/ROUTING.md +0 -92
- package/harness/commands/oh-doctor.md +0 -26
- package/harness/commands/oh-log.md +0 -18
- package/harness/instructions/RUNTIME.md +0 -30
- package/harness/skills/oh-caveman/SKILL.md +0 -42
- package/harness/skills/oh-learn/SKILL.md +0 -101
- package/lib/logger.ts +0 -75
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
# oh-ascii — Deep Reference
|
|
2
|
+
|
|
3
|
+
## When to Use
|
|
4
|
+
|
|
5
|
+
Creating architecture diagrams, file trees, flowcharts, sequence diagrams, box-drawing layouts, blast radius visualizations, swimlane diagrams, or validating ASCII art alignment in documentation. All output renders in monospace terminals.
|
|
6
|
+
|
|
7
|
+
## Phases
|
|
8
|
+
|
|
9
|
+
Complete ASCII diagramming — three phases: **Design** (patterns & layout rules), **Generate** (PlantUML workflow), **Validate** (structural alignment checking).
|
|
10
|
+
|
|
11
|
+
### Phase A: Design Patterns
|
|
12
|
+
|
|
13
|
+
#### Box-Drawing Characters
|
|
14
|
+
|
|
15
|
+
Use ONE set per diagram. Never mix.
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
default: ┌─┐ │ └─┘ ├─┤ ┬ ┴ ┼
|
|
19
|
+
emphasis: ┏━┓ ┃ ┗━┛ ┣━┫ ┳ ┻ ╋
|
|
20
|
+
title: ╔═╗ ║ ╚═╝ ╠═╣ ╦ ╩ ╬
|
|
21
|
+
soft: ╭─╮ │ ╰─╯
|
|
22
|
+
portable: +-+ | +-+ +-+ + + +
|
|
23
|
+
arrows: → ← ↑ ↓ ─> <─ ──> <──
|
|
24
|
+
blocks: █ ▓ ░ ▏▎▍▌▋▊▉
|
|
25
|
+
status: ● ○ ✓ ✗ ⚠ ◆ ◇ ▶ ▷ ↑↓→ ▓▒░
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
| Set | Use |
|
|
29
|
+
|-----|-----|
|
|
30
|
+
| `default` ─│ | Most diagrams |
|
|
31
|
+
| `emphasis` ━┃ | Headers, focus elements |
|
|
32
|
+
| `title` ═║ | Section banners only |
|
|
33
|
+
| `soft` ╭╮╰╯ ─│ | Status cards, ambient UI |
|
|
34
|
+
| `portable` +-\| | CI/TTY fallback |
|
|
35
|
+
|
|
36
|
+
Status glyphs (closed set): `● ○ ✓ ✗ ⚠ ◆ ◇ ▶ ▷ ↑ ↓ → ▓ ░ ▒`
|
|
37
|
+
|
|
38
|
+
#### Diagram Patterns
|
|
39
|
+
|
|
40
|
+
##### Architecture
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
┌──────────────┐ ┌──────────────┐
|
|
44
|
+
│ Frontend │─────>│ Backend │
|
|
45
|
+
│ React 19 │ │ FastAPI │
|
|
46
|
+
└──────────────┘ └───────┬──────┘
|
|
47
|
+
v
|
|
48
|
+
┌──────────────┐
|
|
49
|
+
│ PostgreSQL │
|
|
50
|
+
└──────────────┘
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
##### File Trees with Annotations
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
src/
|
|
57
|
+
├── api/
|
|
58
|
+
│ ├── routes.py [M] +45 -12 !! high-traffic
|
|
59
|
+
│ └── schemas.py [M] +20 -5
|
|
60
|
+
├── services/
|
|
61
|
+
│ └── billing.py [A] +180 ** new
|
|
62
|
+
└── tests/
|
|
63
|
+
└── test_billing.py [A] +120 ** new
|
|
64
|
+
|
|
65
|
+
Legend: [A]dd [M]odify [D]elete !! Risk ** New
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
##### Progress Bars, Swimlanes, Blast Radius, Comparisons, Reversibility
|
|
69
|
+
|
|
70
|
+
**Progress**
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
[████████░░] 80% Complete
|
|
74
|
+
+ Design (2d) + Backend (5d)
|
|
75
|
+
~ Frontend (3d) - Testing (pending)
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Swimlane**
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
Backend ===[Schema]======[API]===========================[Deploy]====>
|
|
82
|
+
| | ^
|
|
83
|
+
| +------blocks------+ |
|
|
84
|
+
Frontend -------[Wait]--------[Components]=======[Integration]=+
|
|
85
|
+
|
|
86
|
+
=== active --- blocked/waiting | dependency
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Blast Radius (Concentric Rings)**
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
Ring 3: Tests (8 files)
|
|
93
|
+
+-----------------------------------+
|
|
94
|
+
| Ring 2: Transitive (5) |
|
|
95
|
+
| +----------------------------+ |
|
|
96
|
+
| | Ring 1: Direct (3) | |
|
|
97
|
+
| | +------------------+ | |
|
|
98
|
+
| | | CHANGED FILE | | |
|
|
99
|
+
| | +------------------+ | |
|
|
100
|
+
| +----------------------------+ |
|
|
101
|
+
+-----------------------------------+
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**Comparison (Before/After)**
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
BEFORE AFTER
|
|
108
|
+
┌────────────────┐ ┌────────────────┐
|
|
109
|
+
│ Monolith │ │ Service A │──┐
|
|
110
|
+
│ (all-in-1) │ └────────────────┘ │ ┌──────────┐
|
|
111
|
+
└────────────────┘ ┌────────────────┐ ├─>│ Shared │
|
|
112
|
+
│ Service B │──┘ │ Queue │
|
|
113
|
+
└────────────────┘ └──────────┘
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**Reversibility Timeline**
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
Phase 1 [================] FULLY REVERSIBLE (add column)
|
|
120
|
+
Phase 2 [================] FULLY REVERSIBLE (new endpoint)
|
|
121
|
+
Phase 3 [============....] PARTIALLY (backfill)
|
|
122
|
+
--- POINT OF NO RETURN ---
|
|
123
|
+
Phase 4 [........????????] IRREVERSIBLE (drop column)
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
##### Key Rules
|
|
127
|
+
|
|
128
|
+
- **Font**: Monospace only — box-drawing requires fixed-width
|
|
129
|
+
- **Arrows**: `->`, `-->`, or `|` with `v`/`^`
|
|
130
|
+
- **Width**: Under 80 cols for terminal compat
|
|
131
|
+
- **Nesting**: Max 3 levels
|
|
132
|
+
- **Labels**: Short — long text breaks alignment
|
|
133
|
+
- **Set consistency**: One set per diagram, never mixed
|
|
134
|
+
|
|
135
|
+
### Phase B: Generation (PlantUML)
|
|
136
|
+
|
|
137
|
+
Generate ASCII from `.puml` files. Requires PlantUML installed (`brew install plantuml`, `apt install plantuml`, or `java -jar plantuml.jar`).
|
|
138
|
+
|
|
139
|
+
#### Workflow
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
plantuml -utxt diagram.puml # Unicode (preferred)
|
|
143
|
+
plantuml -txt diagram.puml # Standard ASCII
|
|
144
|
+
# Output: diagram.utxt or diagram.atxt
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
#### Templates (7 types)
|
|
148
|
+
|
|
149
|
+
| Type | Description |
|
|
150
|
+
|------|------------|
|
|
151
|
+
| **Sequence** | Actor → System → DB interactions |
|
|
152
|
+
| **Class** | Types, fields, methods, relationships |
|
|
153
|
+
| **Activity** | Workflow branches, decision nodes |
|
|
154
|
+
| **State** | State transitions, entry/exit, events |
|
|
155
|
+
| **Component** | Service boundaries, dependencies |
|
|
156
|
+
| **Use Case** | Actors, system boundary, use cases |
|
|
157
|
+
| **Deployment** | Nodes, servers, databases, replicas |
|
|
158
|
+
|
|
159
|
+
**Sequence Example**
|
|
160
|
+
|
|
161
|
+
```plantuml
|
|
162
|
+
@startuml
|
|
163
|
+
actor User
|
|
164
|
+
participant "Web App" as App
|
|
165
|
+
database "Database" as DB
|
|
166
|
+
|
|
167
|
+
User -> App : Login Request
|
|
168
|
+
App -> DB : Validate Credentials
|
|
169
|
+
DB --> App : User Data
|
|
170
|
+
App --> User : Auth Token
|
|
171
|
+
@enduml
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Component Example**
|
|
175
|
+
|
|
176
|
+
```plantuml
|
|
177
|
+
@startuml
|
|
178
|
+
[Client] as client
|
|
179
|
+
[API Gateway] as gateway
|
|
180
|
+
[Service A] as svcA
|
|
181
|
+
[Database] as db
|
|
182
|
+
|
|
183
|
+
client --> gateway
|
|
184
|
+
gateway --> svcA
|
|
185
|
+
svcA --> db
|
|
186
|
+
@enduml
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
**Activity Example (branching workflows)**
|
|
190
|
+
|
|
191
|
+
```plantuml
|
|
192
|
+
@startuml
|
|
193
|
+
start
|
|
194
|
+
:Initialize;
|
|
195
|
+
if (Is Valid?) then (yes)
|
|
196
|
+
:Process Data;
|
|
197
|
+
:Save Result;
|
|
198
|
+
else (no)
|
|
199
|
+
:Log Error;
|
|
200
|
+
stop
|
|
201
|
+
endif
|
|
202
|
+
:Complete;
|
|
203
|
+
stop
|
|
204
|
+
@enduml
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**State Example (state transitions)**
|
|
208
|
+
|
|
209
|
+
```plantuml
|
|
210
|
+
@startuml
|
|
211
|
+
[*] --> Idle
|
|
212
|
+
Idle --> Processing : start
|
|
213
|
+
Processing --> Success : complete
|
|
214
|
+
Processing --> Error : fail
|
|
215
|
+
Success --> [*]
|
|
216
|
+
Error --> Idle : retry
|
|
217
|
+
@enduml
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
#### CLI Options
|
|
221
|
+
|
|
222
|
+
```
|
|
223
|
+
plantuml -utxt -o ./output diagram.puml # output dir
|
|
224
|
+
plantuml -utxt ./diagrams/ # batch dir
|
|
225
|
+
plantuml -utxt -charset UTF-8 diagram.puml # charset
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### Phase C: Validation
|
|
229
|
+
|
|
230
|
+
Validates structural alignment of box-drawing characters in markdown code blocks. Script bundled at `scripts/check_ascii_alignment.py`.
|
|
231
|
+
|
|
232
|
+
#### Usage
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
python3 scripts/check_ascii_alignment.py docs/ARCHITECTURE.md # single file
|
|
236
|
+
python3 scripts/check_ascii_alignment.py docs/ # batch dir
|
|
237
|
+
python3 scripts/check_ascii_alignment.py docs/ --verbose # show skipped blocks
|
|
238
|
+
python3 scripts/check_ascii_alignment.py docs/ --warn-only # warnings exit 0
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
#### Checks
|
|
242
|
+
|
|
243
|
+
- **Vertical alignment** — connectors must match above/below
|
|
244
|
+
- **Corner connections** — corners connect to adjacent lines
|
|
245
|
+
- **Junction validity** — T-joins/crosses have correct connections
|
|
246
|
+
- **Line continuity** — horizontals terminate at valid endpoints
|
|
247
|
+
- **Box closure** — no dangling edges
|
|
248
|
+
|
|
249
|
+
#### Output
|
|
250
|
+
|
|
251
|
+
Compiler-like format:
|
|
252
|
+
|
|
253
|
+
```
|
|
254
|
+
file.md:45:12: error: vertical connector '|' at col 12 has no match above
|
|
255
|
+
-> Suggestion: Add '|', '├', '┤', '┬', or '┼' at line 44, col 12
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
| Level | Exit |
|
|
259
|
+
|-------|------|
|
|
260
|
+
| error | 1 |
|
|
261
|
+
| warning | 2 (or 0 with --warn-only) |
|
|
262
|
+
| info / clean | 0 |
|
|
263
|
+
|
|
264
|
+
Validation scope: enclosed box diagrams in fenced code blocks. Skips file trees (`├──`). Detects all line weights (light, double, heavy, rounded).
|
|
265
|
+
|
|
266
|
+
#### Integration
|
|
267
|
+
|
|
268
|
+
```bash
|
|
269
|
+
# Create → validate → fix → re-validate until clean
|
|
270
|
+
python3 scripts/check_ascii_alignment.py docs/ARCHITECTURE.md
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
## Anti-patterns
|
|
274
|
+
|
|
275
|
+
- Mixing character sets in one diagram
|
|
276
|
+
- Tabs in diagrams — use spaces; tabs cause false positives
|
|
277
|
+
- Deep nesting (4+ levels) — readability degrades past 3
|
|
278
|
+
- Over-80-col diagrams — break into sections
|
|
279
|
+
- Inline ASCII outside code blocks — always fence
|
|
280
|
+
- PlantUML for one-off simple diagrams — manual ASCII is faster for <5 boxes
|
|
281
|
+
|
|
282
|
+
## Troubleshooting
|
|
283
|
+
|
|
284
|
+
| Issue | Cause | Fix |
|
|
285
|
+
|-------|-------|-----|
|
|
286
|
+
| Garbled Unicode | Terminal lacks UTF-8 support | Ensure UTF-8 locale and monospace font |
|
|
287
|
+
| Misaligned diagram | Wrong font or tab characters | Fixed-width font (Consolas, Courier, Monaco); convert tabs to spaces |
|
|
288
|
+
| PlantUML command not found | Not installed | `java -jar plantuml.jar -txt` as fallback |
|
|
289
|
+
| False positives from tabs | Tab characters misalign columns | Convert tabs to spaces before validation |
|
|
290
|
+
| Diagram wrong but validator passes | Aesthetic spacing not structural | Validator checks structure, not visual alignment — review manually |
|
|
291
|
+
| Validator skipping diagram | Not an enclosed box diagram | Ensure all 4 corners present (`┌┐└┘` or equivalent) |
|
|
292
|
+
| Unicode chars not rendering | Terminal font missing glyphs | Use font with full box-drawing support (Cascadia Code, JetBrains Mono) |
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: oh-ascii
|
|
3
|
+
description: "Complete ASCII diagramming toolkit: design patterns, PlantUML generation, and structural validation. Use when creating architecture diagrams, file trees, flowcharts, sequence diagrams, box-drawing layouts, or validating ASCII art alignment in documentation."
|
|
4
|
+
route:
|
|
5
|
+
pass: surface
|
|
6
|
+
fail: surface
|
|
7
|
+
blocker: surface
|
|
8
|
+
tier: 2
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# oh-ascii
|
|
12
|
+
|
|
13
|
+
Create and validate ASCII diagrams in three phases: design, generate, validate.
|
|
14
|
+
|
|
15
|
+
## Steps
|
|
16
|
+
|
|
17
|
+
1. Determine diagram type and select matching design pattern
|
|
18
|
+
2. Draw using box-drawing characters from a single consistent set
|
|
19
|
+
3. Fence all diagrams in markdown code blocks
|
|
20
|
+
4. Keep diagrams under 80 columns with max 3 nesting levels
|
|
21
|
+
5. For complex diagrams, author PlantUML and render with `-utxt`
|
|
22
|
+
6. Validate structural alignment with `scripts/check_ascii_alignment.py`
|
|
23
|
+
7. Fix reported issues and re-validate until clean
|
|
24
|
+
|
|
25
|
+
## Routing
|
|
26
|
+
|
|
27
|
+
| Outcome | Route |
|
|
28
|
+
|---------|-------|
|
|
29
|
+
| pass | → surface |
|
|
30
|
+
| fail | → surface |
|
|
31
|
+
| blocker | → surface |
|