Team Guide — v3.54

How to Use Sling

From creating a ticket to production deploy — what happens automatically, what you do, and where to look.

Product Producer You build

Create issues, trigger builds, review QA artifacts, iterate until ready for stakeholders.

Where you work: Claude Code CLI (a terminal, inside a cloned repo). Triggering Sling is a /sling-prep command. Producer workflow →

Business Owner You approve

Review staging, provide feedback in Slack, approve or request changes. Push to production when ready.

Where you work: Slack — for reviewing finished work. You don’t start work from Slack. Owner workflow →

Engineer You configure

Set up repos, manage GitHub Projects, monitor deploys, handle rollbacks if needed.

Where you work: config/repositories.json, server SSH, GitHub branch protection.

If you only remember three commands:

gh repo clone wbtw-repositories/<repo> ~/Code/<repo>   # one-time per repo
cd ~/Code/<repo> && claude                              # open Claude Code there
/sling-prep https://github.com/wbtw-repositories/<repo>/issues/<n>
End-to-End Pipeline

10 Steps, Mostly Automated

Green = Sling does it automatically. Blue = you do it. Orange = Slack interaction.

  1. 1
    Create GitHub Issue + Trigger Sling You Producer
    Write requirements as a GitHub issue. Then trigger Sling in Claude Code: /sling-prep <issue-url>. Fallback: add the auto-implement + claude-code labels directly on GitHub.
  2. 2
    Spec Generation Automatic
    Sling expands your issue into a full AI-ready specification with acceptance criteria.
  3. 3
    Build & Test Automatic
    Sling generates tests, implements code, runs quality gates. Creates a PR when done.
  4. 4
    Post-PR Pipeline Automatic
    Auto-review, staging deploy, E2E tests (Playwright video + screenshots). Self-remediates failures up to 3 times.
  5. 5
    Demo Ready Notification Automatic
    Slack notification sent to the UAT channel with staging URL, E2E videos, and action buttons. Issue moves to “Demo Ready” in GitHub Projects.
  6. 6
    Stakeholder Review Slack Owner
    Click the staging link. Test the feature. Reply in the Slack thread with feedback.
  7. 7
    Approve or Request Changes Slack Owner
    Click Approve or Request Changes. Changes reset approvals and post feedback to GitHub. Multiple approvers supported.
  8. 8
    Push to Production Slack
    Once approval threshold is met, click Push to Production. Sling merges the PR and monitors the deploy.
  9. 9
    Deploy + Rollback Button Automatic
    Deploy monitored via GitHub Actions. On success: “In Production” status + Slack rollback button. On failure: auto-incident created.
  10. 10
    Knowledge Capture + Compliance Automatic
    Reverse engineering prompt committed to GitHub. PR diff validated against sctxt.ai compliance standards. Do’s/Don’ts extracted and proposed.
For Product Producers

Your Workflow

The whole trigger sequence in 3 commands:

gh repo clone wbtw-repositories/<repo> ~/Code/<repo>     # one-time per repo
cd ~/Code/<repo> && claude                                # open Claude Code in that folder
/sling-prep https://github.com/wbtw-repositories/<repo>/issues/<n>

That’s it. Claude walks you through prep, applies the labels, Sling picks up within ~2 minutes, and you’ll get a Slack ping when staging is ready.

Step 1 — Create the Issue

Write clear requirements as a GitHub issue in the target repo. Include:

  • What the feature should do
  • Acceptance criteria (bullet points)
  • Any UI/UX specifics or constraints
  • Link to requirements doc (Google Drive, etc.)

Step 2 — Trigger Sling

Recommended — in Claude Code:

/sling-prep https://github.com/owner/repo/issues/123

Claude scores the issue, suggests improvements, and applies the right labels for you. This is the fastest path and catches scope problems before Sling runs.

Manual fallback — on GitHub:

Add the auto-implement + claude-code labels directly. Sling picks it up via webhook within ~1–2 minutes.

Coming soon: Slack-based trigger via the AIA bot. Not live yet — use Claude Code or GitHub for now.

Step 3 — Wait for Demo Ready

Sling will:

  • Generate a spec from your issue
  • Write tests + implement the code
  • Auto-review and fix issues
  • Deploy to staging + run E2E tests
  • Notify you in Slack when ready

Average time: 15–45 minutes per issue.

Step 4 — Review QA Artifacts

The Slack notification includes:

  • Staging URL — click to test live
  • E2E videos — watch Playwright recordings
  • Screenshots — visual evidence
  • Test results — pass/fail counts

Step 5 — Iterate if Needed

If changes are needed before showing to the business owner, create a new issue or update the existing one with additional requirements. Re-run /sling-prep or add auto-implement again.

Tip: Be specific in change requests. “Make the button blue” works better than “improve the UI.”

For Business Owners

Your Review Process

This page is only for reviewing finished work. If you’re trying to start a new build, you’re on the wrong page — go to For Product Producers instead. Producers trigger Sling from Claude Code (the CLI). Slack only delivers the demo-ready ping after Sling finishes.

