skills/sillsdev/fieldworks/openspec-beads-import

openspec-beads-import

SKILL.md

OpenSpec to Beads Import

Import OpenSpec tasks into Beads with full context so each issue is self-contained and survives conversation compaction.

Prerequisites

  • OpenSpec change exists with completed tasks.md artifact
  • Beads initialized in repo (bd prime works)
  • Change has been validated (don't import unvalidated specs!)

Input

Specify change name, or omit to auto-select from active changes.

Steps

1. Identify the Change

If change name provided, use it. Otherwise:

openspec list --json

Select the change and announce: "Importing tasks from change: <name>"

2. Read OpenSpec Artifacts

Read all available artifacts to build context:

openspec status --change "<name>" --json

Read these files:

  • openspec/changes/<name>/proposal.md - High-level description
  • openspec/changes/<name>/specs/*.md - Detailed specifications
  • openspec/changes/<name>/design/*.md - Implementation approach
  • openspec/changes/<name>/tasks.md - Task list to import

3. Create Epic for the Change

bd create "<change-name>: <short description>" -t epic -p 1 \
  -l "openspec:<change-name>" \
  -d "## OpenSpec Change: <change-name>

**Proposal:** openspec/changes/<change-name>/proposal.md

## Summary
<one paragraph from proposal>

## Key Specs
<list spec files with one-line descriptions>

## Design Approach
<one paragraph from design>

## Tasks
See child issues labeled \`openspec:<change-name>\`

## Files Affected
<list primary files/folders from specs>"

Record the epic ID for use as parent reference.

4. Import Each Task

For EACH task in tasks.md:

Parse the task to extract:

  • Task description
  • Priority (default 2 for features, 1 for blockers)
  • Which spec/design sections apply
  • File paths mentioned or implied

Create with FULL context:

bd create "<task title>" -t task -p <priority> \
  -l "openspec:<change-name>" \
  -d "## Spec Reference
openspec/changes/<change-name>/tasks.md - Task N of M

## Parent Epic
<epic-id>: <epic-title>

## Requirements
<copy relevant requirements from specs>
<be specific - include file paths, method names, patterns>

## Acceptance Criteria
<from spec or design>
- [ ] <specific testable criteria>
- [ ] <another criteria>

## Technical Context
<from design and domain knowledge>
- Files: <specific paths>
- Dependencies: <what must be done first>
- Testing: <what tests to write/run>

## FieldWorks Notes
<relevant domain context>
- Build phase: <native|managed|both>
- Related AGENTS.md: <paths if applicable>"

5. Establish Dependencies

If tasks have order dependencies:

bd dep add <later-task-id> --blocks <earlier-task-id>

Common dependency patterns:

  • Native (C++) tasks before managed (C#) tasks that depend on them
  • Interface definitions before implementations
  • Core utilities before consumers

6. Summary

Display:

## Import Complete: <change-name>

**Epic:** <epic-id>
**Tasks Created:** N issues

### Task Overview
| ID | Title | Priority | Dependencies |
|----|-------|----------|--------------|
| <id> | <title> | <priority> | <deps or "none"> |

### Next Steps
1. Run `bd ready` to see unblocked tasks
2. Pick a task and run `bd show <id>` for full context
3. When implementing: `bd update <id> --status in_progress`
4. Keep tasks.md in sync: mark `[x]` when completing bd issues

### Quick Commands
\`\`\`bash
bd ready                          # What can I work on?
bd show <id>                      # Full task context
bd update <id> --status in_progress  # Start work
bd close <id> --reason "done"     # Complete task
\`\`\`

Guardrails

  • NEVER create issues without full context - Each issue must be independently workable
  • NEVER skip the acceptance criteria - Copy from spec, don't summarize
  • Include file paths - Agents need to know WHERE to look
  • Mark build phase - Native vs managed matters in FieldWorks
  • Ask for clarification if a task is too vague to create proper context

The Self-Contained Test

Before creating each issue, ask: "Could an agent implement this correctly with ONLY the bd description and access to the codebase, even after conversation compaction?"

If NO → add more context.

Example Output

## Import Complete: add-retry-logic

**Epic:** bd-47
**Tasks Created:** 4 issues

| ID | Title | Priority | Dependencies |
|----|-------|----------|--------------|
| bd-48 | Add Retrier utility class | 2 | none |
| bd-49 | Wrap FLExBridge calls with retry | 2 | bd-48 |
| bd-50 | Add retry tests | 2 | bd-49 |
| bd-51 | Update logging for retry events | 3 | bd-48 |

Run `bd ready` to start working!
Weekly Installs
1
GitHub Stars
103
First Seen
Mar 1, 2026
Installed on
amp1
cline1
opencode1
cursor1
continue1
kimi-cli1