Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions .github/workflows/sdlc-orchestrator.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: Tutti SDLC Orchestrator

on:
workflow_dispatch:
inputs:
mode:
description: "Workflow mode to execute"
required: true
default: "smoke"
type: choice
options:
- smoke
- auto
issue_label:
description: "GitHub issue label to select (for automation scripts)"
required: false
default: "agent-ops"

jobs:
orchestrate:
runs-on: ubuntu-latest
concurrency:
group: sdlc-orchestrator-${{ github.repository }}
cancel-in-progress: false
permissions:
contents: write
pull-requests: write
issues: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup Rust
uses: dtolnay/rust-toolchain@stable

- name: Setup Git identity
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"

- name: Create automation config
run: |
cp docs/examples/tutti-codex-sdlc.toml tutti.toml

- name: Verify gh auth
env:
GH_TOKEN: ${{ github.token }}
run: |
gh auth status

- name: Preflight tests
run: cargo test -q

- name: Run smoke workflow
if: ${{ inputs.mode == 'smoke' }}
env:
GH_TOKEN: ${{ github.token }}
ISSUE_LABEL: ${{ inputs.issue_label }}
run: |
cargo run --quiet -- run sdlc-smoke --strict
Comment thread
coderabbitai[bot] marked this conversation as resolved.

- name: Verify codex CLI is available
if: ${{ inputs.mode == 'auto' }}
run: |
command -v codex >/dev/null || { echo "codex CLI not found on runner"; exit 1; }

- name: Run full auto workflow
if: ${{ inputs.mode == 'auto' }}
env:
GH_TOKEN: ${{ github.token }}
ISSUE_LABEL: ${{ inputs.issue_label }}
run: |
cargo run --quiet -- run sdlc-auto --strict
Comment thread
coderabbitai[bot] marked this conversation as resolved.
99 changes: 99 additions & 0 deletions docs/AGENT_OPS_ROADMAP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# Tutti Agent Operations Roadmap (Execution Plan)

## Goal
Position Tutti as the agent operations layer (not just a coding assistant) by closing reliability, governance, observability, and adoption gaps.

## Priorities

### P0 — Foundation (must ship first)
1. **Identity + Auth + RBAC**
- User/org/workspace identities
- API keys and role-based permissions
- Audit trail for sensitive actions

2. **Production Control Plane Hardening**
- Stable API contracts
- Durable event stream semantics
- Idempotency for mutating endpoints
- Queryable run/event history

3. **Reliability Primitives**
- Retry policies + backoff
- Checkpoint/resume guarantees
- Dead-letter handling for failed actions
- Circuit breakers / provider failover

4. **Approval and Guardrail Workflows**
- Human approval gates for risky actions
- Policy-as-code enforcement
- Exception handling with traceability

5. **Operator Observability**
- Per-run timeline and failure stages
- Root cause attribution (routing/tool/model/policy)
- SLO dashboards and alerting hooks

### P1 — Scale and Governance
6. **Cost Governance**
- Workspace/agent budgets
- Forecasting and anomaly detection
- Hard-stop + escalation behavior

7. **Deployment and Operations Story**
- Managed and self-hosted deployment paths
- Secrets/backup/migration tooling
- Upgrade safety and rollback docs

8. **Ecosystem + Templates**
- Connector starter set (CRM, ticketing, docs, messaging)
- Template arrangements/workflows by use case
- Under 30 min time-to-first-value path

9. **Trust and Compliance Pack**
- Security posture docs
- Data retention/export controls
- Auditability and incident response basics

10. **Positioning + Onboarding Narrative**
- Replace generic “agent framework” messaging
- “Run reliable agent operations in one day” onboarding flow
- Product-led proof of value in first session

## Telemetry Plan (parallel to all milestones)

### North Star
- **Activation rate:** installs that reach first successful workflow run within 24h

### Event instrumentation
- Install: `tutti_install_started`, `tutti_install_completed`
- Activation: `first_workspace_created`, `first_up_success`, `first_send`, `first_workflow_run`
- Habit: DAW (daily active workspaces), returning workspace cohorts (D1/D7/D30), runs per workspace
- Outcome: run success/failure, failure type (`routing/tool/model/policy`), time-to-success
- Commercial: conversion funnel install → first up → first successful run → D7 return
Comment thread
coderabbitai[bot] marked this conversation as resolved.

