Kyn MVP Decisions¶
This file captures product and implementation decisions locked for MVP.
CLI Input Modes¶
Exactly one change input mode is allowed per run:
--files <csv>--files-from <path>(supports-to read from stdin)--stdin(alias for--files-from -)--base <ref> --head <ref>
Invalid combinations are CLI usage errors (exit 2).
If git mode is selected, both --base and --head are required.
Rule Semantics¶
whenpredicates areANDacross keys.requirepredicates areANDacross keys.- For list-based predicates, all listed kin names must satisfy the predicate.
changedAnyisANYacross listed change groups.
Flags in Rules¶
require.emitFlag is informational and adds a flag string to summary output.
emitFlag itself does not introduce a failure condition.
Family Instance Deduplication¶
Family instances are deduplicated by default for MVP.
No-Match Behavior¶
If no family instances match, command succeeds with empty results by default.
--fail-on-empty changes this behavior to fail the run.
Config Validation¶
If a rule references a non-existent family id, config validation fails (exit 2).
Git Change Detection (MVP)¶
Use:
git -C <cwd> diff --name-status -M <base>...<head>
Flattening policy:
- Include
AandMpaths in changed-set evaluation. - Include rename destination (
R*new path) in changed-set evaluation. - Exclude
Dpaths from changed-set evaluation.
Deleted paths may be retained as metadata for future enhancements, but are not evaluated as changed files in MVP rules.
Deterministic Output¶
Output should be deterministic:
- Stable ordering of results.
- Stable ordering of
changedFiles,expectedFiles, andflags. - Text output groups failures first.
- Passing results are hidden by default in text output and can be shown with
--show-passes.