1feature:
2 name: config-values
3 product: cooked-mcp
4 description: Resolve TOML configuration strings that may be literals, environment references, or shell commands.
5components:
6 RESOLUTION:
7 requirements:
8 1: TOML fields documented as config values use Pi-style config value resolution.
9 2: Plain config value strings resolve as literal values.
10 3: Config value strings beginning with ! execute the remainder as a shell command.
11 4: Command config values resolve to trimmed stdout.
12 5: Command config values with empty stdout are unresolved.
13 6: Config value strings interpolate $ENV_VAR references using existing environment variables.
14 7: Config value strings interpolate ${ENV_VAR} references using existing environment variables.
15 8: Config value strings treat $$ as a literal dollar sign.
16 9: Config value strings treat $! as a literal exclamation mark.
17 10: Missing environment variables make the config value unresolved.
18 11: Empty environment variables make the config value unresolved.
19 12: Required settings reject unresolved config values before serving.
20 COMMANDS:
21 requirements:
22 1: Command config values execute through the platform shell.
23 2: Command config values have a bounded runtime.
24 2-1: Command config values time out after 10 seconds.
25 3: Command config value results are cached for the process lifetime.
26 4: Command config value stderr is discarded.
27 5: Command config value stdout is never logged.
28 6: Command config value stderr is never logged.
29 7: Non-zero command exits make the config value unresolved.
30 ERRORS:
31 requirements:
32 1: Unresolved command config values are reported without command stdout or stderr.
33 2: Unresolved environment references are reported with the missing environment variable names.
34 3: Config value errors identify the setting being resolved.
35constraints:
36 SECRETS:
37 requirements:
38 1: Config value resolution never logs resolved values for secret settings.
39 2: Config value resolution never includes resolved secret values in user-facing errors.
40 VERIFICATION:
41 requirements:
42 1: Config value resolution is verified without invoking real credential managers.
43 2: Config value command tests use fake shell commands.