RIPDPI's own Compose conventions: ViewModel pattern, Route/Screen split, DataStore->StateFlow, RipDpiThemeTokens. Use for how this app does Compose, not generic Compose API questions (see compose).
日本語の概要は準備中です。原文の説明を表示しています。
Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
RIPDPI policy: use only the local repository planning home. OpenSpec stores, global configuration changes, direct archive, and telemetry are out of scope; ./taskctl enforces the pinned tool and disables telemetry.
Propose a new change - create the change and generate all artifacts in one step.
Planning boundary: This workflow creates planning artifacts only. The user request that selected or triggered this workflow authorizes planning only, even if it asks to build or fix something. Do not edit project code. After the planning artifacts are complete, stop. Do not start implementation in the same response, even if the initial request asks for it. Wait for a new user request after the artifacts are presented; then start the apply workflow.
I'll create a change with the artifacts your schema defines. With the default spec-driven schema that is:
specs/<capability-path>/spec.md (what the system must do - a delta, not the main spec)<capability-path> is the spec directory relative to specs/ (for example, user-auth or identity/user-auth). Preserve an existing capability's full path and follow the project's established organization for new capabilities.
When the user is ready to implement, they must start the apply workflow explicitly.
Repository root: Work only in the current RIPDPI checkout. Do not select or register OpenSpec stores. Run every CLI lookup through ./taskctl openspec cli from the repository root.
Input: The user's request should include a change name (kebab-case) OR a description of what they want to build.
Steps
Understand the request and clarify material ambiguity
If no clear input is provided, ask the user (open-ended, no preset options):
"What change do you want to work on? Describe what you want to build or fix."
From their description, derive a kebab-case name (e.g., "add user authentication" → add-user-auth).
IMPORTANT: Do NOT proceed without understanding what the user wants to build.
If the request contains ambiguity that would materially affect scope, externally observable behavior, compatibility, or acceptance criteria, ask the user before creating the change. For minor details, make a reasonable assumption and record it in the planning artifacts.
Determine the workflow schema
Use the configured default schema unless the user explicitly requests a different workflow.
Use a different schema only if the user:
--schema <schema-name>./taskctl openspec cli context --json from the current working directory. If the user explicitly selected a registered store, use ./taskctl openspec cli context --json --store "<store-id>". Then run ./taskctl openspec cli schemas --json with its working directory set to the returned root.path and let them choose. This preserves roots selected by a local store: pointer or the global defaultStore; schemas does not accept --store. If context reports only no_openspec_root, run ./taskctl openspec cli schemas --json from the current working directory instead. Do not use this fallback for invalid or unavailable stores.Otherwise, omit --schema to preserve the configured default.
Create the change directory
Choose one schema form below. If a registered store is selected, append --store "<store-id>" to that command and each later OpenSpec command shown below that accepts --store.
Using the configured default:
./taskctl openspec cli new change "<name>"
Using an explicitly requested schema:
./taskctl openspec cli new change "<name>" --schema "<schema-name>"
This creates a scaffolded change in the planning home resolved by the CLI with .openspec.yaml.
Get the artifact build order
./taskctl openspec cli status --change "<name>" --json
Parse the JSON to get:
applyRequires: array of artifact IDs needed before implementation (e.g., ["tasks"])artifacts: list of all artifacts, each with its status and its requires edges (the artifact IDs it directly depends on)planningHome, changeRoot, artifactPaths, and actionContext: path and scope context. Use these instead of assuming repo-local paths.Create every artifact in the required set
Use a todo list to track progress through the artifacts.
Loop through artifacts in dependency order (artifacts with no pending dependencies first):
a. For each artifact that is ready (dependencies satisfied):
./taskctl openspec cli instructions <artifact-id> --change "<name>" --json
context: Project background (constraints for you - do NOT include in output)rules: Artifact-specific rules (constraints for you - do NOT include in output)template: The structure to use for your output fileinstruction: Schema-specific guidance for this artifact typeskipped/warning: present when the change declares skip_specs and this artifact must NOT be created - stop and pick another artifactresolvedOutputPath: Resolved path or pattern to write the artifactdependencies: Completed artifacts to read for contextinstruction field delegates creation to a specific skill or command, invoke it to produce the artifact instead of writing the file yourself, then verify the artifact file exists at resolvedOutputPathtemplate as the structure and write it to resolvedOutputPath. If resolvedOutputPath is a glob, follow instruction to choose the concrete file pathcontext and rules as constraints - but do NOT copy them into the fileb. Continue until every artifact in the required set exists (not just apply.requires)
./taskctl openspec cli status --change "<name>" --jsonapplyRequires plus every artifact reachable from those by following the requires edges in status --json - walk them transitively (spec-driven closes over proposal, specs, design, tasks). Leave artifacts outside that set alonestatus is file-existence only, so an applyRequires artifact reading done does NOT mean its dependencies exist - writing tasks.md early marks tasks done while specs was never written. Use each artifact's requires edges, not its status, to build the required set: a done artifact still lists what it depends onstatus: "skipped" is satisfied: the change declares skip_specs in .openspec.yaml, so its files must NOT exist. Never try to create onestatus already reports it skipped, or when its own instruction says it is conditional: run ./taskctl openspec cli instructions <artifact-id> --change "<name>" --json and skip only if its instruction field marks it optional (e.g. "create only if..."). Spec-driven's design.md qualifies; specs qualifies only via the skipped status above, never by your own judgment. Tell the user, and do not reconsider itblocked only because you skipped a conditional dependency, write it anywaydone, skipped, or was deliberately skippedc. If an artifact requires user input (unclear context):
Show final status
./taskctl openspec cli status --change "<name>"
Output
After completing all artifacts, summarize:
$openspec-apply-change (Codex) or /openspec-apply-change (other agents) or ask me to apply this change."Artifact Creation Guidelines
instruction field from ./taskctl openspec cli instructions for each artifact type - it is the authoritative guidance, even for familiar artifact namesinstruction field directs you to use a specific skill or command to create the artifact, invoke it instead of writing the artifact directlytemplate as the structure for your output file - fill in its sectionscontext and rules are constraints for YOU, not content for the file
<context>, <rules>, <project_context> blocks into the artifactGuardrails
apply.requiresまだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
RIPDPI's own Compose conventions: ViewModel pattern, Route/Screen split, DataStore->StateFlow, RipDpiThemeTokens. Use for how this app does Compose, not generic Compose API questions (see compose).
日本語の概要は準備中です。原文の説明を表示しています。
ADB-based RIPDPI device/emulator debugging: build/install/launch, logcat filtering, fixture port-forwarding, instrumented tests, crash/ANR triage. Use when debugging on a real device or emulator.
日本語の概要は準備中です。原文の説明を表示しています。
RIPDPI Appium launch-contract reference: start routes and permission/service/data presets. Use when a test launches to the wrong screen or a new automation route is added. General flakiness: appium-test-debug.
日本語の概要は準備中です。原文の説明を表示しています。
RIPDPI Appium test authoring: page objects, resource-id locators, assertions, wait tiers. Use when writing a new Appium test or page object, or adding coverage for a new screen.
日本語の概要は準備中です。原文の説明を表示しています。
RIPDPI Appium failure triage: flaky tests, locator/session/wait issues, screenshot and element-tree debugging. Use when an Appium test fails or is flaky.
日本語の概要は準備中です。原文の説明を表示しています。
Add or modify a GitHub Actions job. Use when editing a file under .github/workflows/. Not for running a workflow locally (local-ci-act) or release signing (release-signing).
日本語の概要は準備中です。原文の説明を表示しています。