base-workflow

Orchestrates a full development workflow from task creation through IDL changes, coding, deployment, and testing.

Updated Apr 30, 2026
One-click install
npx skills add https://github.com/yuezhen-huang/my-bytedance-skillhub --skill base-workflow-yuezhen-huang
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: base-workflow
Source: https://github.com/yuezhen-huang/my-bytedance-skillhub/tree/main/base-workflow
Command: npx skills add https://github.com/yuezhen-huang/my-bytedance-skillhub --skill base-workflow-yuezhen-huang

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Coordinating a complete software development cycle—creating DevFlow tasks, editing IDL, writing code, deploying, and testing—requires juggling many tools and remembering every step. This Skill drives the entire workflow through a status.json state file, so progress is tracked, resumable, and nothing gets skipped. ## Core Features & Use Cases - State-Driven Workflow: Every phase (info collection, task setup, IDL change, coding, deploy, testing, completion) is tracked in .gdpa/{session-id}/status.json, enabling pause and resume across sessions. - Confirmation Checkpoints: Three mandatory user-approval gates (execution plan, design proposal, test plan) catch direction errors before costly external changes are made. - Skill Orchestration: Coordinates other Skills like devflow, edit-idl, bam-query, and argos-query with strict rules on parameter sourcing and branch alignment. - Use Case: A developer receives a requirement to add a field to a TikTok service API. The Skill confirms parameters, creates a DevFlow task, edits and commits the Thrift IDL, triggers code generation, guides coding, deploys to PPE, runs cross-region interface tests, and produces a final summary report. ## Quick Start Start a new development workflow for my requirement to add an age field to the UserInfo API on my service, and drive it through task setup, IDL change, coding, deployment, and testing.

Frequently Asked Questions about base-workflow

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I resume an interrupted development workflow session?

Reuse the same session_id from the original run. The workflow reads .gdpa/{session-id}/status.json, checks current_phase and each phase status, then continues from where it stopped—pending phases start, in_progress phases resume, and failed phases are analyzed for retry.

How does the workflow handle IDL changes and code generation?

The idl_change phase follows the edit-idl orchestration: idl-pull fetches Thrift files to a temp directory, you edit locally, idl-commit pushes to the feature branch and creates a BAM version, then idl-codegen triggers code generation. The base.thrift file must never be modified.

What are the confirmation checkpoints in this workflow?

Three checkpoints require explicit user approval: the execution plan after info collection, the design proposal before coding, and the test plan before testing. Each checkpoint writes an artifact file and records confirmation in status.json before proceeding.

Can I skip the IDL change or testing phases?

Yes. If the requirement involves no IDL or interface changes, idl_change is marked skipped. Testing can be skipped only if the user explicitly requests it. Skipped phases need no output files, but note that new endpoints always require the IDL flow.

Why must the same session_id be reused across gdpa-cli run commands?

The workflow state, phase artifacts, and recovery points all live under .gdpa/{session-id}/. Changing or omitting the session_id breaks the link to status.json, causing lost progress and disconnected troubleshooting information.

What happens when interface testing fails in the workflow?

The testing phase is marked failed with the failure reason recorded, current_phase rolls back to coding, and coding is set to in_progress. After fixes, the workflow redeploys and retests, with all transitions logged in the history array.