Skip to content

chore(pipeline): add project-local adversarial coding pipeline (Stage A/Unity)#1732

Merged
mlsamuelson merged 5 commits into
devfrom
pipeline-trial
Jul 7, 2026
Merged

chore(pipeline): add project-local adversarial coding pipeline (Stage A/Unity)#1732
mlsamuelson merged 5 commits into
devfrom
pipeline-trial

Conversation

@mlsamuelson

Copy link
Copy Markdown
Member

Self-contained .kiro pipeline seeded from ddt-agent-skills-library-foundry: 5 acp-* agents (orchestrator/architect/coder/reviewer/visual), foundry + ASU skills (jira-figma-intake, unity-components, asu-design-a11y, asu-brand, unity-handoff-out, visual-diff), project-local MCP (Atlassian RO, Figma, Storybook), steering, hooks, preflight + handoff validator, README. Agents stop at branch+commits; humans open PRs.

TEST

  • Create a new branch based on this.
  • Ensure you have all the "One time setup" steps documented in the PR completed.
  • Create a Jira ticket with a link to a single Figma design OR take a screenshot of the design and add it to .intake/
  • Run Kiro: kiro-cli --agent acp-orchestrator
  • Paste this as your first message to the orchestrator:
  Component: [REPLACE WITH SHORT COMPONENT NAME]. Build/validate a Unity [COMPONENT NAME] component that
  [REPLACE WITH SHORT DESCRIPTION].
  Intake: no Jira, no Figma — use the screenshot in .intake/HeroWithExpandableHeroes.png. [OR GIVE IT THE JIRA/FIGMA INFO]
  Target: pick the right Unity package and tell me your reasoning before coding.

What to expect:

  1. INTAKE — it reads the screenshot, writes .pipeline/intake-brief.md, summarizes, and asks clarifying questions (e.g. new component vs. extend an existing component; which package). Answer them.
  2. PLAN [your gate] — architect writes .pipeline/design-doc.md citing unity-components/asu-brand/asu-design-a11y. Review and reply "approved" to proceed (the only stop).
  3. IMPLEMENT → REVIEW → VISUAL — coder (TDD, tokens, HTML-parity) → reviewer (3-phase) → acp-visual screenshots the render vs. your screenshot. Up to 3 fix cycles, autonomous.
  4. GATE + HANDOFF — build+lint, run-story-tests, HTML-parity, VISUAL_PASS; writes ../handoff// and commits to feature branch.

… A/Unity)

Self-contained .kiro pipeline seeded from ddt-agent-skills-library-foundry: 5 acp-* agents (orchestrator/architect/coder/reviewer/visual), foundry + ASU skills (jira-figma-intake, unity-components, asu-design-a11y, asu-brand, unity-handoff-out, visual-diff), project-local MCP (Atlassian RO, Figma, Storybook), steering, hooks, preflight + handoff validator, README. Agents stop at branch+commits; humans open PRs.
@mlsamuelson
mlsamuelson requested a review from a team as a code owner June 29, 2026 16:36
@asu-jenkins-devops

Copy link
Copy Markdown
Collaborator

@mlsamuelson mlsamuelson changed the title chore(pipeline): add project-local adversarial coding pipeline (Stage A/Unity) WIP chore(pipeline): add project-local adversarial coding pipeline (Stage A/Unity) Jun 29, 2026
file:// resources resolve relative to the agent file dir (.kiro/agents), not the workspace root (skill:// is workspace-relative). file://.kiro/steering/** looked for .kiro/agents/.kiro/steering and silently loaded nothing. Use file://../steering/**/*.md so unity-pipeline.md actually loads. Confirmed via /context show during the Stage A dry run.
…skill

The docs build (jsdoc-to-markdown) rejects TS arrow types in JSDoc tags; document closure/@callback syntax so the coder avoids the JSDOC_ERROR the dry run hit.
Replace hardcoded JIRA_USERNAME/CONFLUENCE_USERNAME with $JIRA_USERNAME/$CONFLUENCE_USERNAME (mirrors the *_API_TOKEN pattern). Reconcile the jira-figma-intake REST fallback to $JIRA_USERNAME and document both vars in the README. No personal data in committed config.
@mlsamuelson

Copy link
Copy Markdown
Member Author

Overall, the full pipeline development, first pass is completed:

  All 14 tasks complete. Here's the wrap-up.

  What was delivered

  A repeatable, two-stage adversarial coding pipeline, validated end-to-end on a real component (Expandable Heroes):

  - Stage A — asu-unity-stack/.kiro/: foundry-seeded acp-orchestrator/architect/coder/reviewer/visual (model-diverse), ASU skills (jira-figma-intake, unity-components, asu-design-a11y, asu-brand, unity-handoff-out, visual-diff), project-local
  MCP (Atlassian RO, Figma, 8 Storybook), preflight + handoff validator, steering, README. Proven: flexible screenshot intake → design gate → TDD → GLM reviewer → vision visual-diff → 5 cycles → PR-ready gate → valid handoff.
  - Handoff (chain/handoff/<anchor>/): handoff.json + markup.html, schema-validated, peer to both repos.
  - Stage B — asufactory1/.kiro/: same agents + webspark-handoff-in, unity-consume, webspark-drupal + synced design/brand skills, MCP (Atlassian RO, GitLab RO, Figma). Proven: consumed the handoff → renovation-theme block + profile config +
  hook_update_N + Kernel/Playwright tests, Drupal core untouched.
  - Docs: chain/pipeline-plan.md (the approved plan) and chain/pipeline-runbook.md (operations + all conventions/findings).

  Your corrections this turn are encoded: Drupal-core (not Webspark-core) rule, the three placement patterns, the websparkci.asu.ddev.site test site, @websparkci.local drush rule, and the verification gating (Playwright-blocked ⇒ BLOCKED;
  visibility-pair bounding-box assertions; DELIVER asset-fingerprint curl ⇒ P1 DEPLOY_PENDING).

  Open operational actions (yours; agents don't push/PR)

  - Unity: git push --force-with-lease origin feat/expandable-heroes (clean component PR), then open the PR; push pipeline-trial.
  - Webspark: open the MR from feat/expandable-heroes; push pipeline-trial.
  - Ensure JIRA_USERNAME/CONFLUENCE_USERNAME are exported (replacing the old JIRA_USER).
  - Optional later: upstream the asu-brand skill (and a unity-webspark pipeline) to the foundry.

…doff interactivity contract (schema 1.1)

RETAIN step archives reports to .pipeline/archive/<slug>-<UTC>/ and optionally attaches them + posts a summary comment to the Jira ticket via v3 REST. Handoff schema 1.1 adds an interactivity block (state machine, activation, keyboard/APG, focus, dynamic ARIA, class-toggle contract, motion/forced-colors, breakpoints, analytics) so Webspark reproduces behavior instead of reinventing it. Validator warns when absent.

@mlsamuelson mlsamuelson left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kiro developed code. I've reviewed. See no concerns. Successful run evidenced in #1733

@mlsamuelson mlsamuelson changed the title WIP chore(pipeline): add project-local adversarial coding pipeline (Stage A/Unity) chore(pipeline): add project-local adversarial coding pipeline (Stage A/Unity) Jul 2, 2026

@davidornelas11 davidornelas11 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good! Any suggestions will be added on an as needed basis

@mlsamuelson
mlsamuelson merged commit 951044f into dev Jul 7, 2026
1 check passed
@mlsamuelson
mlsamuelson deleted the pipeline-trial branch July 7, 2026 23:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants