config-values.feature.yaml

 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.