# === DSL Update Tasks ===

update-dsl-definitions:
  description: Create new or update existing agent-contracts DSL definitions
  target_agent: dsl-designer
  workflow: dsl-update
  input_artifacts:
    - dsl-source
  invocation_handoff: dsl-task-request
  result_handoff: dsl-task-result
  validations:
    - dsl-schema-validation
    - dsl-lint-validation
  responsibilities:
    - Create and update DSL YAML files
    - Define agents, tasks, artifacts, tools, validations, handoff_types, workflow, guardrails
    - Configure system section
  completion_criteria:
    - agent-contracts validate succeeds
    - agent-contracts lint reports no errors
    - Cross-references for newly added entities are correct
  execution_steps:
    - id: read-current-dsl
      action: Read current DSL definitions and understand the structure
      reads_artifact: dsl-source
      required: true
    - id: update-dsl
      action: Create or update DSL definitions
      produces_artifact: dsl-source
    - id: validate
      action: Run agent-contracts validate
      uses_tool: agent-contracts-cli
      required: true
    - id: lint
      action: Run agent-contracts lint
      uses_tool: agent-contracts-cli
  escalation_criteria:
    - condition: Schema errors from validate cannot be resolved
      action: stop_and_report

update-dsl-binding:
  description: Create new or update existing software bindings
  target_agent: dsl-designer
  workflow: dsl-update
  input_artifacts:
    - dsl-source
  invocation_handoff: dsl-task-request
  result_handoff: dsl-task-result
  validations:
    - dsl-schema-validation
    - dsl-lint-validation
  responsibilities:
    - Add and update guardrail_impl check definitions
    - Configure outputs section templates and inline templates
    - Set up binding extends inheritance
  completion_criteria:
    - Binding YAML conforms to the correct schema
    - guardrail_impl hook_event / matcher values are valid
    - agent-contracts generate guardrails succeeds
  execution_steps:
    - id: read-guardrails
      action: Review target guardrail definitions and policies
      reads_artifact: dsl-source
      required: true
    - id: update-binding
      action: Create or update binding YAML
      produces_artifact: dsl-source
    - id: generate
      action: Run agent-contracts generate guardrails to verify
      uses_tool: agent-contracts-cli
      required: true
  escalation_criteria:
    - condition: Binding guardrail_impl is inconsistent with DSL guardrails
      action: stop_and_report

render-dsl-outputs:
  description: Render prompts and documents from DSL and check for drift
  target_agent: dsl-designer
  workflow: dsl-update
  input_artifacts:
    - dsl-source
  invocation_handoff: dsl-task-request
  result_handoff: dsl-task-result
  validations:
    - dsl-schema-validation
    - dsl-completeness-audit
  responsibilities:
    - Generate prompts and documents via agent-contracts render
    - Detect and resolve drift using render --check
  completion_criteria:
    - render succeeds
    - render --check reports no drift
  execution_steps:
    - id: render
      action: Run agent-contracts render
      uses_tool: agent-contracts-cli
      produces_artifact: dsl-generated-output
      required: true
    - id: check-drift
      action: Run agent-contracts render --check to verify no drift
      uses_tool: agent-contracts-cli
  escalation_criteria:
    - condition: Unresolved template errors during render
      action: stop_and_report

check-dsl-score:
  description: Check DSL completeness score and identify improvement areas
  target_agent: dsl-designer
  workflow: dsl-update
  input_artifacts:
    - dsl-source
  invocation_handoff: dsl-task-request
  result_handoff: dsl-task-result
  validations:
    - dsl-score-validation
    - dsl-score-report-validation
  responsibilities:
    - Review score across 7 dimensions and identify weaknesses
    - List entities that need improvement
  completion_criteria:
    - Score results have been reviewed
    - Improvement areas have been identified
  execution_steps:
    - id: run-score
      action: Run agent-contracts score
      uses_tool: agent-contracts-cli
      required: true
    - id: analyze
      action: Analyze score weaknesses and formulate improvement plan
      produces_artifact: dsl-score-report
  escalation_criteria:
    - condition: Score is significantly below threshold with no clear improvement path
      action: stop_and_report

# === DSL Audit Tasks ===

audit-dsl-completeness:
  description: Audit completeness of DSL definitions against generated prompts
  target_agent: dsl-auditor
  workflow: dsl-audit
  input_artifacts:
    - dsl-source
    - dsl-generated-output
  invocation_handoff: dsl-task-request
  result_handoff: dsl-audit-result
  validations:
    - dsl-completeness-audit
    - dsl-audit-report-validation
  responsibilities:
    - Cross-check across 19 dimensions per audit procedure
    - Classify gaps as template gap, data gap, or DSL gap
    - Present improvement recommendations
  completion_criteria:
    - All dimensions inspected for all agents
    - Detected gaps are classified
    - Improvement recommendations are presented with priority
  execution_steps:
    - id: collect-sources
      action: Collect DSL definitions, generated prompts, and templates
      reads_artifact: dsl-source
      required: true
    - id: collect-outputs
      action: Collect generated prompts
      reads_artifact: dsl-generated-output
      required: true
    - id: run-audit
      action: Execute 19-dimension cross-check
    - id: analyze-gaps
      action: Analyze root causes of detected gaps
    - id: produce-report
      action: Produce audit report and improvement recommendations
      produces_artifact: dsl-audit-report
  escalation_criteria:
    - condition: 3 or more critical-level gaps detected
      action: stop_and_report