Once a producer has triggered Sling and it has built + staged the work, as a business owner your review happens in Slack — approve, request changes, or trigger a rollback. As a reviewer you never need to touch GitHub or the codebase.

📣 Demo Ready for Review
Patient Portal — Add Lab Results Filter
Repository: wbtw-repositories/diagnostic.ly-nodejs | Issue: #1450 | PR: #1452
🔗 Staging: https://staging.diagnostic.ly
🧪 E2E Tests: 12/12 passed
🎥 Videos: chromium-test-1.webm, chromium-test-2.webm
📋 Approvals: 0/1 required

Approve Request Changes Push to Production

Approve

You’ve tested on staging and it’s good. Click Approve. Your approval is recorded. Once the threshold is met (e.g., 1 of 1, or 2 of 3), production push is unlocked.

Request Changes

Something’s wrong. Reply in the Slack thread with your feedback, then click Request Changes. Your feedback is posted to GitHub and the team is notified. All approvals are reset.

Push to Production

Only active after approval threshold is met. Click it to deploy. Sling merges the PR and monitors the deploy. You’ll see a success message with a Rollback button.

Multiple Reviewers

Multiple business owners can review the same feature. Each person’s approval counts toward the threshold. Any single “Request Changes” resets everyone’s approvals.

Tracking Progress

GitHub Projects Board

Every task moves through these columns automatically. No manual updates needed.

Backlog
📋
Issue created, waiting for Sling
In Progress
⚙️
Sling is building + testing
Demo Ready
👁
Staging live, awaiting review
Accepted
Approved, ready for production
In Production
🚀
Deployed live

Business Owners Can View Without Code Access

The GitHub Project board can be made public so stakeholders see task progress without accessing the repository code. Ask an engineer to set this up.

Emergency

One-Click Rollback

If something goes wrong after deploying to production, you can revert in one click.

✅ Production deploy successful — wbtw-repositories/diagnostic.ly-nodejs
PR: #1452
Workflow: View run
Commit: a3f7b2c
Rollback

What Happens When You Click Rollback

  1. Confirmation dialog: “Are you sure?”
  2. Sling creates a git revert commit
  3. Revert PR auto-created and auto-merged
  4. Deploy monitored until complete
  5. Issue moves to “Reverted” in GitHub Projects
  6. Slack notification confirms rollback

Important: Database Migrations

Rollback reverts code only. Database migrations (e.g., php artisan migrate) are NOT automatically reversed.

If the original PR included migration files, Sling posts a warning before proceeding.

If you need to reverse a migration, contact an engineer. Do not attempt manual database changes.

Execution Modes

How Sling Builds Code

Sling has two execution modes. The right one is chosen automatically based on repo config or issue labels.

ModeHow It WorksBest ForHow to Trigger
STIV (default) Spec → Test → Implement → Validate. Uses OpenRouter API. Each phase is tracked separately. Well-scoped issues, single-file changes, TDD-friendly tasks Add auto-implement label (no extra label needed)
Claude Code Headless Claude Code CLI execution. Full codebase context. Uses Max subscription (flat-rate). Complex multi-file changes, refactors, tasks needing broad context Add claude-code label to the issue

Which Mode Should I Use?

Start with the default (STIV). If it fails or produces incomplete results, re-create the issue with the claude-code label for the more powerful mode. Most Diagnostic.ly repos default to claude-code already.

After Deploy

Compliance & Knowledge Capture

Three things happen automatically after every successful production deploy.

📐 Reverse Engineering Prompt

Claude generates a “reproduction prompt” from the task + PR diff. It’s committed to a knowledge repo on GitHub so the team can learn from and recreate past work.

🛡 Compliance Validation

The PR diff is submitted to sctxt.ai for compliance scoring against Diagnostic.ly governance standards. Results posted to Slack + GitHub PR.

📚 Do’s / Don’ts

Claude extracts reusable engineering guidelines from the deploy and submits them as proposals to sctxt.ai. An admin reviews and approves them as team standards.

Quick Reference

Cheat Sheet

I Want To…Do This
Start a new task Create GitHub issue → add auto-implement label
Use Claude Code mode Also add the claude-code label to the issue
Check task status Look at the GitHub Projects board, or the Sling dashboard at sling.svenlabs.ai/dashboard
Review a build Click the staging URL in the Slack notification
Give feedback Reply in the Slack thread, then click Request Changes
Approve for production Click Approve in Slack
Deploy to production Click Push to Production (after approval threshold met)
Roll back a deploy Click Rollback on the deploy success message in Slack
See what’s in production “In Production” column on the GitHub Projects board
Talk to Sling via Slack Message AIA in Slack: status, approve, pending

Supported Repos

app.diagnostic.lyUAT enabled
diagnostic.ly-nodejsUAT enabled
laravel.diagnostic.lyUAT enabled
whmgr-nodeSTIV only
whmgr-laravelSTIV only
workosSTIV only