Skip to content

notations/02-fgca: add flat-form schema and rewrite example#7

Merged
transitrix merged 1 commit into
mainfrom
task/15-fgca-flat-schema
May 21, 2026
Merged

notations/02-fgca: add flat-form schema and rewrite example#7
transitrix merged 1 commit into
mainfrom
task/15-fgca-flat-schema

Conversation

@transitrix
Copy link
Copy Markdown
Owner

Summary

  • 02-fgca.md previously carried only the business description; no schema, no validation rules. Now adds File location, Top-level structure (flat form), Fields, Validation rules, References — matching the depth of 03-fga.md / 04-goals.md.
  • Flat form: fgca: root key holds document metadata; factors / goals / changes / activities are parallel arrays under it; links between layers are id-references on each item, not nesting. FGA and Goals stay nested in their own specs — they are tree-shaped.
  • Rewrote notations/examples/fgca/strategy-2026.fgca.transitrix.yaml to match the new schema: metadata under fgca:, string IDs (FACTOR-1, GOAL-1, CHANGE-1, ACTIVITY-1), id-reference cross-links.
  • YAML parses; all factor/goal/change references resolve.

Closes vkgeorgia/strategy#15.

Scope guard

Per the issue refinement, this PR touches only the FGCA spec and its example. FGA, Goals, and other specs are untouched. No audit items picked up.

ID grammar (forthcoming appendix)

IDs use the canonical grammar <TYPE>-[<middle segment(s)>-]<INTEGER> with ACTIVITY- replacing the older ACT- and CHANGE- as the FGCA change-layer prefix. The full grammar and TYPE registry will land in a forthcoming IDS_AND_REFERENCES.md appendix; the spec body refers to it by anticipated filename rather than hyperlinking.

Test plan

  • Example file parses as YAML (yaml.safe_load).
  • Cross-reference check: every goals[].factors[], changes[].goals[], activities[].changes[] ID resolves to a defined entity in its target layer.
  • Spec sections render in order and tail is intact.
  • No links to the private vkgeorgia/strategy repo in shipped files (lesson from 64d2e72).

🤖 Generated with Claude Code

02-fgca.md previously carried only business prose and no schema, so an
FGCA file had nothing to validate against. Add the schema sections
matching the depth of 03-fga and 04-goals:

- File location and naming.
- Top-level structure — flat form: a single `fgca:` root key holds
  document metadata, and `factors` / `goals` / `changes` / `activities`
  are parallel arrays under it. Links between layers are id-references,
  not nesting. Rationale: the Changes layer makes FGCA a DAG (one
  change can deliver many goals; one activity can deliver many changes),
  which the flat form expresses without node duplication. FGA and Goals
  stay nested in their own specs — they are tree-shaped.
- Fields tables for the root and each layer.
- Validation rules FGCA-001 … FGCA-014.
- References to FGA, Goals, Activities, methodology.

The example `notations/examples/fgca/strategy-2026.fgca.transitrix.yaml`
is rewritten to match: metadata wrapped under `fgca:`; string IDs of the
form `<TYPE>-<INTEGER>` (FACTOR-1, GOAL-1, CHANGE-1, ACTIVITY-1) per the
canonical grammar; id-reference cross-links between layers (goals
reference factors; changes reference goals; activities reference
changes). The example parses and all cross-references resolve.

Front-matter version 1.1 → 1.2 (additive schema section).

Refs: vkgeorgia/strategy#15

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@transitrix transitrix merged commit 901387d into main May 21, 2026
2 checks passed
@transitrix transitrix deleted the task/15-fgca-flat-schema branch May 21, 2026 09:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant