@ai-outfitter/outfitter 0.11.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/.outfitter/skills/outfitter/SKILL.md +67 -37
- package/README.md +63 -35
- package/code/enterprise/cli/privateCatalogSettings.cjs +2 -2
- package/code/enterprise/pi-extension/privateCatalogOnboarding.js +5 -8
- package/code/enterprise/shared/privateCatalogPolicy.cjs +5 -5
- package/code/pi-extension/src/outfitter-extension.js +353 -553
- package/code/pi-extension/src/outfitter-runtime-extension.js +160 -0
- package/dist/agents/AgentLaunch.d.ts +9 -1
- package/dist/agents/AgentLaunch.js +19 -0
- package/dist/agents/AgentLaunch.js.map +1 -1
- package/dist/agents/PiCredentialPersistence.d.ts +6 -0
- package/dist/agents/PiCredentialPersistence.js +33 -0
- package/dist/agents/PiCredentialPersistence.js.map +1 -0
- package/dist/cli/OutfitterCli.js +10 -18
- package/dist/cli/OutfitterCli.js.map +1 -1
- package/dist/cli/commands/CommandObject.d.ts +0 -5
- package/dist/cli/commands/CommandObject.js +1 -4
- package/dist/cli/commands/CommandObject.js.map +1 -1
- package/dist/cli/commands/DumpCommand.d.ts +19 -0
- package/dist/cli/commands/DumpCommand.js +54 -0
- package/dist/cli/commands/DumpCommand.js.map +1 -0
- package/dist/cli/commands/ListCommand.d.ts +17 -0
- package/dist/cli/commands/ListCommand.js +77 -0
- package/dist/cli/commands/ListCommand.js.map +1 -0
- package/dist/cli/commands/PiRuntimeLaunch.d.ts +8 -0
- package/dist/cli/commands/PiRuntimeLaunch.js +47 -0
- package/dist/cli/commands/PiRuntimeLaunch.js.map +1 -0
- package/dist/cli/commands/ProcessDefaults.d.ts +2 -0
- package/dist/cli/commands/ProcessDefaults.js +5 -0
- package/dist/cli/commands/ProcessDefaults.js.map +1 -0
- package/dist/cli/commands/RunAgentCommand.d.ts +46 -0
- package/dist/cli/commands/RunAgentCommand.js +176 -0
- package/dist/cli/commands/RunAgentCommand.js.map +1 -0
- package/dist/cli/commands/SetupCommand.d.ts +38 -6
- package/dist/cli/commands/SetupCommand.js +194 -232
- package/dist/cli/commands/SetupCommand.js.map +1 -1
- package/dist/cli/commands/ValidateCommand.d.ts +20 -0
- package/dist/cli/commands/ValidateCommand.js +54 -0
- package/dist/cli/commands/ValidateCommand.js.map +1 -0
- package/dist/composer/Composer.d.ts +11 -0
- package/dist/composer/Composer.js +72 -0
- package/dist/composer/Composer.js.map +1 -0
- package/dist/composer/Composition.d.ts +33 -0
- package/dist/composer/Composition.js +2 -0
- package/dist/composer/Composition.js.map +1 -0
- package/dist/dump/Containment.d.ts +8 -0
- package/dist/dump/Containment.js +22 -0
- package/dist/dump/Containment.js.map +1 -0
- package/dist/dump/Dump.d.ts +8 -0
- package/dist/dump/Dump.js +182 -0
- package/dist/dump/Dump.js.map +1 -0
- package/dist/extensions/PiExtensionCache.d.ts +30 -0
- package/dist/extensions/PiExtensionCache.js +92 -0
- package/dist/extensions/PiExtensionCache.js.map +1 -0
- package/dist/fs/TypeConflict.d.ts +6 -0
- package/dist/fs/TypeConflict.js +21 -0
- package/dist/fs/TypeConflict.js.map +1 -0
- package/dist/paths/OutfitterCache.d.ts +6 -0
- package/dist/paths/OutfitterCache.js +17 -0
- package/dist/paths/OutfitterCache.js.map +1 -0
- package/dist/projection/Materialize.d.ts +24 -0
- package/dist/projection/Materialize.js +83 -0
- package/dist/projection/Materialize.js.map +1 -0
- package/dist/projection/ProjectHarness.d.ts +5 -0
- package/dist/projection/ProjectHarness.js +77 -0
- package/dist/projection/ProjectHarness.js.map +1 -0
- package/dist/projection/Projection.d.ts +23 -0
- package/dist/projection/Projection.js +2 -0
- package/dist/projection/Projection.js.map +1 -0
- package/dist/resolver/AgentDefinition.d.ts +30 -0
- package/dist/resolver/AgentDefinition.js +123 -0
- package/dist/resolver/AgentDefinition.js.map +1 -0
- package/dist/resolver/Layer.d.ts +12 -0
- package/dist/resolver/Layer.js +30 -0
- package/dist/resolver/Layer.js.map +1 -0
- package/dist/resolver/Resolver.d.ts +3 -0
- package/dist/resolver/Resolver.js +163 -0
- package/dist/resolver/Resolver.js.map +1 -0
- package/dist/resolver/ResolverContext.d.ts +15 -0
- package/dist/resolver/ResolverContext.js +11 -0
- package/dist/resolver/ResolverContext.js.map +1 -0
- package/dist/resolver/ResolverValidation.d.ts +11 -0
- package/dist/resolver/ResolverValidation.js +112 -0
- package/dist/resolver/ResolverValidation.js.map +1 -0
- package/dist/resolver/Resource.d.ts +88 -0
- package/dist/resolver/Resource.js +34 -0
- package/dist/resolver/Resource.js.map +1 -0
- package/dist/schemas/agent.schema.json +48 -0
- package/dist/schemas/settings.schema.json +32 -9
- package/dist/settings/Settings.d.ts +34 -5
- package/dist/settings/Settings.js +3 -1
- package/dist/settings/Settings.js.map +1 -1
- package/dist/settings/SettingsLoader.d.ts +1 -1
- package/dist/settings/SettingsLoader.js +23 -22
- package/dist/settings/SettingsLoader.js.map +1 -1
- package/dist/settings/SettingsMerger.js +12 -10
- package/dist/settings/SettingsMerger.js.map +1 -1
- package/dist/setup/DefaultCatalog.d.ts +20 -0
- package/dist/setup/DefaultCatalog.js +89 -0
- package/dist/setup/DefaultCatalog.js.map +1 -0
- package/dist/setup/Setup.d.ts +43 -0
- package/dist/setup/Setup.js +261 -0
- package/dist/setup/Setup.js.map +1 -0
- package/dist/skills/SkillDocument.d.ts +6 -1
- package/dist/skills/SkillDocument.js.map +1 -1
- package/dist/sources/SourceCache.d.ts +19 -0
- package/dist/{profiles/ProfileCache.js → sources/SourceCache.js} +22 -18
- package/dist/sources/SourceCache.js.map +1 -0
- package/dist/validation/SchemaValidator.d.ts +1 -1
- package/dist/validation/SchemaValidator.js +4 -13
- package/dist/validation/SchemaValidator.js.map +1 -1
- package/docs/architecture/state_writeback_strategy.md +54 -122
- package/docs/documentation/README.md +33 -12
- package/docs/documentation/actions.md +35 -52
- package/docs/documentation/agents.md +109 -0
- package/docs/documentation/best-practices.md +25 -63
- package/docs/documentation/catalogs.md +126 -0
- package/docs/documentation/cli.md +39 -41
- package/docs/documentation/concepts.md +66 -23
- package/docs/documentation/dump-and-bake.md +30 -0
- package/docs/documentation/first-time-cli-agent-users.md +8 -8
- package/docs/documentation/getting-started.md +28 -8
- package/docs/documentation/hooks.md +20 -0
- package/docs/documentation/iterating-on-profiles.md +56 -70
- package/docs/documentation/local-development.md +84 -0
- package/docs/documentation/migration.md +39 -0
- package/docs/documentation/personas.md +41 -0
- package/docs/documentation/porting-claude.md +54 -0
- package/docs/documentation/profiles.md +16 -169
- package/docs/documentation/settings.md +61 -0
- package/docs/documentation/skills.md +93 -334
- package/docs/documentation/state.md +24 -62
- package/docs/documentation/subagents.md +37 -0
- package/docs/documentation/support-matrix.md +40 -35
- package/docs/documentation/switching-to-outfitter.md +75 -81
- package/docs/documentation/tasks.md +13 -0
- package/docs/documentation/usecases/engineering.md +67 -84
- package/docs/documentation/usecases/organization-profile-catalog.md +83 -111
- package/docs/documentation/usecases/persona-reviews.md +133 -139
- package/docs/philosophy.md +2 -2
- package/package.json +3 -3
- package/src/schemas/agent.schema.json +48 -0
- package/src/schemas/settings.schema.json +32 -9
- package/dist/agents/AdapterProfileControls.d.ts +0 -21
- package/dist/agents/AdapterProfileControls.js +0 -76
- package/dist/agents/AdapterProfileControls.js.map +0 -1
- package/dist/agents/AdapterStatePaths.d.ts +0 -12
- package/dist/agents/AdapterStatePaths.js +0 -46
- package/dist/agents/AdapterStatePaths.js.map +0 -1
- package/dist/agents/AgentAdapter.d.ts +0 -44
- package/dist/agents/AgentAdapter.js +0 -2
- package/dist/agents/AgentAdapter.js.map +0 -1
- package/dist/agents/AgentRegistry.d.ts +0 -6
- package/dist/agents/AgentRegistry.js +0 -17
- package/dist/agents/AgentRegistry.js.map +0 -1
- package/dist/agents/LaunchResources.d.ts +0 -17
- package/dist/agents/LaunchResources.js +0 -61
- package/dist/agents/LaunchResources.js.map +0 -1
- package/dist/agents/OutfitterSkill.d.ts +0 -11
- package/dist/agents/OutfitterSkill.js +0 -128
- package/dist/agents/OutfitterSkill.js.map +0 -1
- package/dist/agents/ResourceIdentity.d.ts +0 -2
- package/dist/agents/ResourceIdentity.js +0 -51
- package/dist/agents/ResourceIdentity.js.map +0 -1
- package/dist/agents/claude/ClaudeAdapter.d.ts +0 -2
- package/dist/agents/claude/ClaudeAdapter.js +0 -148
- package/dist/agents/claude/ClaudeAdapter.js.map +0 -1
- package/dist/agents/claude/ClaudeCompositeProfileWriter.d.ts +0 -5
- package/dist/agents/claude/ClaudeCompositeProfileWriter.js +0 -7
- package/dist/agents/claude/ClaudeCompositeProfileWriter.js.map +0 -1
- package/dist/agents/pi/PiAdapter.d.ts +0 -2
- package/dist/agents/pi/PiAdapter.js +0 -363
- package/dist/agents/pi/PiAdapter.js.map +0 -1
- package/dist/agents/pi/PiArgs.d.ts +0 -2
- package/dist/agents/pi/PiArgs.js +0 -15
- package/dist/agents/pi/PiArgs.js.map +0 -1
- package/dist/agents/pi/PiCompositeProfileWriter.d.ts +0 -5
- package/dist/agents/pi/PiCompositeProfileWriter.js +0 -7
- package/dist/agents/pi/PiCompositeProfileWriter.js.map +0 -1
- package/dist/agents/pi/PiExtensionCache.d.ts +0 -12
- package/dist/agents/pi/PiExtensionCache.js +0 -195
- package/dist/agents/pi/PiExtensionCache.js.map +0 -1
- package/dist/agents/pi/PiMcpConfig.d.ts +0 -2
- package/dist/agents/pi/PiMcpConfig.js +0 -114
- package/dist/agents/pi/PiMcpConfig.js.map +0 -1
- package/dist/agents/pi/PiSettingsMergePolicy.d.ts +0 -17
- package/dist/agents/pi/PiSettingsMergePolicy.js +0 -59
- package/dist/agents/pi/PiSettingsMergePolicy.js.map +0 -1
- package/dist/agents/pi/PiSkillSources.d.ts +0 -8
- package/dist/agents/pi/PiSkillSources.js +0 -73
- package/dist/agents/pi/PiSkillSources.js.map +0 -1
- package/dist/cli/commands/FirstRunWelcomeProfile.d.ts +0 -11
- package/dist/cli/commands/FirstRunWelcomeProfile.js +0 -110
- package/dist/cli/commands/FirstRunWelcomeProfile.js.map +0 -1
- package/dist/cli/commands/PiLoginLaunch.d.ts +0 -22
- package/dist/cli/commands/PiLoginLaunch.js +0 -170
- package/dist/cli/commands/PiLoginLaunch.js.map +0 -1
- package/dist/cli/commands/RunCommand.d.ts +0 -36
- package/dist/cli/commands/RunCommand.js +0 -345
- package/dist/cli/commands/RunCommand.js.map +0 -1
- package/dist/cli/commands/SyncCommand.d.ts +0 -46
- package/dist/cli/commands/SyncCommand.js +0 -244
- package/dist/cli/commands/SyncCommand.js.map +0 -1
- package/dist/cli/commands/WelcomeCommand.d.ts +0 -56
- package/dist/cli/commands/WelcomeCommand.js +0 -224
- package/dist/cli/commands/WelcomeCommand.js.map +0 -1
- package/dist/cli/commands/assets/outfitter-ascii.txt +0 -5
- package/dist/cli/commands/profile/Command.d.ts +0 -7
- package/dist/cli/commands/profile/Command.js +0 -24
- package/dist/cli/commands/profile/Command.js.map +0 -1
- package/dist/cli/commands/profile/CreateCommand.d.ts +0 -19
- package/dist/cli/commands/profile/CreateCommand.js +0 -115
- package/dist/cli/commands/profile/CreateCommand.js.map +0 -1
- package/dist/cli/commands/profile/LintCommand.d.ts +0 -19
- package/dist/cli/commands/profile/LintCommand.js +0 -155
- package/dist/cli/commands/profile/LintCommand.js.map +0 -1
- package/dist/cli/commands/profile/ListCommand.d.ts +0 -19
- package/dist/cli/commands/profile/ListCommand.js +0 -91
- package/dist/cli/commands/profile/ListCommand.js.map +0 -1
- package/dist/cli/commands/profile/Shared.d.ts +0 -9
- package/dist/cli/commands/profile/Shared.js +0 -10
- package/dist/cli/commands/profile/Shared.js.map +0 -1
- package/dist/cli/commands/run/RunFirstRunOnboarding.d.ts +0 -7
- package/dist/cli/commands/run/RunFirstRunOnboarding.js +0 -52
- package/dist/cli/commands/run/RunFirstRunOnboarding.js.map +0 -1
- package/dist/cli/commands/run/RunLaunchSummary.d.ts +0 -2
- package/dist/cli/commands/run/RunLaunchSummary.js +0 -35
- package/dist/cli/commands/run/RunLaunchSummary.js.map +0 -1
- package/dist/cli/commands/run/RunProfileResolution.d.ts +0 -39
- package/dist/cli/commands/run/RunProfileResolution.js +0 -128
- package/dist/cli/commands/run/RunProfileResolution.js.map +0 -1
- package/dist/cli/commands/run/RunStateWritePrompt.d.ts +0 -2
- package/dist/cli/commands/run/RunStateWritePrompt.js +0 -29
- package/dist/cli/commands/run/RunStateWritePrompt.js.map +0 -1
- package/dist/cli/commands/setup/SetupPrompts.d.ts +0 -14
- package/dist/cli/commands/setup/SetupPrompts.js +0 -296
- package/dist/cli/commands/setup/SetupPrompts.js.map +0 -1
- package/dist/cli/commands/setup/SetupSourceImport.d.ts +0 -5
- package/dist/cli/commands/setup/SetupSourceImport.js +0 -177
- package/dist/cli/commands/setup/SetupSourceImport.js.map +0 -1
- package/dist/cli/commands/setup/SetupSourceLaunch.d.ts +0 -4
- package/dist/cli/commands/setup/SetupSourceLaunch.js +0 -65
- package/dist/cli/commands/setup/SetupSourceLaunch.js.map +0 -1
- package/dist/cli/commands/setup/SetupStarterSource.d.ts +0 -21
- package/dist/cli/commands/setup/SetupStarterSource.js +0 -133
- package/dist/cli/commands/setup/SetupStarterSource.js.map +0 -1
- package/dist/cli/commands/setup/SetupTypes.d.ts +0 -91
- package/dist/cli/commands/setup/SetupTypes.js +0 -26
- package/dist/cli/commands/setup/SetupTypes.js.map +0 -1
- package/dist/compositeProfile/CompositeProfile.d.ts +0 -8
- package/dist/compositeProfile/CompositeProfile.js +0 -6
- package/dist/compositeProfile/CompositeProfile.js.map +0 -1
- package/dist/compositeProfile/CompositeProfileAssembler.d.ts +0 -12
- package/dist/compositeProfile/CompositeProfileAssembler.js +0 -32
- package/dist/compositeProfile/CompositeProfileAssembler.js.map +0 -1
- package/dist/compositeProfile/CompositeProfileCleanup.d.ts +0 -9
- package/dist/compositeProfile/CompositeProfileCleanup.js +0 -87
- package/dist/compositeProfile/CompositeProfileCleanup.js.map +0 -1
- package/dist/compositeProfile/CompositeProfileFile.d.ts +0 -16
- package/dist/compositeProfile/CompositeProfileFile.js +0 -16
- package/dist/compositeProfile/CompositeProfileFile.js.map +0 -1
- package/dist/compositeProfile/CompositeProfileTemplate.d.ts +0 -15
- package/dist/compositeProfile/CompositeProfileTemplate.js +0 -65
- package/dist/compositeProfile/CompositeProfileTemplate.js.map +0 -1
- package/dist/compositeProfile/CompositeProfileWatcher.d.ts +0 -18
- package/dist/compositeProfile/CompositeProfileWatcher.js +0 -46
- package/dist/compositeProfile/CompositeProfileWatcher.js.map +0 -1
- package/dist/compositeProfile/StatePersistence.d.ts +0 -39
- package/dist/compositeProfile/StatePersistence.js +0 -249
- package/dist/compositeProfile/StatePersistence.js.map +0 -1
- package/dist/fs/SafeSymlink.d.ts +0 -13
- package/dist/fs/SafeSymlink.js +0 -50
- package/dist/fs/SafeSymlink.js.map +0 -1
- package/dist/profiles/Profile.d.ts +0 -60
- package/dist/profiles/Profile.js +0 -7
- package/dist/profiles/Profile.js.map +0 -1
- package/dist/profiles/ProfileCache.d.ts +0 -8
- package/dist/profiles/ProfileCache.js.map +0 -1
- package/dist/profiles/ProfileLoader.d.ts +0 -28
- package/dist/profiles/ProfileLoader.js +0 -299
- package/dist/profiles/ProfileLoader.js.map +0 -1
- package/dist/profiles/ProfileMerger.d.ts +0 -19
- package/dist/profiles/ProfileMerger.js +0 -112
- package/dist/profiles/ProfileMerger.js.map +0 -1
- package/dist/profiles/ProfileSource.d.ts +0 -35
- package/dist/profiles/ProfileSource.js +0 -13
- package/dist/profiles/ProfileSource.js.map +0 -1
- package/dist/profiles/PromptIncludes.d.ts +0 -32
- package/dist/profiles/PromptIncludes.js +0 -147
- package/dist/profiles/PromptIncludes.js.map +0 -1
- package/dist/prompts/SystemPromptExport.d.ts +0 -16
- package/dist/prompts/SystemPromptExport.js +0 -81
- package/dist/prompts/SystemPromptExport.js.map +0 -1
- package/dist/schemas/profile-source.schema.json +0 -29
- package/dist/schemas/profile.schema.json +0 -200
- package/dist/skills/ProfileSkillResolution.d.ts +0 -21
- package/dist/skills/ProfileSkillResolution.js +0 -88
- package/dist/skills/ProfileSkillResolution.js.map +0 -1
- package/dist/skills/SkillCatalog.d.ts +0 -41
- package/dist/skills/SkillCatalog.js +0 -119
- package/dist/skills/SkillCatalog.js.map +0 -1
- package/dist/skills/SkillResolution.d.ts +0 -34
- package/dist/skills/SkillResolution.js +0 -369
- package/dist/skills/SkillResolution.js.map +0 -1
- package/docs/documentation/profile-repository.md +0 -179
- package/src/schemas/SchemaDocument.ts +0 -20
- package/src/schemas/profile-source.schema.json +0 -29
- package/src/schemas/profile.schema.json +0 -200
|
@@ -1,114 +1,97 @@
|
|
|
1
|
-
# Engineering
|
|
1
|
+
# Engineering Catalog
|
|
2
2
|
|
|
3
|
-
An engineering
|
|
3
|
+
An engineering catalog is a shared `.agents` source for people who write code, review changes, operate infrastructure, and debug production-like systems. It gives engineers a reliable default session without asking each teammate to rebuild the same model, prompt, and skill choices by hand.
|
|
4
4
|
|
|
5
|
-
For example, `acme-engineering
|
|
5
|
+
For example, `acme-engineering/.agent` can publish a small catalog with agents for day-to-day implementation, deeper platform work, and lightweight review or triage — plus the skills those agents share.
|
|
6
6
|
|
|
7
7
|
```text
|
|
8
|
-
acme-engineering
|
|
8
|
+
acme-engineering/.agent/ # repository root is the payload
|
|
9
|
+
agents.md # shared operating rules for every agent in the tree
|
|
10
|
+
agents/
|
|
11
|
+
engineer/agent.md
|
|
12
|
+
platform-engineer/agent.md
|
|
13
|
+
reviewer/agent.md
|
|
14
|
+
skills/
|
|
15
|
+
issue-planning/
|
|
16
|
+
deployment-review/
|
|
9
17
|
settings.yml
|
|
10
|
-
profiles/
|
|
11
|
-
base-engineering/
|
|
12
|
-
profile.yml
|
|
13
|
-
engineer/
|
|
14
|
-
profile.yml
|
|
15
|
-
platform-engineer/
|
|
16
|
-
profile.yml
|
|
17
|
-
reviewer/
|
|
18
|
-
profile.yml
|
|
19
18
|
```
|
|
20
19
|
|
|
21
20
|
## Catalog settings
|
|
22
21
|
|
|
22
|
+
Settings only names the default agent; each agent carries its own loadout.
|
|
23
|
+
|
|
23
24
|
```yaml
|
|
24
|
-
#
|
|
25
|
-
|
|
26
|
-
- path: ./profiles
|
|
27
|
-
only:
|
|
28
|
-
- engineer
|
|
29
|
-
- platform-engineer
|
|
30
|
-
- reviewer
|
|
25
|
+
# settings.yml
|
|
26
|
+
default_agent: engineer
|
|
31
27
|
```
|
|
32
28
|
|
|
33
|
-
## Shared
|
|
29
|
+
## Shared operating context
|
|
34
30
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
Work as a careful engineering agent. Read the relevant code before editing,
|
|
44
|
-
prefer small reversible changes, keep secrets out of logs, run focused tests,
|
|
45
|
-
and return changed files plus verification evidence.
|
|
31
|
+
Rules that apply to every agent in the tree live in `agents.md`, so each role inherits them without ordered persona composition:
|
|
32
|
+
|
|
33
|
+
```markdown
|
|
34
|
+
<!-- agents.md -->
|
|
35
|
+
|
|
36
|
+
Work as a careful engineering agent. Read the relevant code before editing,
|
|
37
|
+
prefer small reversible changes, keep secrets out of logs, run focused tests,
|
|
38
|
+
and return changed files plus verification evidence.
|
|
46
39
|
```
|
|
47
40
|
|
|
48
|
-
## Role
|
|
41
|
+
## Role agents
|
|
49
42
|
|
|
50
|
-
Engineering catalogs SHOULD separate routine implementation from high-risk infrastructure and review work.
|
|
43
|
+
Engineering catalogs SHOULD separate routine implementation from high-risk infrastructure and review work. Each agent declares its skills, model, and thinking level in its own loadout; replace the IDs with the exact choices exposed by the team's providers.
|
|
51
44
|
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
45
|
+
```
|
|
46
|
+
<!-- agents/engineer/agent.md -->
|
|
47
|
+
---
|
|
48
|
+
name: engineer
|
|
56
49
|
description: Default for feature work, bug fixes, and test-backed implementation.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
thinking: high
|
|
63
|
-
append_system_prompt: |
|
|
64
|
-
Optimize for correct, reviewable implementation. Inspect nearby code and tests,
|
|
65
|
-
make narrow commits, run the smallest meaningful validation, and summarize risks.
|
|
50
|
+
skills: [issue-planning]
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
Optimize for correct, reviewable implementation. Inspect nearby code and tests,
|
|
54
|
+
make narrow commits, run the smallest meaningful validation, and summarize risks.
|
|
66
55
|
```
|
|
67
56
|
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
description: Higher-caution
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
append_system_prompt: |
|
|
80
|
-
Treat infrastructure and production-like systems as high-risk. Diagnose before
|
|
81
|
-
mutating state, name rollback paths, and ask before deploys, credential use,
|
|
82
|
-
payments, or irreversible operations.
|
|
57
|
+
```
|
|
58
|
+
<!-- agents/platform-engineer/agent.md -->
|
|
59
|
+
---
|
|
60
|
+
name: platform-engineer
|
|
61
|
+
description: Higher-caution role for CI, infrastructure, deployment, and incident work.
|
|
62
|
+
skills: [deployment-review]
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
Treat infrastructure and production-like systems as high-risk. Diagnose before
|
|
66
|
+
mutating state, name rollback paths, and ask before deploys, credential use,
|
|
67
|
+
payments, or irreversible operations.
|
|
83
68
|
```
|
|
84
69
|
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
description: Review-focused
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
thinking: medium
|
|
96
|
-
append_system_prompt: |
|
|
97
|
-
Review for correctness, regression risk, missing tests, unsafe operations,
|
|
98
|
-
unclear rollout paths, and documentation drift. Prioritize actionable findings
|
|
99
|
-
over style nits.
|
|
70
|
+
```
|
|
71
|
+
<!-- agents/reviewer/agent.md -->
|
|
72
|
+
---
|
|
73
|
+
name: reviewer
|
|
74
|
+
description: Review-focused role for diffs, pull requests, and release readiness.
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
Review for correctness, regression risk, missing tests, unsafe operations,
|
|
78
|
+
unclear rollout paths, and documentation drift. Prioritize actionable findings
|
|
79
|
+
over style nits.
|
|
100
80
|
```
|
|
101
81
|
|
|
102
82
|
## Verification pattern
|
|
103
83
|
|
|
104
|
-
Engineering catalogs SHOULD make verification expectations explicit
|
|
84
|
+
Engineering catalogs SHOULD make verification expectations explicit so agents return evidence instead of vague completion claims:
|
|
105
85
|
|
|
106
|
-
```yaml
|
|
107
|
-
# profiles/engineer/profile.yml excerpt
|
|
108
|
-
controls:
|
|
109
|
-
append_system_prompt: |
|
|
110
|
-
When you change code, report the exact tests or checks you ran. If a check is
|
|
111
|
-
skipped, say why and name the smallest follow-up validation that would reduce risk.
|
|
112
86
|
```
|
|
87
|
+
<!-- agents/engineer/agent.md excerpt -->
|
|
88
|
+
|
|
89
|
+
When you change code, report the exact tests or checks you ran. If a check is
|
|
90
|
+
skipped, say why and name the smallest follow-up validation that would reduce risk.
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Repeatable automation
|
|
94
|
+
|
|
95
|
+
Recurring engineering work — PR review, issue triage, scheduled audits — runs these agents headlessly through [GitHub Actions](../actions.md) with structured inputs. Adding a capability is a skill change; adding a trigger is workflow wiring; neither duplicates the roles. A dedicated task/bake contract for that recurring work is the subject of a [separate upcoming RFC](../tasks.md).
|
|
113
96
|
|
|
114
97
|
This gives an engineering team a repeatable catalog with safe defaults: fast enough for common implementation, cautious enough for infrastructure, and explicit about verification evidence.
|
|
@@ -1,140 +1,112 @@
|
|
|
1
|
-
# Organization
|
|
1
|
+
# Organization Catalog
|
|
2
2
|
|
|
3
|
-
An organization
|
|
4
|
-
For example, `acme` can publish a small catalog that gives engineers, platform operators, support staff, and executives a useful default Pi session while still letting projects override the final profile.
|
|
3
|
+
An organization catalog publishes named role agents instead of asking every user to choose models, prompts, skills, and MCP configuration by hand. The convention is an `owner/.outfitter` control repository carrying a protocol `.agents/` payload: `acme/.outfitter` can give engineers, platform operators, support staff, and executives a useful default session while still letting projects override the final composition.
|
|
5
4
|
|
|
6
5
|
```text
|
|
7
|
-
acme
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
profile.yml
|
|
18
|
-
exec-briefing/
|
|
19
|
-
profile.yml
|
|
6
|
+
acme/.outfitter/
|
|
7
|
+
.agents/
|
|
8
|
+
agents.md # shared Acme operating rules for every role
|
|
9
|
+
models.json
|
|
10
|
+
agents/
|
|
11
|
+
engineer/agent.md
|
|
12
|
+
platform-operator/agent.md
|
|
13
|
+
support-triage/agent.md
|
|
14
|
+
exec-briefing/agent.md
|
|
15
|
+
settings.yml
|
|
20
16
|
```
|
|
21
17
|
|
|
22
18
|
## Catalog settings
|
|
23
19
|
|
|
20
|
+
The catalog's `settings.yml` names the default agent; the organization distributes it through [remote settings](./../catalogs.md#organization-control-repositories):
|
|
21
|
+
|
|
24
22
|
```yaml
|
|
25
|
-
# acme
|
|
26
|
-
|
|
27
|
-
- path: ./profiles
|
|
28
|
-
only:
|
|
29
|
-
- engineer
|
|
30
|
-
- platform-operator
|
|
31
|
-
- support-triage
|
|
32
|
-
- exec-briefing
|
|
23
|
+
# acme/.outfitter/.agents/settings.yml
|
|
24
|
+
default_agent: engineer
|
|
33
25
|
```
|
|
34
26
|
|
|
35
|
-
## Shared
|
|
27
|
+
## Shared operating context
|
|
36
28
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
Work as an Acme operator: prefer small reversible changes, cite durable evidence,
|
|
46
|
-
keep secrets out of logs and docs, and write decisions into repository files.
|
|
29
|
+
Rules every role shares live in the tree's `agents.md`, inherited by each agent without ordered persona composition:
|
|
30
|
+
|
|
31
|
+
```markdown
|
|
32
|
+
<!-- .agents/agents.md -->
|
|
33
|
+
|
|
34
|
+
Work as an Acme operator: prefer small reversible changes, cite durable
|
|
35
|
+
evidence, keep secrets out of logs and docs, and write decisions into
|
|
36
|
+
repository files.
|
|
47
37
|
```
|
|
48
38
|
|
|
49
|
-
## Role
|
|
39
|
+
## Role agents
|
|
50
40
|
|
|
51
|
-
The catalog SHOULD publish role
|
|
52
|
-
Use provider-qualified model IDs that match the models available in the team's Pi or Claude configuration.
|
|
53
|
-
The examples below are intentionally role-shaped; replace model IDs with the exact names exposed by the organization's provider catalog.
|
|
41
|
+
The catalog SHOULD publish role agents that make the cost/latency/quality tradeoff explicit. Model choices live in each agent's `config.json` (or the tree's `models.json`); replace the IDs below with the exact names exposed by the organization's provider catalog.
|
|
54
42
|
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
43
|
+
```
|
|
44
|
+
<!-- .agents/agents/engineer/agent.md -->
|
|
45
|
+
---
|
|
46
|
+
name: engineer
|
|
59
47
|
description: Default for feature work, debugging, tests, and code review.
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
thinking: high
|
|
66
|
-
append_system_prompt: |
|
|
67
|
-
Optimize for correct implementation over speed. Read nearby code before editing,
|
|
68
|
-
run the narrowest meaningful tests, and return changed files plus verification.
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
Optimize for correct implementation over speed. Read nearby code before
|
|
51
|
+
editing, run the narrowest meaningful tests, and return changed files plus
|
|
52
|
+
verification.
|
|
69
53
|
```
|
|
70
54
|
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
label: Platform Operator
|
|
75
|
-
description: Higher-reasoning profile for infrastructure, incidents, CI, and release safety.
|
|
76
|
-
inherits:
|
|
77
|
-
- base-acme
|
|
78
|
-
controls:
|
|
79
|
-
provider: anthropic
|
|
80
|
-
model: anthropic/claude-opus-4
|
|
81
|
-
thinking: xhigh
|
|
82
|
-
append_system_prompt: |
|
|
83
|
-
Treat production-like systems as high-risk. Prefer diagnosis before mutation,
|
|
84
|
-
name rollback paths, and ask before deploys, credential use, payments, or irreversible changes.
|
|
55
|
+
```json
|
|
56
|
+
// .agents/agents/engineer/config.json
|
|
57
|
+
{ "provider": "anthropic", "model": "anthropic/claude-sonnet-4", "thinking": "high" }
|
|
85
58
|
```
|
|
86
59
|
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
description:
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
thinking: low
|
|
98
|
-
append_system_prompt: |
|
|
99
|
-
Convert messy user reports into concise reproduction steps, affected surfaces,
|
|
100
|
-
suspected owners, and the next question that would unblock diagnosis.
|
|
60
|
+
```
|
|
61
|
+
<!-- .agents/agents/platform-operator/agent.md -->
|
|
62
|
+
---
|
|
63
|
+
name: platform-operator
|
|
64
|
+
description: Higher-reasoning role for infrastructure, incidents, CI, and release safety.
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
Treat production-like systems as high-risk. Prefer diagnosis before mutation,
|
|
68
|
+
name rollback paths, and ask before deploys, credential use, payments, or
|
|
69
|
+
irreversible changes.
|
|
101
70
|
```
|
|
102
71
|
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
description:
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
72
|
+
```
|
|
73
|
+
<!-- .agents/agents/support-triage/agent.md -->
|
|
74
|
+
---
|
|
75
|
+
name: support-triage
|
|
76
|
+
description: Lower-cost role for ticket summarization, reproduction notes, and routing.
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
Convert messy user reports into concise reproduction steps, affected surfaces,
|
|
80
|
+
suspected owners, and the next question that would unblock diagnosis.
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
<!-- .agents/agents/exec-briefing/agent.md -->
|
|
85
|
+
---
|
|
86
|
+
name: exec-briefing
|
|
87
|
+
description: Fast role for dense status synthesis and decision memos.
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
Produce dense prose for leaders: state the decision, evidence, risk, owner,
|
|
91
|
+
deadline, and the smallest reversible next action. Avoid implementation trivia
|
|
92
|
+
unless it changes the decision.
|
|
117
93
|
```
|
|
118
94
|
|
|
119
95
|
## Budget annotation pattern
|
|
120
96
|
|
|
121
|
-
|
|
122
|
-
Keep the metric relative, because token prices and model names drift.
|
|
97
|
+
Agent `config.json` entries can carry comments-in-docs that explain why a role uses a given model and thinking level without embedding current vendor prices. Keep the metric relative, because token prices and model names drift:
|
|
123
98
|
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
# profiles/platform-operator/profile.yml excerpt
|
|
135
|
-
controls:
|
|
136
|
-
model: anthropic/claude-opus-4
|
|
137
|
-
thinking: xhigh # Expensive by design: infra mistakes dominate token spend.
|
|
99
|
+
```text
|
|
100
|
+
budget_units estimates relative spend and latency for a role, not an invoice.
|
|
101
|
+
budget_units = expected_input_tokens * input_weight
|
|
102
|
+
+ expected_output_tokens * output_weight
|
|
103
|
+
+ expected_reasoning_tokens * thinking_weight
|
|
104
|
+
thinking_weight guideline: low=1, medium=2, high=4, xhigh=8.
|
|
105
|
+
Use low/medium for repeatable summarization or routing; use high/xhigh when a
|
|
106
|
+
wrong answer can cause rework, outages, bad code, unsafe operations, or
|
|
107
|
+
expensive human review.
|
|
138
108
|
```
|
|
139
109
|
|
|
140
|
-
|
|
110
|
+
## Governance
|
|
111
|
+
|
|
112
|
+
Because the catalog is a normal repository publishing normal files, organization changes flow through ordinary pull requests: a role prompt change is a reviewable diff to one `agent.md`. Consumers pin the catalog by SHA and bump deliberately; `outfitter dump` shows exactly what a pinned composition resolves to before an approval. Recurring org automation — like a `weekly-kpis` report — lives in the same repository as an agent run through [GitHub Actions](../actions.md); a dedicated task/bake contract for that work is a [separate upcoming RFC](../tasks.md).
|