Skip to content

#52: [P0] Assign user to ticket and move in to progress#81

Merged
sandsower merged 2 commits intomainfrom
issue-52-lifecycle-actions
May 10, 2026
Merged

#52: [P0] Assign user to ticket and move in to progress#81
sandsower merged 2 commits intomainfrom
issue-52-lifecycle-actions

Conversation

@sandsower
Copy link
Copy Markdown
Owner

@sandsower sandsower commented May 10, 2026

Summary

  • Add the lifecycle_actions workflow config shape for event-driven side effects.
  • Document P0 support for ordered kickoff_start CLI actions with auto/prompt approval.
  • Update kickoff/setup/doctor/probe guidance and smoke coverage for lifecycle-action execution.

Verification

  • python3 scripts/validate_skills.py
  • python3 scripts/check_skill_size_budgets.py
  • python3 tests/agent-smoke/scenarios/kickoff/verify.py --self-test
  • git diff --check
  • Cross-host agent smoke: python3 tests/agent-smoke/run.py gate ship-it --hosts claude,codex --timeout 900 --changed-only — passed on Claude and Codex

Review

  • Local review completed; 2 Important and 1 Minor finding addressed.
  • Fresh-eyes completed; 3 Important and 2 Minor findings addressed/handled.
  • Accepted risks: none.
  • Reduced review coverage: none.

Notes

Closes #52.

Summary by CodeRabbit

  • New Features

    • Lifecycle actions: Configure ordered CLI actions at workflow events (P0: kickoff_start) with approval modes, placeholder substitution, and explicit failure handling (retry/skip remaining/abort).
  • Documentation

    • Comprehensive lifecycle actions docs added across workflow, setup, kickoff, and doctor guidance, including examples and probe semantics.
  • Tests

    • Smoke tests and a mock lifecycle-action executable added to validate execution, logging, and placeholder behavior.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 10, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: ac8cf8fe-a540-4b96-9512-078e9ae38ab8

📥 Commits

Reviewing files that changed from the base of the PR and between de6e53f and 06cd307.

📒 Files selected for processing (2)
  • .beislid/kickoff-templates.md
  • skills/setup/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (2)
  • skills/setup/SKILL.md
  • .beislid/kickoff-templates.md

📝 Walkthrough

Walkthrough

This PR adds lifecycle actions: event-keyed ordered CLI side effects for kickoff_start with probing, safe placeholder substitution, approval modes (auto/prompt), interactive failure handling (retry/skip/abort), setup interview/docs, and smoke-test support.

Changes

Lifecycle Actions Feature

Layer / File(s) Summary
Workflow Format & Specification
.beislid/workflow-md-format.md, .beislid/probe-semantics.md
Registers Lifecycle actions section and lifecycle_actions fenced-key; defines events.<event>.actions[] shape (name, type: cli, command, approval), supported placeholders, and probe semantics (probe unique first CLI binaries per event).
Kickoff Execution Protocol
skills/kickoff/step-1-ticket.md, skills/kickoff/SKILL.md
Adds kickoff_start lifecycle phase after ticket fetch: optional event probing, P0 CLI-only execution, ordered action runs, safe placeholder/argv handling, approval (auto/prompt), failure handling with retry/skip-remaining/abort, and lifecycle-action status outputs.
Doctor Probing & Failure Templates
skills/doctor/SKILL.md, .beislid/kickoff-templates.md
Doctor expands lifecycle_actions.events.<event> into event-scoped logical probes and executes P0 CLI probes; kickoff templates include lifecycle-action failure warning with action name, reason, and retry/skip/abort options.
Setup Configuration & User Documentation
skills/setup/SKILL.md, docs/configuration.md, docs/faq.md
Adds Phase-3 setup interview to collect lifecycle-action configuration, extends docs and FAQ with lifecycle-actions section, examples, and orchestrator notes.
Test Mock & Fixture
tests/agent-smoke/scenarios/kickoff/mock-bin/lifecycle-action, tests/agent-smoke/scenarios/kickoff/setup.py
Adds mock lifecycle-action script that logs to LIFECYCLE_ACTION_LOG, validates four args (ticket_id, id, branch, event), and updates fixture to include mock binary, generated beislid:lifecycle_actions config, lifecycle_action_log metadata, and env mapping.
Test Verification & Documentation
tests/agent-smoke/scenarios/kickoff/verify.py, tests/agent-smoke/scenarios/kickoff/scenario.json, tests/agent-smoke/scenarios/kickoff/README.md
Verifier reads lifecycle-action.log, asserts expected invocation and cwd, includes log in combined evidence, updates self_test() and scenario metadata/README to document lifecycle-action execution.

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant Setup
  participant Kickoff
  participant MockBin
  participant Verifier
  User->>Setup: configure lifecycle_actions (kickoff_start)
  Setup-->>Kickoff: writes beislid:lifecycle_actions
  Kickoff->>MockBin: execute lifecycle-action (with placeholders)
  MockBin-->>Kickoff: write lifecycle-action.log
  Kickoff->>Verifier: run verification (includes lifecycle-action.log)
  Verifier-->>User: report pass/fail
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

