@quietloudlab/ai-interaction-atlas 1.0.0 → 1.0.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/README.md +156 -365
- package/package.json +10 -10
package/README.md
CHANGED
|
@@ -4,24 +4,78 @@
|
|
|
4
4
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
5
5
|
[](https://www.typescriptlang.org/)
|
|
6
6
|
|
|
7
|
-
A shared language for designing
|
|
7
|
+
A shared language for designing **legible, inspectable AI systems**.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
The AI Interaction Atlas is a structured taxonomy of interaction patterns used to design, reason about, and document human–AI systems. It focuses on *how systems behave*, *where agency lives*, and *what constraints shape outcomes* — not just models or UI.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
**180 structured elements** across **6 system dimensions**, designed to make AI systems visible before they are built.
|
|
12
|
+
|
|
13
|
+
🌐 **Explore the Atlas:** https://ai-interaction.com
|
|
14
|
+
🐙 **GitHub:** https://github.com/quietloudlab/ai-interaction-atlas
|
|
12
15
|
|
|
13
16
|
---
|
|
14
17
|
|
|
15
|
-
##
|
|
18
|
+
## What This Package Is
|
|
19
|
+
|
|
20
|
+
This npm package provides the **Atlas data and utilities**:
|
|
16
21
|
|
|
17
|
-
|
|
22
|
+
- A curated, opinionated dataset of AI interaction patterns
|
|
23
|
+
- Strongly typed structures for tasks, data, constraints, and touchpoints
|
|
24
|
+
- Search, filtering, and validation utilities
|
|
25
|
+
- Zero dependencies, tree-shakeable, framework-agnostic
|
|
18
26
|
|
|
19
|
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
|
|
27
|
+
It is designed to be used:
|
|
28
|
+
- in code
|
|
29
|
+
- in prompts
|
|
30
|
+
- in documentation
|
|
31
|
+
- in tools built by you or the community
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## What This Package Is *Not*
|
|
36
|
+
|
|
37
|
+
- ❌ Not an AI framework
|
|
38
|
+
- ❌ Not a UI kit
|
|
39
|
+
- ❌ Not an orchestration engine
|
|
40
|
+
- ❌ Not a visual editor
|
|
41
|
+
|
|
42
|
+
> **Note:**
|
|
43
|
+
> A visual canvas for composing and mapping systems using the Atlas is being explored separately.
|
|
44
|
+
> This package intentionally focuses on the **language layer**, not the tooling.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Who This Is For
|
|
49
|
+
|
|
50
|
+
You may find the Atlas useful if you are:
|
|
51
|
+
|
|
52
|
+
- Designing AI-powered products or workflows
|
|
53
|
+
- Building internal tools or design systems for AI teams
|
|
54
|
+
- Creating AI assistants that reason about interaction patterns
|
|
55
|
+
- Documenting or auditing AI systems
|
|
56
|
+
- Teaching or learning applied AI system design
|
|
57
|
+
|
|
58
|
+
You do **not** need to be an ML engineer to use the Atlas.
|
|
59
|
+
It encodes *design intent and system behavior*, not implementation details.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Why Use the Atlas?
|
|
64
|
+
|
|
65
|
+
Most AI products are designed at the wrong level of abstraction.
|
|
66
|
+
|
|
67
|
+
Teams jump to:
|
|
68
|
+
> “Use an LLM”
|
|
69
|
+
> “Add an agent”
|
|
70
|
+
> “Automate this”
|
|
71
|
+
|
|
72
|
+
Instead of asking:
|
|
73
|
+
- Where does human judgment remain essential?
|
|
74
|
+
- Which decisions are probabilistic vs deterministic?
|
|
75
|
+
- What constraints govern safety, latency, or trust?
|
|
76
|
+
- Who is accountable when the system fails?
|
|
77
|
+
|
|
78
|
+
The Atlas provides a **shared vocabulary** to answer those questions *before* systems harden.
|
|
25
79
|
|
|
26
80
|
---
|
|
27
81
|
|
|
@@ -43,46 +97,54 @@ pnpm add @quietloudlab/ai-interaction-atlas
|
|
|
43
97
|
|
|
44
98
|
## Quick Start
|
|
45
99
|
|
|
46
|
-
```
|
|
100
|
+
```ts
|
|
47
101
|
import {
|
|
48
102
|
AI_TASKS,
|
|
49
|
-
HUMAN_TASKS,
|
|
50
|
-
SYSTEM_TASKS,
|
|
51
103
|
searchPatterns,
|
|
52
104
|
getPattern,
|
|
105
|
+
validateWorkflow,
|
|
53
106
|
getAtlasStats
|
|
54
107
|
} from '@quietloudlab/ai-interaction-atlas';
|
|
55
108
|
|
|
56
|
-
//
|
|
109
|
+
// Inspect available AI capabilities
|
|
57
110
|
console.log(`${AI_TASKS.length} AI task patterns available`);
|
|
58
111
|
|
|
59
|
-
// Search
|
|
112
|
+
// Search patterns by keyword
|
|
60
113
|
const reviewPatterns = searchPatterns('review', { dimensions: ['human'] });
|
|
61
|
-
console.log(reviewPatterns);
|
|
62
114
|
|
|
63
|
-
//
|
|
64
|
-
const
|
|
65
|
-
console.log(
|
|
115
|
+
// Retrieve a specific pattern
|
|
116
|
+
const classifyIntent = getPattern('classify-intent');
|
|
117
|
+
console.log(classifyIntent?.description);
|
|
118
|
+
|
|
119
|
+
// Validate a proposed system workflow
|
|
120
|
+
const validation = validateWorkflow([
|
|
121
|
+
'ai_classify_intent',
|
|
122
|
+
'human_review_output',
|
|
123
|
+
'system_log_event'
|
|
124
|
+
]);
|
|
125
|
+
|
|
126
|
+
if (!validation.valid) {
|
|
127
|
+
console.error('Invalid pattern IDs:', validation.invalidIds);
|
|
128
|
+
}
|
|
66
129
|
|
|
67
130
|
// Get Atlas statistics
|
|
68
|
-
|
|
69
|
-
console.log(`Total patterns: ${stats.total}`);
|
|
131
|
+
console.log(getAtlasStats());
|
|
70
132
|
```
|
|
71
133
|
|
|
72
134
|
---
|
|
73
135
|
|
|
74
|
-
## The Six Dimensions
|
|
136
|
+
## The Six System Dimensions
|
|
75
137
|
|
|
76
|
-
The Atlas
|
|
138
|
+
The Atlas models AI systems as compositions of six dimensions:
|
|
77
139
|
|
|
78
|
-
| Dimension | Description |
|
|
79
|
-
|
|
80
|
-
| **AI
|
|
81
|
-
| **Human
|
|
82
|
-
| **System
|
|
83
|
-
| **Data Artifacts** |
|
|
84
|
-
| **Constraints** | Boundaries that shape
|
|
85
|
-
| **Touchpoints** | Where
|
|
140
|
+
| Dimension | Description |
|
|
141
|
+
|---------|-------------|
|
|
142
|
+
| **AI Patterns** | Probabilistic capabilities (detect, classify, generate, transform) |
|
|
143
|
+
| **Human Actions** | Where human agency lives (review, approve, decide, configure) |
|
|
144
|
+
| **System Operations** | Deterministic infrastructure behavior (routing, caching, logging) |
|
|
145
|
+
| **Data Artifacts** | Inputs, outputs, and contextual information |
|
|
146
|
+
| **Constraints** | Boundaries that shape behavior (latency, privacy, accuracy, cost) |
|
|
147
|
+
| **Touchpoints** | Where systems surface (UI, API, voice, notifications) |
|
|
86
148
|
|
|
87
149
|
---
|
|
88
150
|
|
|
@@ -90,24 +152,24 @@ The Atlas organizes AI interactions into six core dimensions:
|
|
|
90
152
|
|
|
91
153
|
### Data Collections
|
|
92
154
|
|
|
93
|
-
```
|
|
155
|
+
```ts
|
|
94
156
|
import {
|
|
95
|
-
AI_TASKS,
|
|
96
|
-
HUMAN_TASKS,
|
|
97
|
-
SYSTEM_TASKS,
|
|
98
|
-
DATA_ARTIFACTS,
|
|
99
|
-
CONSTRAINTS,
|
|
100
|
-
TOUCHPOINTS,
|
|
101
|
-
LAYERS,
|
|
102
|
-
WORKFLOW_TEMPLATES,
|
|
103
|
-
EXAMPLES,
|
|
104
|
-
ATLAS_DATA
|
|
157
|
+
AI_TASKS,
|
|
158
|
+
HUMAN_TASKS,
|
|
159
|
+
SYSTEM_TASKS,
|
|
160
|
+
DATA_ARTIFACTS,
|
|
161
|
+
CONSTRAINTS,
|
|
162
|
+
TOUCHPOINTS,
|
|
163
|
+
LAYERS,
|
|
164
|
+
WORKFLOW_TEMPLATES,
|
|
165
|
+
EXAMPLES,
|
|
166
|
+
ATLAS_DATA
|
|
105
167
|
} from '@quietloudlab/ai-interaction-atlas';
|
|
106
168
|
```
|
|
107
169
|
|
|
108
170
|
### Types
|
|
109
171
|
|
|
110
|
-
```
|
|
172
|
+
```ts
|
|
111
173
|
import type {
|
|
112
174
|
AiTask,
|
|
113
175
|
HumanTask,
|
|
@@ -123,371 +185,100 @@ import type {
|
|
|
123
185
|
|
|
124
186
|
---
|
|
125
187
|
|
|
126
|
-
## API
|
|
127
|
-
|
|
128
|
-
### Search Functions
|
|
129
|
-
|
|
130
|
-
#### `searchPatterns(query, options?)`
|
|
131
|
-
|
|
132
|
-
Search across all Atlas patterns by keyword.
|
|
133
|
-
|
|
134
|
-
```typescript
|
|
135
|
-
import { searchPatterns } from '@quietloudlab/ai-interaction-atlas';
|
|
136
|
-
|
|
137
|
-
// Search all dimensions
|
|
138
|
-
const results = searchPatterns('review');
|
|
139
|
-
|
|
140
|
-
// Search specific dimensions
|
|
141
|
-
const humanResults = searchPatterns('review', {
|
|
142
|
-
dimensions: ['human']
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
// Case-sensitive search
|
|
146
|
-
const exactMatches = searchPatterns('API', {
|
|
147
|
-
caseSensitive: true
|
|
148
|
-
});
|
|
149
|
-
|
|
150
|
-
// Limit results
|
|
151
|
-
const topResults = searchPatterns('generate', {
|
|
152
|
-
dimensions: ['ai'],
|
|
153
|
-
limit: 5
|
|
154
|
-
});
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
**Options:**
|
|
158
|
-
- `dimensions?: Array<'ai' | 'human' | 'system' | 'data' | 'constraints' | 'touchpoints'>` - Dimensions to search (default: all)
|
|
159
|
-
- `caseSensitive?: boolean` - Case sensitive search (default: false)
|
|
160
|
-
- `searchDescription?: boolean` - Search in description field (default: true)
|
|
161
|
-
- `limit?: number` - Limit number of results (default: no limit)
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
#### `getPattern(id)`
|
|
166
|
-
|
|
167
|
-
Get a specific pattern by ID (slug or target_id).
|
|
168
|
-
|
|
169
|
-
```typescript
|
|
170
|
-
import { getPattern } from '@quietloudlab/ai-interaction-atlas';
|
|
171
|
-
|
|
172
|
-
const task = getPattern('classify-intent');
|
|
173
|
-
const artifact = getPattern('embedding');
|
|
174
|
-
const constraint = getPattern('privacy-compliance');
|
|
175
|
-
|
|
176
|
-
if (task) {
|
|
177
|
-
console.log(task.name);
|
|
178
|
-
console.log(task.description);
|
|
179
|
-
console.log(task.inputs);
|
|
180
|
-
console.log(task.outputs);
|
|
181
|
-
}
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
---
|
|
185
|
-
|
|
186
|
-
#### `getPatternsByDimension(dimension)`
|
|
187
|
-
|
|
188
|
-
Get all patterns from a specific dimension.
|
|
189
|
-
|
|
190
|
-
```typescript
|
|
191
|
-
import { getPatternsByDimension } from '@quietloudlab/ai-interaction-atlas';
|
|
192
|
-
|
|
193
|
-
const aiTasks = getPatternsByDimension('ai');
|
|
194
|
-
const constraints = getPatternsByDimension('constraints');
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
---
|
|
198
|
-
|
|
199
|
-
### Filter Functions
|
|
200
|
-
|
|
201
|
-
#### `filterByLayer(tasks, layerId)`
|
|
202
|
-
|
|
203
|
-
Filter tasks by processing layer.
|
|
188
|
+
## API Overview
|
|
204
189
|
|
|
205
|
-
|
|
206
|
-
|
|
190
|
+
### `searchPatterns(query, options?)`
|
|
191
|
+
Search across all Atlas elements by keyword.
|
|
207
192
|
|
|
208
|
-
|
|
209
|
-
|
|
193
|
+
```ts
|
|
194
|
+
searchPatterns('review', { dimensions: ['human'], limit: 5 });
|
|
210
195
|
```
|
|
211
196
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
#### `getTasksByLayer(layerId)`
|
|
215
|
-
|
|
216
|
-
Get all tasks (AI, Human, System) in a specific layer.
|
|
197
|
+
### `getPattern(id)`
|
|
198
|
+
Retrieve a single pattern by ID (slug or target_id).
|
|
217
199
|
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
const inbound = getTasksByLayer('layer_inbound');
|
|
222
|
-
console.log(inbound.ai); // AI tasks in inbound layer
|
|
223
|
-
console.log(inbound.human); // Human tasks in inbound layer
|
|
224
|
-
console.log(inbound.system); // System tasks in inbound layer
|
|
200
|
+
```ts
|
|
201
|
+
getPattern('privacy-compliance');
|
|
225
202
|
```
|
|
226
203
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
#### `filterArtifactsByCategory(category)`
|
|
230
|
-
|
|
231
|
-
Filter data artifacts by category.
|
|
232
|
-
|
|
233
|
-
```typescript
|
|
234
|
-
import { filterArtifactsByCategory } from '@quietloudlab/ai-interaction-atlas';
|
|
204
|
+
### `getPatternsByDimension(dimension)`
|
|
205
|
+
Retrieve all patterns from one dimension.
|
|
235
206
|
|
|
236
|
-
|
|
237
|
-
|
|
207
|
+
```ts
|
|
208
|
+
getPatternsByDimension('constraints');
|
|
238
209
|
```
|
|
239
210
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
#### `getAtlasStats()`
|
|
243
|
-
|
|
244
|
-
Get statistics about the Atlas.
|
|
245
|
-
|
|
246
|
-
```typescript
|
|
247
|
-
import { getAtlasStats } from '@quietloudlab/ai-interaction-atlas';
|
|
248
|
-
|
|
249
|
-
const stats = getAtlasStats();
|
|
250
|
-
console.log(stats);
|
|
251
|
-
// {
|
|
252
|
-
// ai: 45,
|
|
253
|
-
// human: 28,
|
|
254
|
-
// system: 31,
|
|
255
|
-
// data: 52,
|
|
256
|
-
// constraints: 42,
|
|
257
|
-
// touchpoints: 18,
|
|
258
|
-
// layers: 4,
|
|
259
|
-
// total: 216
|
|
260
|
-
// }
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
---
|
|
211
|
+
### `validateWorkflow(nodeIds)`
|
|
212
|
+
Validate that a workflow uses valid Atlas elements.
|
|
264
213
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
Check if a task ID exists in the Atlas.
|
|
270
|
-
|
|
271
|
-
```typescript
|
|
272
|
-
import { isValidTaskId } from '@quietloudlab/ai-interaction-atlas';
|
|
273
|
-
|
|
274
|
-
if (isValidTaskId('ai_classify_intent')) {
|
|
275
|
-
console.log('Valid task!');
|
|
276
|
-
}
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
---
|
|
280
|
-
|
|
281
|
-
#### `validateWorkflow(nodeIds)`
|
|
282
|
-
|
|
283
|
-
Validate a workflow design.
|
|
284
|
-
|
|
285
|
-
```typescript
|
|
286
|
-
import { validateWorkflow } from '@quietloudlab/ai-interaction-atlas';
|
|
287
|
-
|
|
288
|
-
const result = validateWorkflow([
|
|
289
|
-
'ai_classify_intent',
|
|
214
|
+
```ts
|
|
215
|
+
validateWorkflow([
|
|
216
|
+
'ai_generate_text',
|
|
290
217
|
'human_review_output',
|
|
291
|
-
'
|
|
218
|
+
'system_store_result'
|
|
292
219
|
]);
|
|
293
|
-
|
|
294
|
-
if (!result.valid) {
|
|
295
|
-
console.error('Invalid IDs:', result.invalidIds);
|
|
296
|
-
}
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
---
|
|
300
|
-
|
|
301
|
-
#### Type Guards
|
|
302
|
-
|
|
303
|
-
```typescript
|
|
304
|
-
import { isAiTask, isHumanTask, isSystemTask } from '@quietloudlab/ai-interaction-atlas';
|
|
305
|
-
|
|
306
|
-
if (isAiTask(someTask)) {
|
|
307
|
-
// TypeScript knows this is an AiTask
|
|
308
|
-
console.log(someTask.layer);
|
|
309
|
-
}
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
---
|
|
313
|
-
|
|
314
|
-
## Real-World Use Cases
|
|
315
|
-
|
|
316
|
-
### 1. LLM System Prompt
|
|
317
|
-
|
|
318
|
-
Include Atlas patterns in your AI assistant's context:
|
|
319
|
-
|
|
320
|
-
```typescript
|
|
321
|
-
import { AI_TASKS, HUMAN_TASKS } from '@quietloudlab/ai-interaction-atlas';
|
|
322
|
-
|
|
323
|
-
const systemPrompt = `
|
|
324
|
-
You are an AI workflow designer. Use these interaction patterns from the AI Interaction Atlas:
|
|
325
|
-
|
|
326
|
-
AI Capabilities:
|
|
327
|
-
${AI_TASKS.map(t => `- ${t.name}: ${t.description}`).join('\n')}
|
|
328
|
-
|
|
329
|
-
Human Actions:
|
|
330
|
-
${HUMAN_TASKS.map(t => `- ${t.name}: ${t.description}`).join('\n')}
|
|
331
|
-
|
|
332
|
-
Design workflows that combine these patterns effectively.
|
|
333
|
-
`;
|
|
334
220
|
```
|
|
335
221
|
|
|
336
222
|
---
|
|
337
223
|
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
Ensure workflows use valid patterns:
|
|
341
|
-
|
|
342
|
-
```typescript
|
|
343
|
-
import { validateWorkflow, getPattern } from '@quietloudlab/ai-interaction-atlas';
|
|
344
|
-
|
|
345
|
-
function analyzeWorkflow(nodeIds: string[]) {
|
|
346
|
-
const validation = validateWorkflow(nodeIds);
|
|
224
|
+
## Real-World Uses
|
|
347
225
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
// Analyze each node
|
|
354
|
-
nodeIds.forEach(id => {
|
|
355
|
-
const pattern = getPattern(id);
|
|
356
|
-
console.log(`✓ ${pattern?.name}`);
|
|
357
|
-
});
|
|
358
|
-
|
|
359
|
-
return true;
|
|
360
|
-
}
|
|
361
|
-
```
|
|
362
|
-
|
|
363
|
-
---
|
|
364
|
-
|
|
365
|
-
### 3. Generate Documentation
|
|
366
|
-
|
|
367
|
-
Auto-generate workflow documentation:
|
|
368
|
-
|
|
369
|
-
```typescript
|
|
370
|
-
import { getPattern } from '@quietloudlab/ai-interaction-atlas';
|
|
371
|
-
|
|
372
|
-
function documentWorkflow(nodeIds: string[]) {
|
|
373
|
-
const docs = nodeIds.map(id => {
|
|
374
|
-
const pattern = getPattern(id);
|
|
375
|
-
if (!pattern) return null;
|
|
376
|
-
|
|
377
|
-
return {
|
|
378
|
-
name: pattern.name,
|
|
379
|
-
description: pattern.description,
|
|
380
|
-
inputs: pattern.inputs,
|
|
381
|
-
outputs: pattern.outputs
|
|
382
|
-
};
|
|
383
|
-
}).filter(Boolean);
|
|
384
|
-
|
|
385
|
-
return docs;
|
|
386
|
-
}
|
|
387
|
-
```
|
|
388
|
-
|
|
389
|
-
---
|
|
390
|
-
|
|
391
|
-
### 4. Build a Pattern Search Tool
|
|
392
|
-
|
|
393
|
-
Create a CLI tool for exploring patterns:
|
|
394
|
-
|
|
395
|
-
```typescript
|
|
396
|
-
import { searchPatterns, getAtlasStats } from '@quietloudlab/ai-interaction-atlas';
|
|
397
|
-
|
|
398
|
-
function searchCLI(query: string) {
|
|
399
|
-
console.log('Searching Atlas...\n');
|
|
400
|
-
|
|
401
|
-
const results = searchPatterns(query);
|
|
402
|
-
|
|
403
|
-
console.log(`Found ${results.length} patterns:\n`);
|
|
404
|
-
|
|
405
|
-
results.forEach(pattern => {
|
|
406
|
-
console.log(`- ${pattern.name}`);
|
|
407
|
-
console.log(` ${pattern.description}\n`);
|
|
408
|
-
});
|
|
409
|
-
|
|
410
|
-
const stats = getAtlasStats();
|
|
411
|
-
console.log(`\nAtlas contains ${stats.total} total patterns.`);
|
|
412
|
-
}
|
|
413
|
-
```
|
|
414
|
-
|
|
415
|
-
---
|
|
416
|
-
|
|
417
|
-
### 5. Filter by Constraint
|
|
418
|
-
|
|
419
|
-
Find patterns compatible with specific constraints:
|
|
420
|
-
|
|
421
|
-
```typescript
|
|
422
|
-
import {
|
|
423
|
-
AI_TASKS,
|
|
424
|
-
CONSTRAINTS,
|
|
425
|
-
filterConstraintsByCategory
|
|
426
|
-
} from '@quietloudlab/ai-interaction-atlas';
|
|
427
|
-
|
|
428
|
-
// Get all privacy-related constraints
|
|
429
|
-
const privacyConstraints = filterConstraintsByCategory('Quality & Safety');
|
|
430
|
-
|
|
431
|
-
// Find AI tasks suitable for high-privacy scenarios
|
|
432
|
-
const privateTasks = AI_TASKS.filter(task => {
|
|
433
|
-
// Your custom logic to check compatibility
|
|
434
|
-
return task.description.toLowerCase().includes('privacy');
|
|
435
|
-
});
|
|
436
|
-
```
|
|
226
|
+
- **Design audits:** Map an existing AI product to surface risks and gaps
|
|
227
|
+
- **System prompts:** Ground AI assistants in real interaction patterns
|
|
228
|
+
- **Documentation:** Generate inspectable system diagrams and specs
|
|
229
|
+
- **Tooling:** Build search, validation, or mapping tools on top of the Atlas
|
|
230
|
+
- **Education:** Teach applied AI system design with concrete language
|
|
437
231
|
|
|
438
232
|
---
|
|
439
233
|
|
|
440
234
|
## TypeScript Support
|
|
441
235
|
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
```typescript
|
|
445
|
-
import type {
|
|
446
|
-
AiTask,
|
|
447
|
-
HumanTask,
|
|
448
|
-
IOSpec,
|
|
449
|
-
AtlasData
|
|
450
|
-
} from '@quietloudlab/ai-interaction-atlas';
|
|
236
|
+
Written in TypeScript with full type definitions.
|
|
451
237
|
|
|
238
|
+
```ts
|
|
452
239
|
function analyzeTask(task: AiTask) {
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
const layer: string = task.layer;
|
|
240
|
+
console.log(task.layer);
|
|
241
|
+
console.log(task.inputs);
|
|
242
|
+
console.log(task.outputs);
|
|
457
243
|
}
|
|
458
244
|
```
|
|
459
245
|
|
|
460
246
|
---
|
|
461
247
|
|
|
462
|
-
## Bundle
|
|
248
|
+
## Bundle & Dependencies
|
|
463
249
|
|
|
464
|
-
-
|
|
465
|
-
-
|
|
466
|
-
-
|
|
250
|
+
- ~220KB uncompressed
|
|
251
|
+
- Tree-shakeable
|
|
252
|
+
- Zero runtime dependencies
|
|
253
|
+
- Pure data + utilities
|
|
467
254
|
|
|
468
255
|
---
|
|
469
256
|
|
|
470
257
|
## License
|
|
471
258
|
|
|
472
|
-
Apache 2.0
|
|
259
|
+
Apache 2.0 — free to use, modify, and integrate commercially.
|
|
260
|
+
See [LICENSE](LICENSE) for details.
|
|
473
261
|
|
|
474
262
|
---
|
|
475
263
|
|
|
476
264
|
## About
|
|
477
265
|
|
|
478
|
-
Created by
|
|
266
|
+
Created by **Brandon Harwood** at **quietloudlab** —
|
|
267
|
+
a design and research studio focused on human-centered AI, system legibility, and responsible interaction design.
|
|
479
268
|
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
## Links
|
|
483
|
-
|
|
484
|
-
- 🌐 [Live Atlas](https://ai-interaction.com)
|
|
485
|
-
- 📖 [Rationale](https://ai-interaction.com/rationale)
|
|
486
|
-
- 🐙 [GitHub Repository](https://github.com/quietloudlab/ai-interaction-atlas)
|
|
487
|
-
- 🐛 [Report Issues](https://github.com/quietloudlab/ai-interaction-atlas/issues)
|
|
269
|
+
- 🌐 https://quietloudlab.com
|
|
270
|
+
- 🌐 https://ai-interaction.com
|
|
488
271
|
|
|
489
272
|
---
|
|
490
273
|
|
|
491
274
|
## Contributing
|
|
492
275
|
|
|
493
|
-
The Atlas is open source and
|
|
276
|
+
The Atlas is open source and evolving.
|
|
277
|
+
|
|
278
|
+
Contributions, issues, and discussions are welcome — especially around:
|
|
279
|
+
- new patterns
|
|
280
|
+
- clearer definitions
|
|
281
|
+
- real-world examples
|
|
282
|
+
- missing constraints
|
|
283
|
+
|
|
284
|
+
See the GitHub repository for contribution guidelines.
|
package/package.json
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quietloudlab/ai-interaction-atlas",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "A shared language for designing AI experiences - 100+ interaction patterns across human actions, AI tasks, system operations, data, constraints, and touchpoints",
|
|
5
|
-
"main": "./dist/index.
|
|
6
|
-
"module": "./dist/index.
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.mjs",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
|
-
"import": "./dist/index.
|
|
12
|
-
"require": "./dist/index.
|
|
11
|
+
"import": "./dist/index.mjs",
|
|
12
|
+
"require": "./dist/index.js"
|
|
13
13
|
},
|
|
14
14
|
"./types": {
|
|
15
15
|
"types": "./dist/types.d.ts",
|
|
16
|
-
"import": "./dist/types.
|
|
17
|
-
"require": "./dist/types.
|
|
16
|
+
"import": "./dist/types.mjs",
|
|
17
|
+
"require": "./dist/types.js"
|
|
18
18
|
},
|
|
19
19
|
"./data": {
|
|
20
20
|
"types": "./dist/data.d.ts",
|
|
21
|
-
"import": "./dist/data.
|
|
22
|
-
"require": "./dist/data.
|
|
21
|
+
"import": "./dist/data.mjs",
|
|
22
|
+
"require": "./dist/data.js"
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
25
|
"files": [
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"homepage": "https://ai-interaction.com",
|
|
52
52
|
"repository": {
|
|
53
53
|
"type": "git",
|
|
54
|
-
"url": "https://github.com/quietloudlab/ai-interaction-atlas.git",
|
|
54
|
+
"url": "git+https://github.com/quietloudlab/ai-interaction-atlas.git",
|
|
55
55
|
"directory": "atlas-package"
|
|
56
56
|
},
|
|
57
57
|
"bugs": {
|