Concepts & Architecture
The four deterministic views of one .gram file
A guide to Project, Journal, Operations and Knowledge views, their evidence and time axes.
Explore as .gram
No journal revisions; this file contains its initial state.
One source, several useful views
A .gram file remains the canonical source. Core resolves it with a purpose-specific template; the Viewer renders the resulting ResolvedView/1. The four built-in templates are Project Tracker, Journal, Operations and Knowledge, not separate documents to maintain. Core resolves eligibility deterministically from source records, fields and explicit signals. AI records source facts; it does not invent a screen or write a ViewSpec.
Match the source structure to the work
Project Tracker organizes tasks, goals, progress and risks. Set each task
xonly when its status is sourced; otherwise leavexunset and the projection reportsunknown. Link every task to its goal. Progress countscompletedanddoneas completed andsuperseded,cancelledandcanceledasclosed_other, with all other or absent statuses in the open total; an unsourced task status still displays asunknown. Goals tally only tasks explicitly linked to them.Journal: prefer
eventrecords withat; dated headings still work as separate heading-derived entries, not event records. For a sourced past fact, submit it now and use revisioneffective_atonly for when that fact took effect—not to fabricate a past revision.Operations eligibility requires a
risk, a datedevent, and at least onesystem,serviceorcomponent; risks need sourcedxstatus. An incident needs an explicitly linked event with anincident,outageorfailuretag. A verified recovery needs arecovery,restoredorrestorationevent linked to the risk and asupportsorimplementsrelation to an evidence record. Metrics recordvalue,unitandobserved, but are not an Operations component or eligibility signal.Knowledge brings events and relationships together with both event and revision history, for evidence-rich development or research narratives.
Three distinct time axes
Do not collapse event time, knowledge time and recording time:
Event time comes only from event
at, taskdueor metricobserved, as appropriate. Missing dates are undated;recorded_atnever fills them in. A dated section heading is its own heading-derivedentries[]signal, not a record event.Knowledge time is the selected revision's
effective_at, or unknown when absent. It answers what the file represented as true at that effective point; no date is inferred.Recorded time is the revision's
recorded_at. It supports reviewing when the document itself changed.
Evidence, unknown state and honest empty views
Displayed states require explicit source evidence and retain links to their basis. A risk is open only with explicit x of open, active or blocked; absent or unsupported status is unknown. Event content alone does not prove an incident. A recovery assertion without its linked evidence is not verified. Live health cannot be inferred from a record or metric: it remains unknown; an observation time may be shown as “last observed,” not as current health. If a status or relationship lacks evidence, show unknown rather than guessing.
Widgets with no supporting data are omitted; the view reports missing requirements where applicable rather than filling the space with invented values. A missing metric is not zero, and a missing event date is not a revision date.
How recommendations work
Core resolves the selected .gram and template through the embedded ViewSpec/1, returning ResolvedView/1; the Viewer renders only that result and does not re-interpret filters, sorting, grouping, aggregates or limits. Eligibility and recommendations are deterministic, evidence-based and model/network-free, with stable ties and explicit missing requirements. Users can select any built-in template in the Viewer regardless of recommendation.
Canonical contract
These behaviors follow thegram-format/spec/projection.md: “ProjectionResult/1”, “Evidence-based state”, “View resolution and ViewSpec/1”, “Dated section entries”, and the optional status_counts and progress conventions. The specification defines event_time from at/due/observed, knowledge_time from revision effective_at, and recorded_time from recorded_at; it also requires basis record IDs for derived claims and says empty evidence must not be presented as verified.
Evidence
This article summarizes the canonical projection contract, not a claim about service deployment or availability.
r0
A guide to Project, Journal, Operations and Knowledge views, their evidence and time axes.
Nothing to show in this revision
sha256:5fd4ba302a99563536232a3776c4a373b3089c541d1eb098f2a9776aed015488@gram 2
doc blog-view-templates
t The four deterministic views of one .gram file
d A guide to Project, Journal, Operations and Knowledge views, their evidence and time axes.
tag viewer
view document
::rich
# One source, several useful views
A `.gram` file remains the canonical source. Core resolves it with a purpose-specific template; the Viewer renders the resulting `ResolvedView/1`. The four built-in templates are Project Tracker, Journal, Operations and Knowledge, not separate documents to maintain. Core resolves eligibility deterministically from source records, fields and explicit signals. AI records source facts; it does not invent a screen or write a `ViewSpec`.
## Match the source structure to the work
- **Project Tracker** organizes tasks, goals, progress and risks. Set each task `x` only when its status is sourced; otherwise leave `x` unset and the projection reports `unknown`. Link every task to its goal. Progress counts `completed` and `done` as completed and `superseded`, `cancelled` and `canceled` as `closed_other`, with all other or absent statuses in the open total; an unsourced task status still displays as `unknown`. Goals tally only tasks explicitly linked to them.
- **Journal**: prefer `event` records with `at`; dated headings still work as separate heading-derived entries, not event records. For a sourced past fact, submit it now and use revision `effective_at` only for when that fact took effect—not to fabricate a past revision.
- **Operations** eligibility requires a `risk`, a dated `event`, and at least one `system`, `service` or `component`; risks need sourced `x` status. An incident needs an explicitly linked event with an `incident`, `outage` or `failure` tag. A verified recovery needs a `recovery`, `restored` or `restoration` event linked to the risk and a `supports` or `implements` relation to an evidence record. Metrics record `value`, `unit` and `observed`, but are not an Operations component or eligibility signal.
- **Knowledge** brings events and relationships together with both event and revision history, for evidence-rich development or research narratives.
## Three distinct time axes
Do not collapse event time, knowledge time and recording time:
1. **Event time** comes only from event `at`, task `due` or metric `observed`, as appropriate. Missing dates are undated; `recorded_at` never fills them in. A dated section heading is its own heading-derived `entries[]` signal, not a record event.
2. **Knowledge time** is the selected revision's `effective_at`, or unknown when absent. It answers what the file represented as true at that effective point; no date is inferred.
3. **Recorded time** is the revision's `recorded_at`. It supports reviewing when the document itself changed.
## Evidence, unknown state and honest empty views
Displayed states require explicit source evidence and retain links to their basis. A risk is open only with explicit `x` of `open`, `active` or `blocked`; absent or unsupported status is `unknown`. Event content alone does not prove an incident. A recovery assertion without its linked evidence is not verified. Live health cannot be inferred from a record or metric: it remains `unknown`; an observation time may be shown as “last observed,” not as current health. If a status or relationship lacks evidence, show `unknown` rather than guessing.
Widgets with no supporting data are omitted; the view reports missing requirements where applicable rather than filling the space with invented values. A missing metric is not zero, and a missing event date is not a revision date.
## How recommendations work
Core resolves the selected `.gram` and template through the embedded `ViewSpec/1`, returning `ResolvedView/1`; the Viewer renders only that result and does not re-interpret filters, sorting, grouping, aggregates or limits. Eligibility and recommendations are deterministic, evidence-based and model/network-free, with stable ties and explicit missing requirements. Users can select any built-in template in the Viewer regardless of recommendation.
## Canonical contract
These behaviors follow `thegram-format/spec/projection.md`: “ProjectionResult/1”, “Evidence-based state”, “View resolution and ViewSpec/1”, “Dated section entries”, and the optional `status_counts` and `progress` conventions. The specification defines `event_time` from `at`/`due`/`observed`, `knowledge_time` from revision `effective_at`, and `recorded_time` from `recorded_at`; it also requires basis record IDs for derived claims and says empty evidence must not be presented as verified.
## Evidence
This article summarizes the canonical projection contract, not a claim about service deployment or availability.
::end