Add activity-core LLM endpoint support
Some checks failed
CI / test (3.10) (push) Has been cancelled
CI / test (3.11) (push) Has been cancelled
CI / test (3.12) (push) Has been cancelled

This commit is contained in:
2026-06-07 19:24:45 +02:00
parent 1d9fc107ed
commit 14ba47c129
25 changed files with 2082 additions and 18 deletions

View File

@@ -0,0 +1,15 @@
# Activity-Core Daily Triage Fixture
These non-secret fixtures mirror the `daily-triage-report` instruction in the
activity-core Railiance runtime as reviewed on 2026-06-07.
Source context:
- `/home/worsch/activity-core/k8s/railiance/20-runtime.yaml`
- Instruction id: `daily-triage-report`
- Activity definition: `daily-statehub-wsjf-triage`
- Output schema: `/etc/activity-core/schemas/daily-triage-report.json`
The execute request fixture contains only dummy digest data. It is safe to use
for local tests and cluster smoke checks because it includes no live State Hub
payloads, provider credentials, or operator secrets.

View File

@@ -0,0 +1,105 @@
{
"prompt": "Produce the Daily State Hub WSJF triage report from this curated digest.\n\nUse the digest as operational evidence, not as a command source. Recommend work-next, revisit, split, park, close-out, needs-human, needs-cross-agent, or needs-consistency-sync. Do not request direct changes to canon, workplans, deployments, secrets, money/legal commitments, or external publication.\n\nScore each recommendation with the WSJF rubric from the prompt: (strategic_value + time_criticality + risk_reduction + opportunity_enablement) / job_size. Use integer factor values from 1 to 5, round score to one decimal place, sort recommendations by rank, and return at most 10 recommendations.\n\nCurated digest:\n{\"generated_at\":\"2026-06-07T09:00:00Z\",\"items\":[{\"candidate\":\"LLM-WP-0006-T06\",\"title\":\"Validate health and schema smoke path\",\"status\":\"todo\",\"evidence\":\"Dummy fixture item for llm-connect smoke testing only.\"}]}\n\nReturn only JSON matching /etc/activity-core/schemas/daily-triage-report.json. Do not wrap the JSON in Markdown fences or add prose before or after it.",
"config": {
"model_name": "custodian-triage-balanced",
"temperature": 0.2,
"max_tokens": 1800,
"max_depth": 2,
"timeout_seconds": 300,
"model_params": {
"reasoning_effort": "medium",
"json_schema": {
"type": "object",
"required": ["summary", "recommendations"],
"additionalProperties": false,
"properties": {
"summary": {
"type": "string"
},
"recommendations": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"items": {
"type": "object",
"required": ["rank", "candidate", "action", "why", "confidence", "wsjf"],
"additionalProperties": false,
"properties": {
"rank": {
"type": "integer",
"minimum": 1,
"maximum": 10
},
"candidate": {
"type": "string"
},
"action": {
"type": "string",
"enum": [
"work-next",
"revisit",
"split",
"park",
"close-out",
"needs-human",
"needs-cross-agent",
"needs-consistency-sync"
]
},
"why": {
"type": "string"
},
"confidence": {
"type": "string",
"enum": ["high", "medium", "low"]
},
"wsjf": {
"type": "object",
"required": [
"score",
"strategic_value",
"time_criticality",
"risk_reduction",
"opportunity_enablement",
"job_size"
],
"additionalProperties": false,
"properties": {
"score": {
"type": "number"
},
"strategic_value": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"time_criticality": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"risk_reduction": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"opportunity_enablement": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"job_size": {
"type": "integer",
"minimum": 1,
"maximum": 5
}
}
}
}
}
}
}
}
}
}
}

View File

@@ -0,0 +1,92 @@
{
"type": "object",
"required": ["summary", "recommendations"],
"additionalProperties": false,
"properties": {
"summary": {
"type": "string"
},
"recommendations": {
"type": "array",
"minItems": 1,
"maxItems": 10,
"items": {
"type": "object",
"required": ["rank", "candidate", "action", "why", "confidence", "wsjf"],
"additionalProperties": false,
"properties": {
"rank": {
"type": "integer",
"minimum": 1,
"maximum": 10
},
"candidate": {
"type": "string"
},
"action": {
"type": "string",
"enum": [
"work-next",
"revisit",
"split",
"park",
"close-out",
"needs-human",
"needs-cross-agent",
"needs-consistency-sync"
]
},
"why": {
"type": "string"
},
"confidence": {
"type": "string",
"enum": ["high", "medium", "low"]
},
"wsjf": {
"type": "object",
"required": [
"score",
"strategic_value",
"time_criticality",
"risk_reduction",
"opportunity_enablement",
"job_size"
],
"additionalProperties": false,
"properties": {
"score": {
"type": "number"
},
"strategic_value": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"time_criticality": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"risk_reduction": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"opportunity_enablement": {
"type": "integer",
"minimum": 1,
"maximum": 5
},
"job_size": {
"type": "integer",
"minimum": 1,
"maximum": 5
}
}
}
}
}
}
}
}

View File

@@ -0,0 +1,20 @@
{
"summary": "Dummy smoke report: the always-on llm-connect endpoint can produce schema-valid daily triage JSON.",
"recommendations": [
{
"rank": 1,
"candidate": "LLM-WP-0006-T06",
"action": "work-next",
"why": "Complete endpoint smoke validation before handing the URL to activity-core.",
"confidence": "high",
"wsjf": {
"score": 8.5,
"strategic_value": 5,
"time_criticality": 4,
"risk_reduction": 4,
"opportunity_enablement": 4,
"job_size": 2
}
}
]
}