← Files note Workspace|ROGNALIAARCHIVED FILE
skills/note-strategist/references/schemas/weekly-plan-revision.schema.json
7.1 KB · Oct 2, 2026 · 00:33 UTC
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "urn:rognalia:note-workspace:schema:weekly-plan-revision:1",
"title": "note Workspace weekly plan revision metadata",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"week",
"revision",
"request_id",
"recorded_at",
"status",
"payload_sha256",
"body_sha256",
"plan"
],
"properties": {
"schema_version": {"const": 1},
"week": {"type": "string", "pattern": "^[0-9]{4}-W[0-9]{2}$"},
"revision": {"type": "integer", "minimum": 1},
"request_id": {"type": "string", "pattern": "^[a-z0-9][a-z0-9._:-]{7,127}$"},
"recorded_at": {"type": "string", "format": "date-time"},
"status": {"enum": ["recommended", "confirmed", "paused"]},
"payload_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
"body_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
"plan": {"$ref": "#/$defs/plan"}
},
"$defs": {
"oneLineText": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"pattern": "^[^\\r\\n]+$"
},
"textList": {
"type": "array",
"maxItems": 20,
"uniqueItems": true,
"items": {"$ref": "#/$defs/oneLineText"}
},
"candidate": {
"type": "object",
"additionalProperties": false,
"required": [
"candidate_id", "direction", "audience", "reader_value", "article_role",
"source_card_ids", "material_status", "missing_information",
"research_questions", "why_now", "estimated_effort"
],
"properties": {
"candidate_id": {"type": "string", "pattern": "^idea-[a-z0-9][a-z0-9-]{2,63}$"},
"direction": {"$ref": "#/$defs/oneLineText"},
"audience": {"$ref": "#/$defs/oneLineText"},
"reader_value": {"$ref": "#/$defs/oneLineText"},
"article_role": {"enum": ["record", "relationship", "expertise", "work", "revenue", "other"]},
"source_card_ids": {
"type": "array",
"maxItems": 20,
"uniqueItems": true,
"items": {"type": "string", "pattern": "^src-[a-z0-9]{8,32}$"}
},
"material_status": {"enum": ["ready", "needs_more_source"]},
"missing_information": {"$ref": "#/$defs/textList"},
"research_questions": {"$ref": "#/$defs/textList"},
"why_now": {"$ref": "#/$defs/oneLineText"},
"estimated_effort": {"$ref": "#/$defs/oneLineText"}
}
},
"sourceSnapshot": {
"type": "object",
"additionalProperties": false,
"required": [
"source_card_id", "revision", "summary", "public_scope",
"statement_type", "kind", "status"
],
"properties": {
"source_card_id": {"type": "string", "pattern": "^src-[a-z0-9]{8,32}$"},
"revision": {"type": "integer", "minimum": 1},
"summary": {"$ref": "#/$defs/oneLineText"},
"public_scope": {"type": "string", "minLength": 1},
"statement_type": {"type": "string", "minLength": 1},
"kind": {"type": "string", "minLength": 1},
"status": {"const": "active"}
}
},
"metricStatuses": {
"oneOf": [
{"$ref": "#/$defs/metricStatusesV1"},
{"$ref": "#/$defs/metricStatusesV2"}
]
},
"metricStatusesV1": {
"type": "object",
"additionalProperties": false,
"required": ["views", "likes", "comments"],
"properties": {
"views": {"enum": ["available", "unavailable", "not_visible", "fetch_failed", "not_applicable", null]},
"likes": {"enum": ["available", "unavailable", "not_visible", "fetch_failed", "not_applicable", null]},
"comments": {"enum": ["available", "unavailable", "not_visible", "fetch_failed", "not_applicable", null]}
}
},
"metricStatusesV2": {
"type": "object",
"additionalProperties": false,
"required": ["impressions", "page_views", "likes", "comments", "sales"],
"properties": {
"impressions": {"enum": ["available", "unavailable", "not_visible", "fetch_failed", "not_applicable", "not_collected", null]},
"page_views": {"enum": ["available", "unavailable", "not_visible", "fetch_failed", "not_applicable", "not_collected", null]},
"likes": {"enum": ["available", "unavailable", "not_visible", "fetch_failed", "not_applicable", "not_collected", null]},
"comments": {"enum": ["available", "unavailable", "not_visible", "fetch_failed", "not_applicable", "not_collected", null]},
"sales": {"enum": ["available", "unavailable", "not_visible", "fetch_failed", "not_applicable", "not_collected", null]}
}
},
"trackingReview": {
"type": "object",
"additionalProperties": false,
"required": [
"status", "checked_at", "history_path", "history_byte_length",
"history_prefix_sha256", "history_event_count", "latest_request_id",
"latest_run_id", "latest_observed_at", "latest_recorded_at",
"latest_metric_statuses"
],
"properties": {
"status": {"enum": ["available", "partial", "unavailable", "not_yet_recorded"]},
"checked_at": {"type": "string", "format": "date-time"},
"history_path": {"const": "metrics/history.jsonl"},
"history_byte_length": {"type": "integer", "minimum": 0},
"history_prefix_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
"history_event_count": {"type": "integer", "minimum": 0},
"latest_request_id": {"type": ["string", "null"]},
"latest_run_id": {"type": ["string", "null"]},
"latest_observed_at": {"type": ["string", "null"], "format": "date-time"},
"latest_recorded_at": {"type": ["string", "null"], "format": "date-time"},
"latest_metric_statuses": {"$ref": "#/$defs/metricStatuses"}
}
},
"plan": {
"type": "object",
"additionalProperties": false,
"required": [
"record_type", "decision", "desired_article_count", "change_summary",
"confirmed_by_user", "candidates", "source_card_snapshots", "tracking_review"
],
"properties": {
"record_type": {"enum": ["strategy_recommendation", "user_selection"]},
"decision": {"enum": ["recommend", "adopt", "revise", "replace", "pause"]},
"desired_article_count": {"type": "integer", "minimum": 0, "maximum": 7},
"change_summary": {"$ref": "#/$defs/oneLineText"},
"confirmed_by_user": {"type": "boolean"},
"candidates": {"type": "array", "maxItems": 7, "items": {"$ref": "#/$defs/candidate"}},
"source_card_snapshots": {"type": "array", "maxItems": 140, "items": {"$ref": "#/$defs/sourceSnapshot"}},
"tracking_review": {"$ref": "#/$defs/trackingReview"}
},
"allOf": [{
"if": {"properties": {"record_type": {"const": "strategy_recommendation"}}, "required": ["record_type"]},
"then": {
"properties": {
"decision": {"const": "recommend"},
"confirmed_by_user": {"const": false}
}
},
"else": {
"properties": {
"decision": {"enum": ["adopt", "revise", "replace", "pause"]},
"confirmed_by_user": {"const": true}
}
}
}]
}
}
}
SHA-256: 1ad1d9e0bb5beb58ee305b923c6a2327b5bee206c8d158774bbd3bb43501b888