audit-semantic-design:
  description: Audit DSL design for semantic coherence
  target_agent: dsl-auditor
  workflow: dsl-audit
  input_artifacts:
    - dsl-source
  invocation_handoff: dsl-task-request
  result_handoff: dsl-audit-result
  validations:
    - dsl-completeness-audit
    - dsl-audit-report-validation
  responsibilities:
    - Check dispatch_only agents for implementation responsibilities
    - Detect agents with overly broad scope
    - Identify role overlap between agents
    - Verify handoff schemas carry sufficient fields for task completion_criteria
    - Check workflow gates are placed effectively
    - Detect guardrails declared but absent from execution path
    - Check semantic validations are distributed across phases
    - Detect custom x- properties that replicate standard DSL control-flow features (gate, decision, entry_conditions)
  completion_criteria:
    - All agents reviewed for scope and overlap
    - Workflow gate placement analyzed
    - Guardrail enforcement path verified
    - Custom x- property misuse flagged
    - Findings classified with severity and category
  execution_steps:
    - id: load-dsl
      action: Load resolved DSL definitions
      reads_artifact: dsl-source
      required: true
    - id: analyze-agents
      action: Review agent responsibilities, permissions, and role boundaries
    - id: analyze-workflows
      action: Analyze workflow structure, gate placement, and validation coverage
    - id: analyze-guardrails
      action: Verify guardrail enforcement paths
    - id: produce-report
      action: Produce semantic design audit report
      produces_artifact: dsl-audit-report
  escalation_criteria:
    - condition: 3 or more critical-level design issues detected
      action: stop_and_report

audit-generated-prompts:
  description: Audit generated prompts against DSL intent
  target_agent: dsl-auditor
  workflow: dsl-audit
  input_artifacts:
    - dsl-source
    - dsl-generated-output
  invocation_handoff: dsl-task-request
  result_handoff: dsl-audit-result
  validations:
    - dsl-completeness-audit
    - dsl-audit-report-validation
  responsibilities:
    - Compare generated prompt content against DSL agent definitions
    - Detect missing requirements from DSL
    - Detect hallucinated permissions not in DSL
    - Identify ambiguous or unsafe instructions
    - Verify consistency between prompt and handoff schema expectations
  completion_criteria:
    - All generated prompts compared against DSL definitions
    - Missing, hallucinated, and ambiguous instructions identified
    - Findings classified with severity and category
  execution_steps:
    - id: collect-sources
      action: Collect DSL agent definitions and related entities
      reads_artifact: dsl-source
      required: true
    - id: collect-prompts
      action: Collect generated prompt files
      reads_artifact: dsl-generated-output
      required: true
    - id: compare
      action: Compare each prompt against its DSL definition
    - id: produce-report
      action: Produce prompt audit report
      produces_artifact: dsl-audit-report
  escalation_criteria:
    - condition: Hallucinated permissions detected in generated prompts
      action: stop_and_report

audit-extension-consumption:
  description: Audit declared x-* extensions for consumption gaps across render and runtime paths
  target_agent: dsl-auditor
  workflow: dsl-audit
  input_artifacts:
    - dsl-source
    - dsl-generated-output
  invocation_handoff: dsl-task-request
  result_handoff: dsl-audit-result
  validations:
    - dsl-completeness-audit
    - dsl-audit-report-validation
  responsibilities:
    - Cross-check extensions declarations against entity x-* usage
    - Identify x-* properties populated in DSL but not consumed by any render template
    - Detect semantic overlap between x-* extensions and standard DSL features
    - Report runtime codegen reachability for each extension
    - Distinguish intentional metadata-only extensions from consumption gaps
  completion_criteria:
    - All declared extensions checked for template and runtime consumption
    - Unused extensions flagged with suggested action (remove, migrate to standard, or add template support)
    - Runtime-unreachable extensions documented with explanation
    - Findings classified with severity and category
  execution_steps:
    - id: collect-declarations
      action: Collect extensions declarations and x-* usage map
      reads_artifact: dsl-source
      required: true
    - id: collect-templates
      action: Collect render template x-* references
      reads_artifact: dsl-generated-output
      required: true
    - id: analyze-consumption
      action: Cross-check declarations vs usage vs template references vs runtime fields
    - id: analyze-semantics
      action: Detect semantic overlap with standard DSL features
    - id: produce-report
      action: Produce extension consumption audit report
      produces_artifact: dsl-audit-report
  escalation_criteria:
    - condition: Required extension with no consumption path detected
      action: stop_and_report