🐰 A little rabbit hops to start the run,

It fills the ticket, moves the work—what fun!
Placeholders snug, approvals in a line,
Retry, skip, or abort — the choice is thine.
Hooray for lifecycle actions, neatly done!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the primary change: implementing P0 lifecycle actions to assign users to tickets and move them to in-progress status during kickoff.
Linked Issues check ✅ Passed The PR implements P0 support for ordered kickoff_start CLI actions enabling automated ticket assignment and status transitions, directly fulfilling issue #52's core objective.
Out of Scope Changes check ✅ Passed All changes are focused on implementing lifecycle_actions for kickoff_start events with CLI actions and proper documentation; no unrelated modifications detected.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch issue-52-lifecycle-actions

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.beislid/kickoff-templates.md:
- Around line 81-85: The fenced code block that starts with "⚠️ Lifecycle action
`<name>` failed: <reason>." is unlabeled and triggers markdownlint MD040; update
that fence from ``` to a labeled block such as ```text (i.e., add the language
tag "text" to the opening fence) so the block is properly annotated while
keeping the existing contents unchanged.

In `@skills/setup/SKILL.md`:
- Around line 327-329: The unlabeled fenced code block containing "Configure
kickoff_start lifecycle actions? (cli / skip)" triggers MD040; update that fence
in SKILL.md to include a language label (e.g., change ``` to ```text) so the
block is recognized as a text/code fence and resolves the lint warning for the
fenced prompt block.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 686c73aa-a164-4cdb-b0e9-adb4d3e647db

📥 Commits

Reviewing files that changed from the base of the PR and between e799c3f and de6e53f.

📒 Files selected for processing (14)
  • .beislid/kickoff-templates.md
  • .beislid/probe-semantics.md
  • .beislid/workflow-md-format.md
  • docs/configuration.md
  • docs/faq.md
  • skills/doctor/SKILL.md
  • skills/kickoff/SKILL.md
  • skills/kickoff/step-1-ticket.md
  • skills/setup/SKILL.md
  • tests/agent-smoke/scenarios/kickoff/README.md
  • tests/agent-smoke/scenarios/kickoff/mock-bin/lifecycle-action
  • tests/agent-smoke/scenarios/kickoff/scenario.json
  • tests/agent-smoke/scenarios/kickoff/setup.py
  • tests/agent-smoke/scenarios/kickoff/verify.py

Comment thread .beislid/kickoff-templates.md Outdated
Comment thread skills/setup/SKILL.md Outdated
@sandsower sandsower merged commit 84681d0 into main May 10, 2026
7 checks passed
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.

[P0] Assign user to ticket and move in to progress

1 participant