mirror of
https://github.com/boshu2/agentops.git
synced 2026-09-14 15:08:13 +08:00
6c8cb223ea
W2.1 of epic ag-lhu0 (memory-system re-architecture). Adds the **reach**
blast-radius axis, orthogonal to maturity, per the locked duel
architecture.
- `reach {bead|pull|always}` on FrontMatter + Learning; `reach:`
frontmatter round-trips.
- `SanitizeReach` normalizes + defaults absent/invalid → `pull`, and
**never** promotes to `always` (the computed-not-authored invariant —
`always` is derived from maturity==established ∩ canon in ag-oqha).
- `learning.v1.schema.json`: reach enum + default pull; domain vocab
`skills/domain/references/reach.md`.
- Tests: SanitizeReach + frontmatter round-trip/default (88 search-pkg
tests green).
Closes-scenario: ag-bsf6#reach-field
Bounded-context: BC1-Corpus
Evidence: cli/internal/search/learnings.go
73 lines
2.2 KiB
JSON
73 lines
2.2 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://agentops.dev/schemas/learning.v1.schema.json",
|
|
"title": "Learning",
|
|
"description": "Knowledge artifact extracted by Hephaestus",
|
|
"practices": ["wiki-knowledge-surface", "lean-startup"],
|
|
"type": "object",
|
|
"required": ["learning_id", "content", "category", "confidence", "utility_score", "briefing_count", "source_session", "created_at", "tombstoned", "schema_version"],
|
|
"properties": {
|
|
"learning_id": {
|
|
"type": "string",
|
|
"pattern": "^learn-[0-9]{4}-[0-9]{2}-[0-9]{2}-[a-z0-9]+$",
|
|
"description": "Format: learn-YYYY-MM-DD-xxx"
|
|
},
|
|
"content": {
|
|
"type": "string",
|
|
"minLength": 1
|
|
},
|
|
"category": {
|
|
"type": "string",
|
|
"enum": ["architecture", "debugging", "process", "testing", "security"]
|
|
},
|
|
"confidence": {
|
|
"type": "number",
|
|
"minimum": 0.0,
|
|
"maximum": 1.0,
|
|
"description": "Decays 10%/week without use"
|
|
},
|
|
"utility_score": {
|
|
"type": "integer",
|
|
"description": "v2: PASS +1, FAIL -2. v1: always 0"
|
|
},
|
|
"briefing_count": {
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"description": "Number of briefings that included this learning"
|
|
},
|
|
"source_session": {
|
|
"type": "string"
|
|
},
|
|
"source_bead": {
|
|
"type": ["string", "null"],
|
|
"description": "Bead ID that produced this learning"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
"supersedes": {
|
|
"type": ["string", "null"],
|
|
"description": "Learning ID this supersedes"
|
|
},
|
|
"tombstoned": {
|
|
"type": "boolean",
|
|
"description": "If true, excluded from briefings"
|
|
},
|
|
"tombstone_reason": {
|
|
"type": ["string", "null"]
|
|
},
|
|
"reach": {
|
|
"type": "string",
|
|
"enum": ["bead", "pull", "always"],
|
|
"default": "pull",
|
|
"description": "Blast-radius tier, orthogonal to maturity: bead=per-bead context, pull=queried on demand (default), always=auto-injected at session bootstrap (computed from maturity==established INTERSECT canon, never author-set)."
|
|
},
|
|
"schema_version": {
|
|
"type": "integer",
|
|
"const": 1
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|