@ai-outfitter/outfitter 0.6.1 → 0.7.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.
- package/LICENSE.md +20 -50
- package/README.md +36 -280
- package/code/enterprise/LICENSE +35 -0
- package/code/enterprise/README.md +5 -0
- package/dist/agents/AdapterProfileControls.d.ts +2 -2
- package/dist/agents/AdapterProfileControls.js +8 -1
- package/dist/agents/AdapterProfileControls.js.map +1 -1
- package/dist/agents/AgentAdapter.d.ts +10 -0
- package/dist/agents/AgentLaunch.d.ts +6 -0
- package/dist/agents/AgentLaunch.js +89 -0
- package/dist/agents/AgentLaunch.js.map +1 -0
- package/dist/agents/claude/ClaudeAdapter.js +18 -3
- package/dist/agents/claude/ClaudeAdapter.js.map +1 -1
- package/dist/agents/pi/PiAdapter.js +154 -14
- package/dist/agents/pi/PiAdapter.js.map +1 -1
- package/dist/cli/commands/PiLoginLaunch.d.ts +8 -2
- package/dist/cli/commands/PiLoginLaunch.js +726 -75
- package/dist/cli/commands/PiLoginLaunch.js.map +1 -1
- package/dist/cli/commands/RunCommand.d.ts +20 -3
- package/dist/cli/commands/RunCommand.js +102 -20
- package/dist/cli/commands/RunCommand.js.map +1 -1
- package/dist/cli/commands/SetupCommand.d.ts +11 -2
- package/dist/cli/commands/SetupCommand.js +266 -52
- package/dist/cli/commands/SetupCommand.js.map +1 -1
- package/dist/cli/commands/SyncCommand.d.ts +8 -1
- package/dist/cli/commands/SyncCommand.js +2 -1
- package/dist/cli/commands/SyncCommand.js.map +1 -1
- package/dist/cli/commands/WelcomeCommand.js +1 -1
- package/dist/cli/commands/WelcomeCommand.js.map +1 -1
- package/dist/cli/commands/assets/outfitter-ascii.txt +5 -0
- package/dist/cli/commands/profile/Command.d.ts +1 -0
- package/dist/cli/commands/profile/Command.js +3 -0
- package/dist/cli/commands/profile/Command.js.map +1 -1
- package/dist/cli/commands/profile/LintCommand.d.ts +19 -0
- package/dist/cli/commands/profile/LintCommand.js +123 -0
- package/dist/cli/commands/profile/LintCommand.js.map +1 -0
- package/dist/cli.js +8 -2
- package/dist/cli.js.map +1 -1
- package/dist/merge/ArrayMergePolicy.js.map +1 -1
- package/dist/merge/SettingsValueMerger.js.map +1 -1
- package/dist/profiles/Profile.d.ts +13 -1
- package/dist/profiles/Profile.js.map +1 -1
- package/dist/profiles/ProfileLoader.d.ts +4 -0
- package/dist/profiles/ProfileLoader.js +117 -17
- package/dist/profiles/ProfileLoader.js.map +1 -1
- package/dist/profiles/ProfileMerger.js +3 -0
- package/dist/profiles/ProfileMerger.js.map +1 -1
- package/dist/profiles/PromptIncludes.d.ts +32 -0
- package/dist/profiles/PromptIncludes.js +147 -0
- package/dist/profiles/PromptIncludes.js.map +1 -0
- package/dist/prompts/SystemPromptExport.d.ts +16 -0
- package/dist/prompts/SystemPromptExport.js +81 -0
- package/dist/prompts/SystemPromptExport.js.map +1 -0
- package/dist/schemas/profile.schema.json +37 -2
- package/dist/schemas/settings.schema.json +12 -0
- package/dist/settings/Settings.d.ts +5 -0
- package/dist/settings/Settings.js.map +1 -1
- package/dist/settings/SettingsLoader.js +3 -0
- package/dist/settings/SettingsLoader.js.map +1 -1
- package/dist/settings/SettingsMerger.js +8 -0
- package/dist/settings/SettingsMerger.js.map +1 -1
- package/package.json +8 -11
- package/src/schemas/profile.schema.json +37 -2
- package/src/schemas/settings.schema.json +12 -0
- package/doc/.deepreview +0 -30
- package/doc/architecture.md +0 -856
- package/doc/controllable-elements.md +0 -162
- package/doc/file_structure.md +0 -141
- package/doc/integration_test_system.md +0 -214
- package/doc/specs/validating_requirements_with_rules.md +0 -55
- package/doc/state_writeback_strategy.md +0 -342
- package/requirements/OFTR-001-project-foundation.md +0 -53
- package/requirements/OFTR-002-settings.md +0 -65
- package/requirements/OFTR-003-profiles.md +0 -60
- package/requirements/OFTR-004-sync-and-setup.md +0 -67
- package/requirements/OFTR-005-run-and-composite-profile.md +0 -60
- package/requirements/OFTR-006-agent-adapters.md +0 -66
- package/requirements/OFTR-007-controllable-elements.md +0 -32
- package/requirements/OFTR-008-requirements-governance.md +0 -42
- package/requirements/OFTR-009-release-publishing.md +0 -35
- package/requirements/OFTR-010-onboarding-welcome.md +0 -48
|
@@ -7,6 +7,18 @@
|
|
|
7
7
|
"default_profile": { "type": "string", "minLength": 1 },
|
|
8
8
|
"default_agent": { "enum": ["pi", "claude"] },
|
|
9
9
|
"cache_directory": { "type": "string", "minLength": 1 },
|
|
10
|
+
"profile_export": { "type": "boolean" },
|
|
11
|
+
"startup": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"description": "Controls Outfitter startup presentation inside launched agents.",
|
|
14
|
+
"properties": {
|
|
15
|
+
"ascii_art": {
|
|
16
|
+
"type": "boolean",
|
|
17
|
+
"description": "Show the Outfitter ASCII/brand header on Pi startup. Defaults to true."
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"additionalProperties": false
|
|
21
|
+
},
|
|
10
22
|
"profile_sources": {
|
|
11
23
|
"type": "array",
|
|
12
24
|
"items": { "$ref": "profile-source.schema.json" }
|
|
@@ -6,6 +6,9 @@ export type SettingsValue = string | number | boolean | null | readonly Settings
|
|
|
6
6
|
readonly [key: string]: SettingsValue;
|
|
7
7
|
};
|
|
8
8
|
export type CustomSettings = Readonly<Record<string, SettingsValue>>;
|
|
9
|
+
export interface StartupSettings {
|
|
10
|
+
readonly asciiArt?: boolean;
|
|
11
|
+
}
|
|
9
12
|
export interface Settings {
|
|
10
13
|
readonly defaultProfile?: string;
|
|
11
14
|
readonly defaultAgent?: string;
|
|
@@ -13,5 +16,7 @@ export interface Settings {
|
|
|
13
16
|
readonly remoteSettings?: readonly RemoteSettingsReference[];
|
|
14
17
|
readonly cacheDirectory?: string;
|
|
15
18
|
readonly customSettings?: CustomSettings;
|
|
19
|
+
readonly profileExport?: boolean;
|
|
20
|
+
readonly startup?: StartupSettings;
|
|
16
21
|
}
|
|
17
22
|
export declare const emptySettings: () => Settings;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Settings.js","sourceRoot":"","sources":["../../src/settings/Settings.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Settings.js","sourceRoot":"","sources":["../../src/settings/Settings.ts"],"names":[],"mappings":"AAuBA,MAAM,CAAC,MAAM,aAAa,GAAG,GAAa,EAAE,CAAC,CAAC;IAC5C,cAAc,EAAE,EAAE;IAClB,cAAc,EAAE,EAAE;CACnB,CAAC,CAAC"}
|
|
@@ -99,7 +99,10 @@ const convertSettingsDocument = (document, settingsDirectory) => ({
|
|
|
99
99
|
? undefined
|
|
100
100
|
: resolveConfigDirectory(document.cache_directory, settingsDirectory),
|
|
101
101
|
customSettings: document.custom_settings,
|
|
102
|
+
profileExport: document.profile_export,
|
|
103
|
+
startup: convertStartupSettings(document.startup),
|
|
102
104
|
});
|
|
105
|
+
const convertStartupSettings = (startup) => startup === undefined ? undefined : { asciiArt: startup.ascii_art };
|
|
103
106
|
const convertRemoteSettingsSource = (source) => {
|
|
104
107
|
if (source.uri !== undefined) {
|
|
105
108
|
return { uri: source.uri, ref: source.ref, path: source.path };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsLoader.js","sourceRoot":"","sources":["../../src/settings/SettingsLoader.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE/D,OAAO,EAAE,+BAA+B,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAG9G,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"SettingsLoader.js","sourceRoot":"","sources":["../../src/settings/SettingsLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* eslint-disable complexity */
|
|
1
2
|
// Provides deterministic Settings merge scaffolding.
|
|
2
3
|
import { mergeObjectsWithPolicy } from '../merge/SettingsValueMerger.js';
|
|
3
4
|
import { emptySettings } from './Settings.js';
|
|
@@ -8,6 +9,8 @@ export const mergeSettingsStack = (settingsStack) => {
|
|
|
8
9
|
let remoteSettings;
|
|
9
10
|
let cacheDirectory;
|
|
10
11
|
let customSettings;
|
|
12
|
+
let profileExport;
|
|
13
|
+
let startup;
|
|
11
14
|
for (const settings of settingsStack) {
|
|
12
15
|
defaultProfile = settings.defaultProfile ?? defaultProfile;
|
|
13
16
|
defaultAgent = settings.defaultAgent ?? defaultAgent;
|
|
@@ -15,6 +18,8 @@ export const mergeSettingsStack = (settingsStack) => {
|
|
|
15
18
|
remoteSettings = settings.remoteSettings ?? remoteSettings;
|
|
16
19
|
cacheDirectory = settings.cacheDirectory ?? cacheDirectory;
|
|
17
20
|
customSettings = mergeOptionalCustomSettings(customSettings, settings.customSettings);
|
|
21
|
+
profileExport = mergeOptionalBoolean(profileExport, settings.profileExport);
|
|
22
|
+
startup = settings.startup === undefined ? startup : { ...startup, ...settings.startup };
|
|
18
23
|
}
|
|
19
24
|
return {
|
|
20
25
|
...emptySettings(),
|
|
@@ -24,8 +29,11 @@ export const mergeSettingsStack = (settingsStack) => {
|
|
|
24
29
|
remoteSettings: remoteSettings ?? [],
|
|
25
30
|
cacheDirectory,
|
|
26
31
|
customSettings: customSettings ?? {},
|
|
32
|
+
profileExport,
|
|
33
|
+
startup: startup ?? {},
|
|
27
34
|
};
|
|
28
35
|
};
|
|
36
|
+
const mergeOptionalBoolean = (lowerPrecedence, higherPrecedence) => higherPrecedence ?? lowerPrecedence;
|
|
29
37
|
const mergeOptionalCustomSettings = (lowerPrecedence, higherPrecedence) => higherPrecedence === undefined ? lowerPrecedence : mergeCustomSettings(lowerPrecedence, higherPrecedence);
|
|
30
38
|
const mergeCustomSettings = (lowerPrecedence, higherPrecedence) => mergeObjectsWithPolicy(lowerPrecedence, higherPrecedence);
|
|
31
39
|
//# sourceMappingURL=SettingsMerger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsMerger.js","sourceRoot":"","sources":["../../src/settings/SettingsMerger.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,aAAkC,EAAY,EAAE;IACjF,IAAI,cAAkC,CAAC;IACvC,IAAI,YAAgC,CAAC;IACrC,IAAI,cAA0C,CAAC;IAC/C,IAAI,cAA0C,CAAC;IAC/C,IAAI,cAAkC,CAAC;IACvC,IAAI,cAA0C,CAAC;
|
|
1
|
+
{"version":3,"file":"SettingsMerger.js","sourceRoot":"","sources":["../../src/settings/SettingsMerger.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,qDAAqD;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,aAAkC,EAAY,EAAE;IACjF,IAAI,cAAkC,CAAC;IACvC,IAAI,YAAgC,CAAC;IACrC,IAAI,cAA0C,CAAC;IAC/C,IAAI,cAA0C,CAAC;IAC/C,IAAI,cAAkC,CAAC;IACvC,IAAI,cAA0C,CAAC;IAC/C,IAAI,aAAkC,CAAC;IACvC,IAAI,OAA4B,CAAC;IAEjC,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACrC,cAAc,GAAG,QAAQ,CAAC,cAAc,IAAI,cAAc,CAAC;QAC3D,YAAY,GAAG,QAAQ,CAAC,YAAY,IAAI,YAAY,CAAC;QAErD,cAAc,GAAG,QAAQ,CAAC,cAAc,IAAI,cAAc,CAAC;QAC3D,cAAc,GAAG,QAAQ,CAAC,cAAc,IAAI,cAAc,CAAC;QAC3D,cAAc,GAAG,QAAQ,CAAC,cAAc,IAAI,cAAc,CAAC;QAC3D,cAAc,GAAG,2BAA2B,CAAC,cAAc,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;QACtF,aAAa,GAAG,oBAAoB,CAAC,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC5E,OAAO,GAAG,QAAQ,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;IAC3F,CAAC;IAED,OAAO;QACL,GAAG,aAAa,EAAE;QAClB,cAAc;QACd,YAAY;QACZ,cAAc,EAAE,cAAc,IAAI,EAAE;QACpC,cAAc,EAAE,cAAc,IAAI,EAAE;QACpC,cAAc;QACd,cAAc,EAAE,cAAc,IAAI,EAAE;QACpC,aAAa;QACb,OAAO,EAAE,OAAO,IAAI,EAAE;KACvB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAC3B,eAAoC,EACpC,gBAAqC,EAChB,EAAE,CAAC,gBAAgB,IAAI,eAAe,CAAC;AAE9D,MAAM,2BAA2B,GAAG,CAClC,eAA2C,EAC3C,gBAA4C,EAChB,EAAE,CAC9B,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;AAE5G,MAAM,mBAAmB,GAAG,CAC1B,eAA2C,EAC3C,gBAAgC,EAChB,EAAE,CAAC,sBAAsB,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-outfitter/outfitter",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Profile-oriented wrapper for launching pi, Claude Code, and future agent CLIs with reproducible configuration.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -20,26 +20,23 @@
|
|
|
20
20
|
"requirements",
|
|
21
21
|
"src/schemas",
|
|
22
22
|
"doc",
|
|
23
|
+
"code/enterprise/LICENSE",
|
|
24
|
+
"code/enterprise/README.md",
|
|
23
25
|
"README.md",
|
|
24
26
|
"LICENSE.md"
|
|
25
27
|
],
|
|
26
28
|
"scripts": {
|
|
27
|
-
"build": "tsc -p tsconfig.build.json && shx rm -rf dist/schemas && shx mkdir -p dist/schemas && shx cp src/schemas/*.json dist/schemas/ && shx chmod +x dist/cli.js",
|
|
29
|
+
"build": "tsc -p tsconfig.build.json && shx rm -rf dist/schemas && shx mkdir -p dist/schemas && shx cp src/schemas/*.json dist/schemas/ && shx mkdir -p dist/cli/commands/assets && shx cp src/cli/commands/assets/*.txt dist/cli/commands/assets/ && shx chmod +x dist/cli.js",
|
|
28
30
|
"prepare": "npm run build",
|
|
31
|
+
"prepack": "node scripts/sync-package-assets.mjs",
|
|
29
32
|
"dev_install": "node scripts/dev-install.mjs",
|
|
30
|
-
"docs:dev": "npm --prefix doc_site run dev --",
|
|
31
|
-
"docs:build": "npm --prefix doc_site run build",
|
|
32
|
-
"docs:start": "npm --prefix doc_site run start --",
|
|
33
|
-
"docs:lint": "eslint doc_site --config doc_site/eslint.config.js",
|
|
34
|
-
"docs:ci": "npm --prefix doc_site ci && npm run docs:lint && npm run docs:build",
|
|
35
33
|
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
36
34
|
"lint": "eslint .",
|
|
37
35
|
"lint:fix": "eslint . --fix",
|
|
38
36
|
"test": "vitest --run",
|
|
39
37
|
"coverage": "vitest --run --coverage",
|
|
40
|
-
"
|
|
41
|
-
"check": "
|
|
42
|
-
"check-ci": "prettier --check . && npm run lint && npm run coverage && npm run docs:ci"
|
|
38
|
+
"check": "npm run lint:fix && npm run coverage",
|
|
39
|
+
"check-ci": "prettier --check . && npm run lint && npm run coverage"
|
|
43
40
|
},
|
|
44
41
|
"dependencies": {
|
|
45
42
|
"@earendil-works/pi-coding-agent": "^0.78.1",
|
|
@@ -81,7 +78,7 @@
|
|
|
81
78
|
"./skills"
|
|
82
79
|
]
|
|
83
80
|
},
|
|
84
|
-
"license": "
|
|
81
|
+
"license": "SEE LICENSE IN LICENSE.md",
|
|
85
82
|
"publishConfig": {
|
|
86
83
|
"access": "public"
|
|
87
84
|
}
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"pattern": "^[a-z0-9][a-z0-9._-]*[a-z0-9]$|^[a-z0-9]$"
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
|
+
"profile_export": { "type": "boolean" },
|
|
21
22
|
"state_persistence": {
|
|
22
23
|
"type": "object",
|
|
23
24
|
"additionalProperties": {
|
|
@@ -50,6 +51,19 @@
|
|
|
50
51
|
"type": "object",
|
|
51
52
|
"additionalProperties": { "type": "string" }
|
|
52
53
|
},
|
|
54
|
+
"deepwork": {
|
|
55
|
+
"type": "object",
|
|
56
|
+
"properties": {
|
|
57
|
+
"jobs": {
|
|
58
|
+
"type": "array",
|
|
59
|
+
"items": {
|
|
60
|
+
"type": "string",
|
|
61
|
+
"pattern": "^[a-z][a-z0-9_]*$"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"additionalProperties": true
|
|
66
|
+
},
|
|
53
67
|
"pi": {
|
|
54
68
|
"type": "object",
|
|
55
69
|
"properties": {
|
|
@@ -115,12 +129,33 @@
|
|
|
115
129
|
},
|
|
116
130
|
"additionalProperties": true,
|
|
117
131
|
"$defs": {
|
|
118
|
-
"
|
|
132
|
+
"appendSystemPromptEntry": {
|
|
119
133
|
"oneOf": [
|
|
120
134
|
{ "type": "string" },
|
|
135
|
+
{
|
|
136
|
+
"type": "object",
|
|
137
|
+
"required": ["file"],
|
|
138
|
+
"properties": {
|
|
139
|
+
"file": { "type": "string" }
|
|
140
|
+
},
|
|
141
|
+
"additionalProperties": false
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"type": "object",
|
|
145
|
+
"required": ["repo_file"],
|
|
146
|
+
"properties": {
|
|
147
|
+
"repo_file": { "type": "string" }
|
|
148
|
+
},
|
|
149
|
+
"additionalProperties": false
|
|
150
|
+
}
|
|
151
|
+
]
|
|
152
|
+
},
|
|
153
|
+
"appendSystemPrompt": {
|
|
154
|
+
"oneOf": [
|
|
155
|
+
{ "$ref": "#/$defs/appendSystemPromptEntry" },
|
|
121
156
|
{
|
|
122
157
|
"type": "array",
|
|
123
|
-
"items": { "
|
|
158
|
+
"items": { "$ref": "#/$defs/appendSystemPromptEntry" }
|
|
124
159
|
}
|
|
125
160
|
]
|
|
126
161
|
}
|
|
@@ -7,6 +7,18 @@
|
|
|
7
7
|
"default_profile": { "type": "string", "minLength": 1 },
|
|
8
8
|
"default_agent": { "enum": ["pi", "claude"] },
|
|
9
9
|
"cache_directory": { "type": "string", "minLength": 1 },
|
|
10
|
+
"profile_export": { "type": "boolean" },
|
|
11
|
+
"startup": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"description": "Controls Outfitter startup presentation inside launched agents.",
|
|
14
|
+
"properties": {
|
|
15
|
+
"ascii_art": {
|
|
16
|
+
"type": "boolean",
|
|
17
|
+
"description": "Show the Outfitter ASCII/brand header on Pi startup. Defaults to true."
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"additionalProperties": false
|
|
21
|
+
},
|
|
10
22
|
"profile_sources": {
|
|
11
23
|
"type": "array",
|
|
12
24
|
"items": { "$ref": "profile-source.schema.json" }
|
package/doc/.deepreview
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
controllable_elements_matrix:
|
|
2
|
-
description: "Review controllable element mappings and support-status claims for judgment-based accuracy."
|
|
3
|
-
match:
|
|
4
|
-
include:
|
|
5
|
-
- "controllable-elements.md"
|
|
6
|
-
review:
|
|
7
|
-
strategy: individual
|
|
8
|
-
instructions: |
|
|
9
|
-
Review doc/controllable-elements.md for judgment-based mapping accuracy.
|
|
10
|
-
This rule provides judgment-based review coverage for OFTR-007.1,
|
|
11
|
-
OFTR-007.2, and OFTR-007.3 concerns that cannot be validated
|
|
12
|
-
deterministically by the controllable_elements_matrix DeepSchema.
|
|
13
|
-
|
|
14
|
-
Deterministic facts such as table shape, one row per defined term, allowed
|
|
15
|
-
status values, and status definition presence are handled by the
|
|
16
|
-
controllable_elements_matrix DeepSchema. Do not duplicate those exact
|
|
17
|
-
checks here.
|
|
18
|
-
|
|
19
|
-
Check the following judgment-based concerns:
|
|
20
|
-
1. Pi mechanism descriptions accurately reflect pi terminology and native
|
|
21
|
-
behavior.
|
|
22
|
-
2. Non-pi mappings are clearly framed as roadmap/experimental unless a
|
|
23
|
-
supported adapter exists.
|
|
24
|
-
3. Support status claims do not overstate tested Outfitter behavior.
|
|
25
|
-
4. Defined controllable elements are meaningful product-boundary concepts,
|
|
26
|
-
not implementation-only details.
|
|
27
|
-
|
|
28
|
-
Output Format:
|
|
29
|
-
- PASS: Mappings and support-status claims are accurate and appropriately qualified.
|
|
30
|
-
- FAIL: Issues found. List each inaccurate or overstated mapping/status claim with a line reference.
|