ship: phase-01 repo-scaffolding #1

Merged
grimacing merged 12 commits from phase/01-repo-scaffolding into milestone/v1.0-initial 2026-07-21 13:11:02 +00:00
Showing only changes of commit e257888622 - Show all commits
@@ -0,0 +1,40 @@
# ACDL issue-to-contract workflow (Phase 01 skeleton, reference copy).
#
# This file is the source-of-truth copy kept in the `acdl` repo under
# contracts-repo/.gitea/workflows/. Phase 04 will push it to the actual
# `acdl-contracts` repo under .gitea/workflows/ and implement the real
# step bodies.
#
# Trigger: a new Issue is opened in acdl-contracts. The workflow runs
# l3b_agent_stub.py to map the Issue body to a contract.yaml, commits the
# contract to a new branch, closes the Issue, and triggers the main
# pipeline in the `acdl` repo via the workflow_dispatch API (D-014; Gitea
# Actions does not support repository_dispatch).
name: issue-to-contract
on:
issues:
types: [opened]
jobs:
parse-and-trigger:
runs-on: ubuntu-latest
steps:
# Phase 04 will implement:
# 1. checkout acdl-contracts (so l3b_agent_stub.py is available).
# 2. run: python3 scripts/l3b_agent_stub.py "${{ gitea.event.issue.body }}" > contract.yaml
# 3. parse the generated contract; commit it to a new branch
# (e.g. contract/<issue-number>).
# 4. push the branch.
# 5. close the Issue with a comment linking to the pipeline run.
# 6. trigger the main pipeline:
# curl -X POST \
# -H "Authorization: token ${GITEA_TOKEN}" \
# https://git.cloudinit.dev/api/v1/repos/continuous-intelligence/acdl/actions/workflows/<id>/dispatches \
# -d '{"ref":"milestone/v1.0-initial","inputs":{"contract-ref":"<branch>"}}'
- name: "Issue-trigger placeholder"
run: |
echo "issue-to-contract placeholder (Phase 01 skeleton)"
echo "Issue body: ${{ gitea.event.issue.body }}"
echo "Phase 04 will run l3b_agent_stub.py, commit contract.yaml, close issue, dispatch pipeline"
exit 0