@ai-outfitter/outfitter 1.0.3 → 1.1.1
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/.outfitter/skills/outfitter/SKILL.md +1 -1
- package/README.md +1 -1
- package/code/enterprise/cli/privateCatalogGate.cjs +3 -3
- package/dist/cli/OutfitterCli.js +2 -0
- package/dist/cli/OutfitterCli.js.map +1 -1
- package/dist/cli/commands/DumpCommand.js +8 -3
- package/dist/cli/commands/DumpCommand.js.map +1 -1
- package/dist/cli/commands/ListCommand.js +4 -3
- package/dist/cli/commands/ListCommand.js.map +1 -1
- package/dist/cli/commands/PiRuntimeLaunch.js +3 -16
- package/dist/cli/commands/PiRuntimeLaunch.js.map +1 -1
- package/dist/cli/commands/RunAgentCommand.js +1 -0
- package/dist/cli/commands/RunAgentCommand.js.map +1 -1
- package/dist/cli/commands/SetupCommand.d.ts +1 -1
- package/dist/cli/commands/SetupCommand.js +6 -13
- package/dist/cli/commands/SetupCommand.js.map +1 -1
- package/dist/cli/commands/SyncCommand.d.ts +31 -0
- package/dist/cli/commands/SyncCommand.js +162 -0
- package/dist/cli/commands/SyncCommand.js.map +1 -0
- package/dist/cli/commands/ValidateCommand.js +4 -2
- package/dist/cli/commands/ValidateCommand.js.map +1 -1
- package/dist/paths/RepositoryAssets.d.ts +4 -0
- package/dist/paths/RepositoryAssets.js +26 -0
- package/dist/paths/RepositoryAssets.js.map +1 -0
- package/dist/resolver/Layer.d.ts +17 -1
- package/dist/resolver/Layer.js +23 -15
- package/dist/resolver/Layer.js.map +1 -1
- package/dist/resolver/ResolverContext.d.ts +2 -0
- package/dist/resolver/ResolverContext.js +7 -2
- package/dist/resolver/ResolverContext.js.map +1 -1
- package/dist/settings/SettingsLoader.d.ts +12 -3
- package/dist/settings/SettingsLoader.js +25 -11
- package/dist/settings/SettingsLoader.js.map +1 -1
- package/dist/setup/DefaultCatalog.d.ts +3 -2
- package/dist/setup/DefaultCatalog.js +26 -51
- package/dist/setup/DefaultCatalog.js.map +1 -1
- package/dist/sources/GitRepository.d.ts +28 -0
- package/dist/sources/GitRepository.js +139 -0
- package/dist/sources/GitRepository.js.map +1 -0
- package/dist/sources/PrivateCatalogGate.d.ts +27 -0
- package/dist/sources/PrivateCatalogGate.js +23 -0
- package/dist/sources/PrivateCatalogGate.js.map +1 -0
- package/dist/sources/SourceCache.d.ts +11 -1
- package/dist/sources/SourceCache.js +11 -2
- package/dist/sources/SourceCache.js.map +1 -1
- package/docs/documentation/README.md +2 -2
- package/docs/documentation/catalogs.md +10 -2
- package/docs/documentation/cli.md +12 -4
- package/docs/documentation/concepts.md +1 -1
- package/docs/documentation/conventions.md +10 -0
- package/docs/documentation/getting-started.md +1 -1
- package/docs/documentation/personas.md +28 -27
- package/docs/documentation/profiles.md +1 -1
- package/docs/documentation/settings.md +4 -2
- package/docs/documentation/skills.md +2 -2
- package/docs/documentation/usecases/engineering.md +1 -1
- package/docs/documentation/usecases/organization-profile-catalog.md +1 -1
- package/docs/documentation/usecases/persona-reviews.md +90 -139
- package/package.json +1 -1
|
@@ -1,167 +1,118 @@
|
|
|
1
|
-
# Persona
|
|
1
|
+
# Persona reviews
|
|
2
2
|
|
|
3
|
-
A persona review
|
|
3
|
+
A persona review gathers structured feedback on a product, docs, onboarding flow, or UX from the point of view of the people who might use it — before asking real prospects to spend time. It uses the [persona convention](../personas.md): **one shared review agent** plus **one committed Markdown file per persona**. The same file runs under Outfitter, and pastes unchanged into any web agent.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## One persona, one file
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
customer-review/ # standalone .agents repo; root is the payload
|
|
9
|
-
agents/
|
|
10
|
-
reviewer/agent.md # the base review agent
|
|
11
|
-
settings.yml
|
|
12
|
-
docs/user-personas/
|
|
13
|
-
roles/ # reusable job archetypes (shared segment priorities)
|
|
14
|
-
staff-engineer.md
|
|
15
|
-
founder-operator.md
|
|
16
|
-
platform-lead.md
|
|
17
|
-
individuals/ # specific named people, each naming one or more roles
|
|
18
|
-
marcus-bell.md # roles: [staff-engineer]
|
|
19
|
-
dana-okafor.md # roles: [founder-operator]
|
|
20
|
-
priya-nair.md # roles: [platform-lead]
|
|
21
|
-
```
|
|
7
|
+
The whole persona is one portable, self-contained Markdown document — a generic role archetype, H1 first, no frontmatter, first-person prose. Abridged from the canonical [`platform-lead.md`](https://github.com/ai-outfitter/community-profiles/blob/main/skills/persona-authoring/references/personas/platform-lead.md) reference:
|
|
22
8
|
|
|
23
|
-
|
|
9
|
+
```markdown
|
|
10
|
+
# Platform Lead
|
|
24
11
|
|
|
25
|
-
|
|
12
|
+
I'm the platform lead responsible for a consistent, reproducible agent setup
|
|
13
|
+
across a mid-sized engineering organization.
|
|
26
14
|
|
|
27
|
-
|
|
15
|
+
## How I decide
|
|
28
16
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
17
|
+
I look for clear precedence, pinned sources, documented secret boundaries,
|
|
18
|
+
least-privilege access, and tests showing that credentials stay isolated
|
|
19
|
+
between layers. I check the escape hatch first.
|
|
32
20
|
```
|
|
33
21
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
22
|
+
The review method lives in the shared [`persona-reviewer`](https://github.com/ai-outfitter/community-profiles/blob/main/agents/persona-reviewer/agent.md) agent; each persona is a Markdown file you append to it.
|
|
23
|
+
|
|
24
|
+
## Adopt persona reviews across an engineering organization
|
|
25
|
+
|
|
26
|
+
A platform engineer installs Outfitter and uses the `platform` profile to
|
|
27
|
+
configure a pinned [organization catalog](./organization-profile-catalog.md).
|
|
28
|
+
The catalog reuses the default `engineer` profile, defines the organization's
|
|
29
|
+
`marketing` profile, and makes the community persona-review components
|
|
30
|
+
available to both. After setup and sync, engineers review products from the
|
|
31
|
+
`engineer` profile while marketers review messaging from the `marketing`
|
|
32
|
+
profile. Both profile loadouts select `persona-review`. When either role is
|
|
33
|
+
asked to run a review, the skill launches the isolated shared reviewer with the
|
|
34
|
+
selected customer persona and saves the report:
|
|
35
|
+
|
|
36
|
+
```mermaid
|
|
37
|
+
flowchart LR
|
|
38
|
+
subgraph platformTeam["Platform engineer — platform profile"]
|
|
39
|
+
install["Install Outfitter"] --> platform["outfitter run platform"]
|
|
40
|
+
platform --> catalog["Configure pinned org catalog"]
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
subgraph distribution["Organization distribution"]
|
|
44
|
+
catalog --> defaults["default-profiles<br/>engineer skills: persona-review"]
|
|
45
|
+
catalog --> marketing["Organization catalog<br/>marketing skills: persona-review"]
|
|
46
|
+
defaults --> community["community-profiles<br/>persona-review skill<br/>persona-reviewer agent"]
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
subgraph roleTeams["Engineering and marketing teams"]
|
|
50
|
+
setup["outfitter setup and sync"] --> engineer["outfitter run engineer"]
|
|
51
|
+
setup --> marketer["outfitter run marketing"]
|
|
52
|
+
engineer -->|"Product review"| skill["Use persona-review skill"]
|
|
53
|
+
marketer -->|"Messaging review"| skill
|
|
54
|
+
persona["Customer persona<br/>docs/personas/customer.md"] --> reviewer["Isolated persona-reviewer"]
|
|
55
|
+
artifact["Review target"] --> reviewer
|
|
56
|
+
skill --> reviewer
|
|
57
|
+
reviewer --> report["Durable customer-review report"]
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
catalog --> setup
|
|
61
|
+
community --> setup
|
|
62
|
+
marketing --> setup
|
|
58
63
|
```
|
|
59
64
|
|
|
60
|
-
|
|
65
|
+
The `platform`, `engineer`, and `marketing` profiles are executable roles. A
|
|
66
|
+
customer persona supplies temporary identity context within the isolated
|
|
67
|
+
reviewer process.
|
|
61
68
|
|
|
62
|
-
|
|
69
|
+
## Author it
|
|
63
70
|
|
|
64
|
-
|
|
65
|
-
<!-- docs/user-personas/roles/staff-engineer.md -->
|
|
66
|
-
---
|
|
67
|
-
kind: role
|
|
68
|
-
title: Staff Engineer
|
|
69
|
-
segment: large-eng-org
|
|
70
|
-
goals: [reduce cross-team friction, raise technical quality, adopt tools that survive scrutiny]
|
|
71
|
-
anxieties: [tools that demo well but fail on a real codebase, unproven claims]
|
|
72
|
-
buying_triggers: [credible examples, verifiable outcomes, a clean migration path]
|
|
73
|
-
feedback_focus: [depth, verification paths, missing examples, evidence behind claims]
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
Responsible for large codebases, architecture decisions, reviews, and
|
|
77
|
-
cross-team technical quality. Cares whether the docs explain how the product
|
|
78
|
-
improves real engineering work. Flags missing examples, weak verification
|
|
79
|
-
paths, and claims that need evidence.
|
|
80
|
-
```
|
|
71
|
+
Start from the community catalog's [`template.persona.md`](https://github.com/ai-outfitter/community-profiles/blob/main/skills/persona-authoring/assets/template.persona.md) by hand, or let any agent that selects the [`persona-authoring`](https://github.com/ai-outfitter/community-profiles/tree/main/skills/persona-authoring) skill interview you into the file. Commit the result to normal project documentation:
|
|
81
72
|
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
title: Founder-operator
|
|
87
|
-
segment: seed-stage-startup
|
|
88
|
-
goals: [ship weekly, keep the team small, reach the next milestone before the runway ends]
|
|
89
|
-
anxieties: [tool sprawl, hidden pricing, time lost to setup]
|
|
90
|
-
buying_triggers: [obvious value in the first hour, no credit card to try]
|
|
91
|
-
feedback_focus: [time-to-first-value, jargon, trust boundaries, pricing clarity]
|
|
92
|
-
---
|
|
93
|
-
|
|
94
|
-
A hands-on founder who writes product specs, edits docs, ships small features,
|
|
95
|
-
and manages a thin team. Cares whether the first hour feels obviously valuable.
|
|
73
|
+
```text
|
|
74
|
+
docs/personas/
|
|
75
|
+
platform-lead.md
|
|
76
|
+
founder-operator.md
|
|
96
77
|
```
|
|
97
78
|
|
|
98
|
-
|
|
79
|
+
Prefer generic role archetypes over named individuals. Research and interviews are authoring inputs; commit only the self-contained file, and invent nothing the research does not support.
|
|
99
80
|
|
|
100
|
-
|
|
81
|
+
## Run it under Outfitter
|
|
101
82
|
|
|
102
|
-
|
|
103
|
-
<!-- docs/user-personas/individuals/marcus-bell.md -->
|
|
104
|
-
---
|
|
105
|
-
kind: individual
|
|
106
|
-
name: Marcus Bell
|
|
107
|
-
roles: [staff-engineer]
|
|
108
|
-
born: 1985-11-02
|
|
109
|
-
location: Seattle, WA
|
|
110
|
-
household_income: 265000
|
|
111
|
-
education: MS Computer Engineering
|
|
112
|
-
employer: ~400-engineer fintech
|
|
113
|
-
hobbies: [rock climbing, sci-fi novels, restoring old synths]
|
|
114
|
-
skills: [distributed systems, code review, architecture, mentoring]
|
|
115
|
-
tone: dry, skeptical, cites sources
|
|
116
|
-
---
|
|
117
|
-
|
|
118
|
-
Reads new tooling the way he reads a design doc: looking for the failure mode
|
|
119
|
-
first. Warm once convinced, but will not take a benchmark on faith.
|
|
120
|
-
```
|
|
83
|
+
After `outfitter setup`, launch the shared reviewer directly with the persona appended and save its output:
|
|
121
84
|
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
born: 1989-03-14
|
|
129
|
-
location: Austin, TX
|
|
130
|
-
household_income: 180000
|
|
131
|
-
education: BS Computer Science
|
|
132
|
-
employer: 6-person seed-stage startup (also the de facto platform owner)
|
|
133
|
-
hobbies: [trail running, home espresso, mechanical keyboards]
|
|
134
|
-
skills: [product specs, TypeScript, fundraising, hiring]
|
|
135
|
-
tone: fast, pragmatic, allergic to jargon
|
|
136
|
-
---
|
|
137
|
-
|
|
138
|
-
Wears the founder and the platform hat at once, so she weighs first-hour value
|
|
139
|
-
against fleet-wide safety in the same breath. Impatient with setup friction.
|
|
85
|
+
```sh
|
|
86
|
+
mkdir -p docs/persona-reviews
|
|
87
|
+
outfitter run persona-reviewer -- \
|
|
88
|
+
--append-system-prompt docs/personas/platform-lead.md \
|
|
89
|
+
--print "Review the onboarding flow and write the report. @README.md" \
|
|
90
|
+
> docs/persona-reviews/platform-lead-onboarding.md
|
|
140
91
|
```
|
|
141
92
|
|
|
142
|
-
|
|
93
|
+
This is the portable interface: it works from the project containing the persona and does not assume a particular catalog checkout path. One shared agent adopts the file as its identity for that session only and writes a first-person, sourced report — evidence cited to the exact page or UI moment, assumptions labeled. The reviewer inherits the caller's configured model; reviews benefit from a strong reasoning model.
|
|
143
94
|
|
|
144
|
-
|
|
95
|
+
### Optional orchestration with the skill
|
|
145
96
|
|
|
146
|
-
|
|
97
|
+
Use the [`persona-review`](https://github.com/ai-outfitter/community-profiles/tree/main/skills/persona-review) skill when another agent should manage the review process. The skill owns synchronous or background execution and durable report capture. From a checkout of the community catalog, its repository-relative launcher is an optional convenience:
|
|
147
98
|
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
review shape: where the product feels credible, where it feels \
|
|
154
|
-
underspecified, and the one example that would most improve your confidence."
|
|
99
|
+
```sh
|
|
100
|
+
bash skills/persona-review/scripts/persona-review.sh \
|
|
101
|
+
--persona docs/personas/platform-lead.md \
|
|
102
|
+
--report docs/persona-reviews/platform-lead-onboarding.md \
|
|
103
|
+
-- --print "Review the onboarding flow and write the report. @README.md"
|
|
155
104
|
```
|
|
156
105
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
106
|
+
The reviewer runs directly as the selected agent. This journey does not require Pi's native subagent projection.
|
|
107
|
+
|
|
108
|
+
## Take the same file to the web
|
|
109
|
+
|
|
110
|
+
Paste or upload `docs/personas/platform-lead.md` unchanged into a claude.ai project's knowledge or a ChatGPT project and say: "Treat this as stakeholder context. Review the attached landing page from this persona's point of view." The file was written to read standalone, so a tool that takes Markdown project context can use it unchanged.
|
|
111
|
+
|
|
112
|
+
## Why this shape
|
|
164
113
|
|
|
165
|
-
|
|
114
|
+
- **One file per persona**: adding a persona adds a document, not another agent.
|
|
115
|
+
- **Comparable reports**: one agent fixes the review method and output shape, so feedback from different persona files is directly comparable.
|
|
116
|
+
- **No Outfitter dependency**: Outfitter is one optional consumer of a file that does not depend on it.
|
|
166
117
|
|
|
167
|
-
|
|
118
|
+
See the [persona spec](../personas.md) for the format, and the community catalog's [persona boundary doc](https://github.com/ai-outfitter/community-profiles/blob/main/docs/persona-review.md) for the responsibility split between authoring, the shared reviewer, and project wrappers.
|
package/package.json
CHANGED