Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
{
"$defs" : {
2026-08-23 12:31:13 +02:00
"ActionDef" : {
"properties" : {
"task_template" : {
"description" : "Path to task template .md, relative to repo root." ,
"title" : "Task Template" ,
"type" : "string"
} ,
"target_repo" : {
"anyOf" : [
{
"type" : "string"
} ,
{
"type" : "null"
}
] ,
"default" : null ,
"description" : "Attribute-access expression or literal repo slug." ,
"title" : "Target Repo"
} ,
"priority" : {
"default" : "medium" ,
"title" : "Priority" ,
"type" : "string"
} ,
"labels" : {
"items" : {
"type" : "string"
} ,
"title" : "Labels" ,
"type" : "array"
} ,
"due_in_days" : {
"anyOf" : [
{
"type" : "integer"
} ,
{
"type" : "null"
}
] ,
"default" : null ,
"title" : "Due In Days"
} ,
"approach_hint" : {
"anyOf" : [
{
"type" : "string"
} ,
{
"type" : "null"
}
] ,
"default" : null ,
"title" : "Approach Hint"
} ,
"harness_profile_ref" : {
"anyOf" : [
{
"type" : "string"
} ,
{
"type" : "null"
}
] ,
"default" : null ,
"title" : "Harness Profile Ref"
} ,
"execution_refs" : {
"additionalProperties" : true ,
"title" : "Execution Refs" ,
"type" : "object"
}
} ,
"required" : [
"task_template"
] ,
"title" : "ActionDef" ,
"type" : "object"
} ,
Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
"ContextSource" : {
2026-08-23 12:31:13 +02:00
"description" : "One external data source that the workflow queries to build the context snapshot." ,
Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
"properties" : {
"name" : {
2026-08-23 12:31:13 +02:00
"default" : "" ,
"description" : "Logical name; referenced as 'context.<name>' in templates." ,
Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
"title" : "Name" ,
"type" : "string"
} ,
"type" : {
2026-08-23 12:31:13 +02:00
"description" : "Source adapter type: 'repo-scoping' | 'state-hub' | etc." ,
Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
"title" : "Type" ,
"type" : "string"
} ,
2026-08-23 12:31:13 +02:00
"query" : {
"default" : "" ,
"description" : "Named query to execute against the source." ,
"title" : "Query" ,
"type" : "string"
} ,
"params" : {
Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
"additionalProperties" : true ,
2026-08-23 12:31:13 +02:00
"title" : "Params" ,
Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
"type" : "object"
2026-08-23 12:31:13 +02:00
} ,
"bind_to" : {
"default" : "" ,
"description" : "Context key to bind the result to." ,
"title" : "Bind To" ,
"type" : "string"
} ,
"required" : {
"default" : false ,
"description" : "When true, resolver failures fail the activity run instead of binding {}." ,
"title" : "Required" ,
"type" : "boolean"
Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
}
} ,
"required" : [
"type"
] ,
"title" : "ContextSource" ,
"type" : "object"
} ,
"CronTriggerConfig" : {
"properties" : {
"trigger_type" : {
"const" : "cron" ,
"default" : "cron" ,
"title" : "Trigger Type" ,
"type" : "string"
} ,
"cron_expression" : {
"description" : "Standard 5-field cron expression, e.g. '0 9 * * 1-5'." ,
"title" : "Cron Expression" ,
"type" : "string"
} ,
"timezone" : {
"default" : "UTC" ,
2026-08-23 12:31:13 +02:00
"description" : "IANA timezone name." ,
Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
"title" : "Timezone" ,
"type" : "string"
} ,
"jitter_seconds" : {
"default" : 0 ,
"minimum" : 0 ,
"title" : "Jitter Seconds" ,
"type" : "integer"
} ,
"misfire_policy" : {
"default" : "skip" ,
"enum" : [
"skip" ,
2026-08-23 12:31:13 +02:00
"catchup_all" ,
"catchup_latest" ,
Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
"catchup" ,
"compress"
] ,
"title" : "Misfire Policy" ,
"type" : "string"
2026-08-23 12:31:13 +02:00
} ,
"catchup_window_seconds" : {
"anyOf" : [
{
"minimum" : 0 ,
"type" : "integer"
} ,
{
"type" : "null"
}
] ,
"default" : null ,
"title" : "Catchup Window Seconds"
Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
}
} ,
"required" : [
"cron_expression"
] ,
"title" : "CronTriggerConfig" ,
"type" : "object"
} ,
"EventTriggerConfig" : {
"properties" : {
"trigger_type" : {
"const" : "event" ,
"default" : "event" ,
"title" : "Trigger Type" ,
"type" : "string"
} ,
"event_type" : {
2026-08-23 12:31:13 +02:00
"description" : "Matches EventEnvelope.type. Router fires this activity on match." ,
Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
"title" : "Event Type" ,
"type" : "string"
} ,
"filters" : {
"additionalProperties" : true ,
2026-08-23 12:31:13 +02:00
"description" : "All filters must match EventEnvelope.attributes for routing." ,
Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
"title" : "Filters" ,
"type" : "object"
}
} ,
"required" : [
"event_type"
] ,
"title" : "EventTriggerConfig" ,
"type" : "object"
} ,
2026-08-23 12:31:13 +02:00
"InstructionDef" : {
"properties" : {
"id" : {
"title" : "Id" ,
"type" : "string"
} ,
"condition" : {
"default" : "" ,
"description" : "Optional pre-filter using Rule DSL; empty means always execute." ,
"title" : "Condition" ,
"type" : "string"
} ,
"trusted_fields" : {
"description" : "Allowlist of event/context fields that may appear in the prompt template." ,
"items" : {
"type" : "string"
} ,
"title" : "Trusted Fields" ,
"type" : "array"
} ,
"model" : {
"description" : "LLM model identifier, e.g. 'claude-sonnet-4-6'." ,
"title" : "Model" ,
"type" : "string"
} ,
"temperature" : {
"anyOf" : [
{
"type" : "number"
} ,
{
"type" : "null"
}
] ,
"default" : null ,
"title" : "Temperature"
} ,
"max_tokens" : {
"anyOf" : [
{
"type" : "integer"
} ,
{
"type" : "null"
}
] ,
"default" : null ,
"title" : "Max Tokens"
} ,
"max_depth" : {
"anyOf" : [
{
"type" : "integer"
} ,
{
"type" : "null"
}
] ,
"default" : null ,
"title" : "Max Depth"
} ,
"model_params" : {
"additionalProperties" : true ,
"title" : "Model Params" ,
"type" : "object"
} ,
"prompt" : {
"description" : "Prompt template with {field.path} placeholders." ,
"title" : "Prompt" ,
"type" : "string"
} ,
"output_schema" : {
"description" : "Path to JSON Schema file for output validation." ,
"title" : "Output Schema" ,
"type" : "string"
} ,
"review_advisory" : {
"default" : false ,
"description" : "Advisory evidence only; activity-core applies no review gate." ,
"title" : "Review Advisory" ,
"type" : "boolean"
} ,
"review_required" : {
"anyOf" : [
{
"type" : "boolean"
} ,
{
"type" : "null"
}
] ,
"default" : null ,
"deprecated" : true ,
"description" : "Deprecated input alias for review_advisory." ,
"title" : "Review Required"
} ,
"report_sinks" : {
"items" : {
"additionalProperties" : true ,
"type" : "object"
} ,
"title" : "Report Sinks" ,
"type" : "array"
} ,
"approach_hint" : {
"anyOf" : [
{
"type" : "string"
} ,
{
"type" : "null"
}
] ,
"default" : null ,
"title" : "Approach Hint"
} ,
"harness_profile_ref" : {
"anyOf" : [
{
"type" : "string"
} ,
{
"type" : "null"
}
] ,
"default" : null ,
"title" : "Harness Profile Ref"
} ,
"execution_refs" : {
"additionalProperties" : true ,
"title" : "Execution Refs" ,
"type" : "object"
}
} ,
"required" : [
"id" ,
"trusted_fields" ,
"model" ,
"prompt" ,
"output_schema"
] ,
"title" : "InstructionDef" ,
"type" : "object"
} ,
"RuleDef" : {
"properties" : {
"id" : {
"title" : "Id" ,
"type" : "string"
} ,
"for_each" : {
"anyOf" : [
{
"type" : "string"
} ,
{
"type" : "null"
}
] ,
"default" : null ,
"description" : "Optional event/context path to a list for per-item rule expansion." ,
"title" : "For Each"
} ,
"bind_as" : {
"default" : "item" ,
"description" : "Context key used for each item when for_each is set." ,
"title" : "Bind As" ,
"type" : "string"
} ,
"condition" : {
"default" : "" ,
"description" : "Rule DSL expression; empty string means always true." ,
"title" : "Condition" ,
"type" : "string"
} ,
"action" : {
"$ref" : "#/$defs/ActionDef"
}
} ,
"required" : [
"id" ,
"action"
] ,
"title" : "RuleDef" ,
"type" : "object"
} ,
"ScheduledTriggerConfig" : {
"description" : "One-off future trigger that fires once at a specified UTC datetime." ,
"properties" : {
"trigger_type" : {
"const" : "scheduled" ,
"default" : "scheduled" ,
"title" : "Trigger Type" ,
"type" : "string"
} ,
"at" : {
"description" : "UTC datetime when the workflow should be triggered." ,
"format" : "date-time" ,
"title" : "At" ,
"type" : "string"
} ,
"timezone" : {
"default" : "UTC" ,
"description" : "IANA timezone name (informational)." ,
"title" : "Timezone" ,
"type" : "string"
}
} ,
"required" : [
"at"
] ,
"title" : "ScheduledTriggerConfig" ,
"type" : "object"
} ,
Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
"TaskTemplate" : {
2026-08-23 12:31:13 +02:00
"description" : "Legacy persisted shape; no in-repo task executor consumes it." ,
Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
"properties" : {
"task_type" : {
2026-08-23 12:31:13 +02:00
"description" : "Legacy downstream task type metadata; not an executor selector." ,
Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
"title" : "Task Type" ,
"type" : "string"
} ,
"condition" : {
"anyOf" : [
{
"type" : "string"
} ,
{
"type" : "null"
}
] ,
"default" : null ,
"title" : "Condition"
} ,
"params_template" : {
"additionalProperties" : true ,
"title" : "Params Template" ,
"type" : "object"
}
} ,
"required" : [
"task_type"
] ,
"title" : "TaskTemplate" ,
"type" : "object"
}
} ,
2026-08-23 12:31:13 +02:00
"description" : "Versioned definition: trigger + context sources + rules/instructions." ,
Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
"properties" : {
"id" : {
"format" : "uuid" ,
"title" : "Id" ,
"type" : "string"
} ,
"name" : {
"title" : "Name" ,
"type" : "string"
} ,
"enabled" : {
"default" : true ,
"title" : "Enabled" ,
"type" : "boolean"
} ,
"trigger_config" : {
"discriminator" : {
"mapping" : {
"cron" : "#/$defs/CronTriggerConfig" ,
2026-08-23 12:31:13 +02:00
"event" : "#/$defs/EventTriggerConfig" ,
"scheduled" : "#/$defs/ScheduledTriggerConfig"
Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
} ,
"propertyName" : "trigger_type"
} ,
"oneOf" : [
{
"$ref" : "#/$defs/CronTriggerConfig"
} ,
{
"$ref" : "#/$defs/EventTriggerConfig"
2026-08-23 12:31:13 +02:00
} ,
{
"$ref" : "#/$defs/ScheduledTriggerConfig"
Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
}
] ,
"title" : "Trigger Config"
} ,
"context_sources" : {
"items" : {
"$ref" : "#/$defs/ContextSource"
} ,
"title" : "Context Sources" ,
"type" : "array"
} ,
2026-08-23 12:31:13 +02:00
"rules" : {
"items" : {
"$ref" : "#/$defs/RuleDef"
} ,
"title" : "Rules" ,
"type" : "array"
} ,
"instructions" : {
"items" : {
"$ref" : "#/$defs/InstructionDef"
} ,
"title" : "Instructions" ,
"type" : "array"
} ,
Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
"task_templates" : {
"items" : {
"$ref" : "#/$defs/TaskTemplate"
} ,
"title" : "Task Templates" ,
"type" : "array"
} ,
"dedupe_key_strategy" : {
"default" : "skip" ,
2026-08-23 12:31:13 +02:00
"deprecated" : true ,
"description" : "Legacy persistence compatibility metadata; runtime scheduling uses trigger_config.misfire_policy and this field does not deduplicate content" ,
Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
"enum" : [
"skip" ,
"catchup" ,
"compress"
] ,
"title" : "Dedupe Key Strategy" ,
"type" : "string"
} ,
"version" : {
"default" : 1 ,
"minimum" : 1 ,
"title" : "Version" ,
"type" : "integer"
2026-08-23 12:31:13 +02:00
} ,
"status" : {
"default" : "active" ,
"title" : "Status" ,
"type" : "string"
Add project scaffold: contracts, schemas, docker-compose, workplans
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc,
naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml,
Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas,
wiki architecture docs, and ADR-001 workplan files for both workstreams.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 22:45:40 +01:00
}
} ,
"required" : [
"id" ,
"name" ,
"trigger_config"
] ,
"title" : "ActivityDefinition" ,
"type" : "object"
}