**PII boundaries (mandatory):**
- Allowed fields: timestamps, boolean flags, counters, duration buckets, workflow/run status, failure category.
- Identifier handling: workspace/user identifiers must be one-way pseudonymized (salted hash).
- Explicitly excluded: workspace names, user emails, full prompts/messages, raw payload bodies.
- Retention: raw event payloads 30 days; aggregated cohort and DAW metrics 12 months.
- Enforcement: apply and verify via the "Redaction/privacy defaults" deliverable before dashboard rollout.

### Telemetry deliverables
- Event schema + versioning
- Redaction/privacy defaults
- Dashboard for activation, reliability, retention
- Alerting on activation regression and failure spikes

## Suggested sequencing (8-week sketch)
- **Weeks 1-2:** P0.1 + P0.2 + telemetry schema foundation
- **Weeks 3-4:** P0.3 + P0.4 + failure attribution dashboards
- **Weeks 5-6:** P0.5 + P1.6 (observability + cost governance)
- **Weeks 7-8:** P1.7 + P1.8 + onboarding narrative improvements
- Ongoing: P1.9 + P1.10 hardening and GTM tuning

## Success criteria
- Activation: >= 60% of installs reach first successful workflow run within 24h
- Reliability: run failure rate < 5% and MTTR < 2 hours
- Operator trust: approval/audit/cost controls are production-usable and exercised in at least one documented runbook
- Adoption: >= 3 production-ready templates with documented use cases
- Retention: D7 returning-workspace cohort >= 40%
75 changes: 75 additions & 0 deletions docs/CODEX_SDLC_ORCHESTRATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Codex SDLC Orchestration (Tutti-for-Tutti)

This framework automates the SDLC loop for Tutti using Codex agents:

1. Select issue from GitHub
2. Create issue branch
3. Implement with specialized agents (implementation, testing, docs/release)
4. Validate locally
5. Open PR
6. Wait for CodeRabbit review
7. Apply review fixes
8. Re-validate and update PR

## Specialized agent topology (recommended)

Use 6 focused agents:
- `planner` (Claude) — issue decomposition, risk/test/release planning
- `conductor` (Codex) — orchestration/handoffs only
- `implementer` (Codex) — code changes in `src/**`
- `tester` (Codex) — tests and validation ownership
- `docs-release` (Codex) — docs/changelog/version responsibilities
- `reviewer` (Codex) — strict release-readiness review

This keeps each agent independent and accountable to one concern while preserving Codex-heavy execution.

## Prerequisites

- `gh` authenticated with repo access
- `codex` CLI authenticated and available in PATH
- `git`, `python3` available
- Repo has labels for issue intake (default `agent-ops`)

## Test run first (required)

Before unattended automation, run a smoke workflow that:

- selects issue (`select_issue.sh`)
- creates branch (`create_issue_branch.sh`)
- runs validation (`cargo test --quiet`)
- does **not** open PR or push

Only after successful smoke, run full cycle.

## Example workflow file

Use `docs/examples/tutti-codex-sdlc.toml` as a starting point.

## Core scripts

- `scripts/automation/select_issue.sh`
- `scripts/automation/create_issue_branch.sh`
- `scripts/automation/wait_coderabbit.sh`
- `scripts/automation/collect_coderabbit_feedback.sh`

## Operational notes

- Keep branch naming deterministic: `auto/issue-<num>-<timestamp>`
- Always include issue reference in commit and PR body
- Enforce docs/version updates in implementation prompt
- Require test pass before PR open and before merge/land
- If CodeRabbit fails, gather feedback and route to Codex fix step

## Suggested runbook

1. `tt run sdlc-smoke --strict`
2. Inspect logs/output artifacts under `.tutti/state/auto/`
3. `tt run sdlc-auto --strict`
4. Monitor with `tt watch` / `tt logs`
5. Land only after checks + review pass

## Safety

- Start with `fail_mode = "closed"` on command steps
- Keep PR creation and land as explicit steps (no hidden auto-merge)
- Add approval gate before land for now
Loading
Loading