generated from coulomb/repo-seed
171 lines
5.6 KiB
JSON
171 lines
5.6 KiB
JSON
{
|
|
"schema_version": "phase_memory.evaluation_scenarios.v1",
|
|
"scenarios": [
|
|
{
|
|
"id": "policy-denied-activation",
|
|
"profile": {
|
|
"schema_version": "markitect.memory.profile.v1",
|
|
"id": "eval-policy-profile",
|
|
"memory_kinds": ["knowledge", "decision"],
|
|
"activation": {"max_items": 4, "max_tokens": 60},
|
|
"policy": {"mode": "allow-all", "trust_zone_labels": ["local"]},
|
|
"observability": {"audit_sink": "recording"}
|
|
},
|
|
"graph": {
|
|
"schema_version": "markitect.memory.graph.v1",
|
|
"id": "eval-policy-graph",
|
|
"nodes": [
|
|
{
|
|
"id": "policy.public",
|
|
"kind": "knowledge",
|
|
"text": "Public operating constraint that can be activated for local planning.",
|
|
"phase": "stabilized",
|
|
"policy": {"labels": ["public"], "trust_zone": "local"},
|
|
"source_spans": [{"path": "policy.md", "line_start": 1}],
|
|
"metadata": {"graph_id": "eval-policy-graph"}
|
|
},
|
|
{
|
|
"id": "policy.secret",
|
|
"kind": "knowledge",
|
|
"text": "Sensitive credential note that must not enter restart context.",
|
|
"phase": "stabilized",
|
|
"policy": {"labels": ["restricted"], "trust_zone": "local", "secret": true},
|
|
"metadata": {"graph_id": "eval-policy-graph"}
|
|
}
|
|
],
|
|
"edges": [
|
|
{
|
|
"id": "edge.policy",
|
|
"kind": "references",
|
|
"source": "policy.public",
|
|
"target": "policy.secret"
|
|
}
|
|
],
|
|
"events": []
|
|
},
|
|
"expect": {"denied_node_ids": ["policy.secret"]}
|
|
},
|
|
{
|
|
"id": "profile-lifecycle-rules",
|
|
"profile": {
|
|
"schema_version": "markitect.memory.profile.v1",
|
|
"id": "eval-lifecycle-profile",
|
|
"memory_kinds": ["episode", "decision"],
|
|
"retention": {
|
|
"episode": {"stale_after_days": 7},
|
|
"decision": {"delete_after_days": 365}
|
|
},
|
|
"refresh": {"mode": "enabled"},
|
|
"compaction": {"node_ids": ["life.old-episode"]},
|
|
"metadata": {
|
|
"phase_transitions": [
|
|
{
|
|
"node_kind": "decision",
|
|
"from_phase": "fluid",
|
|
"to_phase": "stabilized",
|
|
"min_age_days": 2,
|
|
"reason": "decision has stabilized"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"graph": {
|
|
"schema_version": "markitect.memory.graph.v1",
|
|
"id": "eval-lifecycle-graph",
|
|
"nodes": [
|
|
{
|
|
"id": "life.old-episode",
|
|
"kind": "episode",
|
|
"text": "An old episode ready to become stale and compacted.",
|
|
"phase": "fluid",
|
|
"freshness": {"updated_at": "2026-04-01T00:00:00+00:00", "source_digest": "old"},
|
|
"metadata": {"graph_id": "eval-lifecycle-graph"}
|
|
},
|
|
{
|
|
"id": "life.decision",
|
|
"kind": "decision",
|
|
"text": "A decision that should transition to stabilized after review.",
|
|
"phase": "fluid",
|
|
"freshness": {"updated_at": "2026-05-01T00:00:00+00:00", "source_digest": "decision-old"},
|
|
"metadata": {"graph_id": "eval-lifecycle-graph"}
|
|
}
|
|
],
|
|
"edges": [],
|
|
"events": []
|
|
},
|
|
"expect": {
|
|
"actions": [
|
|
["life.old-episode", "mark_stale"],
|
|
["life.decision", "transition_phase"],
|
|
["life.decision", "refresh"]
|
|
],
|
|
"compact_source": "life.old-episode"
|
|
}
|
|
},
|
|
{
|
|
"id": "budget-path-and-semantic-hints",
|
|
"profile": {
|
|
"schema_version": "markitect.memory.profile.v1",
|
|
"id": "eval-budget-profile",
|
|
"memory_kinds": ["decision", "knowledge", "episode"],
|
|
"activation": {"max_items": 2, "max_tokens": 16, "semantic_index": "memory"}
|
|
},
|
|
"graph": {
|
|
"schema_version": "markitect.memory.graph.v1",
|
|
"id": "eval-budget-graph",
|
|
"nodes": [
|
|
{
|
|
"id": "budget.anchor",
|
|
"kind": "decision",
|
|
"text": "Restart anchor with source.",
|
|
"phase": "stabilized",
|
|
"source_spans": [{"path": "restart.md", "line_start": 3}],
|
|
"metadata": {"graph_id": "eval-budget-graph"}
|
|
},
|
|
{
|
|
"id": "budget.semantic",
|
|
"kind": "knowledge",
|
|
"text": "Semantic index hint for restart package selection.",
|
|
"phase": "stabilized",
|
|
"source_spans": [{"path": "retrieval.md", "line_start": 7}],
|
|
"metadata": {"graph_id": "eval-budget-graph"}
|
|
},
|
|
{
|
|
"id": "budget.long",
|
|
"kind": "episode",
|
|
"text": "This verbose episode is intentionally long enough to lose against the strict activation token budget pressure.",
|
|
"phase": "fluid",
|
|
"metadata": {"graph_id": "eval-budget-graph"}
|
|
}
|
|
],
|
|
"edges": [
|
|
{
|
|
"id": "edge.budget",
|
|
"kind": "supports",
|
|
"source": "budget.anchor",
|
|
"target": "budget.semantic"
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"id": "budget.path-event",
|
|
"kind": "activated",
|
|
"timestamp": "2026-05-18T00:00:00+00:00",
|
|
"activation_refs": ["activation.budget"]
|
|
}
|
|
]
|
|
},
|
|
"path": {
|
|
"id": "path.budget",
|
|
"event_ids": ["budget.path-event"]
|
|
},
|
|
"expect": {
|
|
"selected_node_ids": ["budget.anchor", "budget.semantic"],
|
|
"omitted_node_ids": ["budget.long"],
|
|
"semantic_top_id": "budget.semantic",
|
|
"event_ids": ["budget.path-event"]
|
|
}
|
|
}
|
|
]
|
|
}
|