@iamu-dev/iamu 0.4.0-beta.0 → 0.5.0-beta.0

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.
@@ -21,9 +21,9 @@ $ARGUMENTS
21
21
 
22
22
  Do NOT use `find`, `grep`, or `cat` to dump raw `.md` files in `iamu/`. The CLI outputs clean, validated data.
23
23
 
24
- ### 2. Format entity responses with an executive tally and clickable links
24
+ ### 2. Format entity responses with an executive tally
25
25
 
26
- When the user asks for project status, lead with an executive tally banner, followed by compact 1-line bullet points with clickable markdown file links.
26
+ When the user asks for project status, lead with an executive tally banner, followed by compact 1-line bullet points that name entities by slug in backticks. Do not link entity files: a relative path opens nowhere in a terminal. Web addresses are written out in full.
27
27
 
28
28
  **ANTI-BLOAT DIRECTIVE:** Do NOT output multi-column markdown tables (they wrap awkwardly and break borders in terminal viewports). Keep each entity to a single scannable line:
29
29
 
@@ -33,17 +33,17 @@ Product Map: <T> Surfaces (<R> Reached · <U> Unreached) [if explore map exis
33
33
  ```
34
34
 
35
35
  **Personas:**
36
- • [`elin-dahl`](iamu/personas/elin-dahl.md) — Elin Dahl · Architect & first-time house owner in Falun · active
36
+ • `elin-dahl` — Elin Dahl · Architect & first-time house owner in Falun · active
37
37
 
38
38
  **Scenarios:**
39
- • [`replacing-windows`](iamu/scenarios/replacing-windows.md) — [`elin-dahl`](iamu/personas/elin-dahl.md) · outline: [`measure-and-order`](iamu/outlines/measure-and-order.md) · ready
39
+ • `replacing-windows` — `elin-dahl` · outline: `measure-and-order` · ready
40
40
 
41
41
  **Findings:**
42
- • `1` [CRITICAL · hinders] Submit fails opaquely on empty field — [`view`](iamu/findings/<slug>.md)
42
+ • `1` [CRITICAL · hinders] Submit fails opaquely on empty field — `<slug>`
43
43
 
44
44
  **Awaiting Verification (Needs a Re-run):**
45
45
  If `iamu status` reports fixes awaiting a re-run:
46
- • [`<scenario-slug>`](iamu/scenarios/<scenario-slug>.md) — <N> fixes awaiting verification from a re-run (`iamu-run <scenario-slug>`)
46
+ • `<scenario-slug>` — <N> fixes awaiting verification from a re-run (`iamu-run <scenario-slug>`)
47
47
 
48
48
  **Product Map & Unreached Surfaces:**
49
49
  If `iamu status --json` has `explore` data:
@@ -57,7 +57,7 @@ The directory `iamu/.prompts/` contains internal prompt templates (`persona.md`,
57
57
 
58
58
  For a project-status question, add one line on the cloud from `iamu status --json` (`mode`, `sync`, `requests`) and `iamu auth status --json` (`authenticated`):
59
59
 
60
- - **Linked** → `Cloud: linked — [Open Project in Iamu Cloud](<url from iamu open --print>)`, then only what needs action: unpushed changes (`sync.pending_new` + `sync.pending_updates` + `walkthroughs.pending`, and `sync.local_deletions.count`) → `iamu sync`; `requests.open` above zero → `<N> team requests — iamu-findings`.
60
+ - **Linked** → `Cloud: linked — <full https URL from iamu open --print>`, then only what needs action: unpushed changes (`sync.pending_new` + `sync.pending_updates` + `walkthroughs.pending`, and `sync.local_deletions.count`) → `iamu sync`; `requests.open` above zero → `<N> team requests — iamu-findings`.
61
61
  - **Linked, no credentials** → `Cloud: linked, but this machine has no credentials — iamu auth login.`
62
62
  - **Local-only** → `Cloud: local-only.` Nothing more; no upgrade pitch.
63
63
 
@@ -8,3 +8,10 @@
8
8
  export declare function getTemplatesRoot(): string;
9
9
  export declare function getTemplateDir(subdir: "skills" | "prompts"): string;
10
10
  export declare function getTemplateFile(subdir: "skills" | "prompts", filename: string): string;
11
+ /** Prompt templates `iamu init` installs and `iamu update` refreshes in `iamu/.prompts/`. */
12
+ export declare const PROMPT_FILES: readonly ["walk.md", "persona.md", "outline.md", "combine.md", "complete.md", "evaluate.md", "advise.md", "design-draft.md", "design-review.md"];
13
+ /**
14
+ * A prompt as the project has it: its `iamu/.prompts/<name>` copy (which
15
+ * a team may tune), else the bundled template.
16
+ */
17
+ export declare function readInstalledPrompt(projectRoot: string, name: (typeof PROMPT_FILES)[number]): string;
@@ -1,3 +1,4 @@
1
+ import { type CheckOutcome, type RunChecks } from "@iamu-dev/local-store";
1
2
  export interface HtmlReportHighlight {
2
3
  targetBox: {
3
4
  x: number;
@@ -40,16 +41,31 @@ export interface HtmlReportFinding {
40
41
  uiFact?: string | null;
41
42
  consequence?: string | null;
42
43
  recommendation?: string | null;
44
+ /** "/request · step 8" */
45
+ where?: string | null;
46
+ isNew?: boolean;
47
+ persists?: boolean;
43
48
  }
44
49
  export interface HtmlReportVerdict {
45
50
  question: string;
46
51
  rating: string;
47
52
  reasoning?: string;
48
53
  }
54
+ export interface HtmlReportSinceItem {
55
+ title: string;
56
+ note?: string;
57
+ step_ids?: string[];
58
+ fixed_before?: boolean;
59
+ severity_before?: string;
60
+ severity_now?: string;
61
+ }
49
62
  export interface HtmlReportVerification {
50
- resolved: unknown[];
51
- persists: unknown[];
52
- newFindings: unknown[];
63
+ resolved: HtmlReportSinceItem[];
64
+ persists: HtmlReportSinceItem[];
65
+ notObserved?: HtmlReportSinceItem[];
66
+ newFindings: Array<{
67
+ type?: string;
68
+ }>;
53
69
  }
54
70
  export interface HtmlReportData {
55
71
  scenarioName: string;
@@ -67,9 +83,25 @@ export interface HtmlReportData {
67
83
  steps: HtmlReportStep[];
68
84
  findings: HtmlReportFinding[];
69
85
  verdicts?: HtmlReportVerdict[];
86
+ /** The run's answer to "would they come back", with one label for all tests. */
87
+ overall?: {
88
+ question: string;
89
+ label: string;
90
+ answer: string | null;
91
+ reasoning: string | null;
92
+ } | null;
70
93
  verification?: HtmlReportVerification | null;
71
94
  whatWorked?: string[];
72
95
  openQuestions?: string[];
96
+ /** The walker's doubts about the test setup. */
97
+ setupNotes?: string[];
98
+ /** What a re-run was sent to check, with this run's outcome for each fix. */
99
+ checks?: {
100
+ fixes: Array<RunChecks["fixes"][number] & {
101
+ outcome: CheckOutcome;
102
+ }>;
103
+ directions: string[];
104
+ } | null;
73
105
  }
74
106
  export declare function generateHtmlReport(data: HtmlReportData): string;
75
107
  /**
@@ -40,6 +40,12 @@ export interface RunView {
40
40
  items: Array<{
41
41
  title: string;
42
42
  outcome: SinceOutcome;
43
+ /** Why the matcher judged it so. */
44
+ note: string | null;
45
+ /** Marked addressed before this run: persisting means the fix did not hold. */
46
+ fixedBefore: boolean;
47
+ /** Persists only: "less severe, major → minor" or "worse, …", else "". */
48
+ shift: string;
43
49
  }>;
44
50
  } | null;
45
51
  findings: RunFindingRow[];
@@ -54,11 +60,26 @@ export interface RunView {
54
60
  kind: string;
55
61
  title: string;
56
62
  }>;
63
+ /** The fixes this run re-checked: how many, confirmed fixed, and came back. */
64
+ checks: {
65
+ fixes: number;
66
+ fixed: number;
67
+ cameBack: number;
68
+ directions: string[];
69
+ } | null;
70
+ /** The walker's doubts about the test setup. */
71
+ setupNotes: string[];
57
72
  }
58
73
  export interface OverviewRun {
59
74
  completedAt: string | null;
60
75
  label: VerdictLabel;
61
76
  problems: number;
77
+ /** Problems by severity: critical, major, minor (minor includes observations). */
78
+ bySeverity: {
79
+ critical: number;
80
+ major: number;
81
+ minor: number;
82
+ };
62
83
  resolved: number;
63
84
  persists: number;
64
85
  added: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iamu-dev/iamu",
3
- "version": "0.4.0-beta.0",
3
+ "version": "0.5.0-beta.0",
4
4
  "type": "module",
5
5
  "description": "Test your product as realistic personas — scenario-driven development CLI",
6
6
  "license": "UNLICENSED",
@@ -58,8 +58,8 @@
58
58
  "tsup": "^8.5.1",
59
59
  "typescript": "^5.8.0",
60
60
  "vitest": "^4.1.11",
61
- "@iamu-dev/local-store": "0.1.0",
62
61
  "@iamu-dev/protocol": "0.1.0",
62
+ "@iamu-dev/local-store": "0.1.0",
63
63
  "@iamu/tsconfig": "0.1.0"
64
64
  },
65
65
  "scripts": {