Codex posted two P2 review findings on #144 after merge. Both still look live on current origin/main.
Current evidence:
src/portfolio_context_contract.py still builds normalized = {Path(item).name for item in context_files} in choose_primary_context_file, so nested files such as docs/AGENTS.md can be treated like a top-level AGENTS.md/CLAUDE.md.
src/portfolio_truth_reconcile.py still lets _catalog_supported_context_quality rely on declared_values.get("category") == "infrastructure"; that value can come from legacy registry fallback, even though the promotion is meant to require catalog-backed infrastructure context.
Source PR: #144
Acceptance criteria:
- Require top-level primary context support when using
AGENTS.md/CLAUDE.md as promotion evidence; nested context files should not satisfy the top-level primary-context contract by basename alone.
- Require catalog-backed category provenance for the infrastructure promotion rule, or explicitly encode why legacy-registry fallback is acceptable.
- Add focused regression coverage for both promotion cases.
- Disposition the original Codex findings in the PR or link this issue back as the follow-up.
Codex posted two P2 review findings on #144 after merge. Both still look live on current
origin/main.Current evidence:
src/portfolio_context_contract.pystill buildsnormalized = {Path(item).name for item in context_files}inchoose_primary_context_file, so nested files such asdocs/AGENTS.mdcan be treated like a top-levelAGENTS.md/CLAUDE.md.src/portfolio_truth_reconcile.pystill lets_catalog_supported_context_qualityrely ondeclared_values.get("category") == "infrastructure"; that value can come from legacy registry fallback, even though the promotion is meant to require catalog-backed infrastructure context.Source PR: #144
Acceptance criteria:
AGENTS.md/CLAUDE.mdas promotion evidence; nested context files should not satisfy the top-level primary-context contract by basename alone.