Skip to content
Back to skills

Hermetic Speckit

ASecurity

Build software using isolated container-use environments with SpecKit workflow. Use when user needs to build a feature, application, or complex task that benefits from spec-driven development. Keywords: build, create, implement, feature, app, application, spec, plan, hermetic, isolated, dagger.

  • 666 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 9, 2026
developmentpythonbashrefactoringgitapi

Works with

  • cli
  • api
  • mcp

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill hermetic-speckit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Hermetic Speckit?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Hermetic Speckit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-hermetic-speckit/badge)](https://www.skillsdirectory.com/skills/majiayu000-hermetic-speckit)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: Hermetic SpecKit
description: Build software using isolated container-use environments with SpecKit workflow. Use when user needs to build a feature, application, or complex task that benefits from spec-driven development. Keywords: build, create, implement, feature, app, application, spec, plan, hermetic, isolated, dagger.
---

# Hermetic SpecKit Skill

This skill provides hermetic, isolated development environments using Dagger container-use with GitHub SpecKit workflow for spec-driven development.

## Architecture

```
User Prompt → Main Claude (Orchestrator)
                    │
                    ├─► Create container-use environment
                    │
                    └─► Spawn subagents for SpecKit phases:
                        1. /speckit.specify → spec.md
                        2. /speckit.clarify → (orchestrator responds)
                        3. /speckit.plan → plan.md
                        4. /speckit.tasks → tasks.md
                        5. /speckit.analyze → validation
                        │
                        └─► Report to user for approval
                              │
                              └─► Fan out implementation to parallel envs
```

## Variables

- **REPO_SOURCE**: The absolute path to the current repository
- **ENVIRONMENT_PREFIX**: `speckit-` (prefix for environment names)

## Prerequisites

container-use MCP server must be configured:
```bash
claude mcp add container-use -- container-use stdio
```

## MCP Tools (container-use)

| Tool | Purpose |
|------|---------|
| `environment_create` | Create isolated git worktree environment |
| `environment_config` | Configure base image and setup commands |
| `environment_run_cmd` | Execute commands in container |
| `environment_file_write` | Write files (auto-committed) |
| `environment_file_read` | Read files from environment |
| `environment_list` | List existing environments |
| `environment_open` | Open existing environment |

## Critical Rules

1. **ALWAYS use container-use MCP for ALL file/code operations** - Never use local filesystem tools
2. **DO NOT use git CLI** - container-use handles git automatically
3. **Capture environment ID** - Store in context, use for all subsequent operations
4. **Report access commands** - Always tell user: `container-use checkout <env_id>`

## Workflow

### Phase 1: Environment Setup

When user requests a complex build task:

1. **Create environment**:
   ```
   environment_create(
       environment_source=REPO_SOURCE,
       title="<descriptive task name>"
   )
   ```

2. **Configure for Python** (if needed):
   ```
   environment_config(
       environment_id=<env_id>,
       config={
           "base_image": "python:3.12-slim",
           "setup_commands": ["pip install --upgrade pip"]
       }
   )
   ```

3. **Capture the environment ID** in your context

### Phase 2: SpecKit Specification

Spawn a subagent (or run inline) to execute SpecKit phases:

**Step 2.1: Specify**
- Generate `.specify/spec.md` with the feature specification
- Include: What, Why, User Stories, Success Metrics
- Write using `environment_file_write`

**Step 2.2: Clarify (Self-Response)**
- Read the spec and identify ambiguities
- Generate clarifying questions
- **Orchestrator responds** to questions (not user)
- Update spec with clarifications

**Step 2.3: Plan**
- Generate `.specify/plan.md` with implementation plan
- Include: Architecture, Data Model, API Contracts, File Structure
- Reference the constitution if it exists

**Step 2.4: Tasks**
- Generate `.specify/tasks.md` with atomic tasks
- Mark parallel-safe tasks with `[P]`
- Ensure each task is < 4 hours of work
- Include file paths and dependencies

**Step 2.5: Analyze**
- Cross-check spec.md, plan.md, tasks.md for consistency
- Flag any gaps or conflicts
- Update artifacts as needed

### Phase 3: User Checkpoint

**STOP and report to user:**

```
SpecKit artifacts ready for review:

Environment: <env_id>
Branch: container-use/<env_id>

To review:
- container-use checkout <env_id>
- container-use diff <env_id>

Generated artifacts:
- .specify/spec.md - Feature specification
- .specify/plan.md - Implementation plan
- .specify/tasks.md - Task breakdown

Proceed with implementation? [Y/n]
```

Wait for user approval before implementation.

### Phase 4: Implementation (Fan-Out)

For each task in tasks.md:

1. **Identify parallel tasks** (marked with `[P]`)

2. **Create environment per task**:
   ```
   environment_create(
       environment_source=REPO_SOURCE,
       title="Task: <task description>"
   )
   ```

3. **Execute task** via subagent:
   - Read task details from tasks.md
   - Write code using `environment_file_write`
   - Run tests using `environment_run_cmd`
   - Iterate until tests pass

4. **Mark complete** in tasks.md when tests pass

5. **Report environment** to user:
   ```
   Task complete: <task description>
   View: container-use checkout <task_env_id>
   ```

### Phase 5: Final Report

After all tasks complete:

```
Implementation complete!

Environments created:
- <main_env_id> (SpecKit artifacts)
- <task1_env_id> (Task 1 implementation)
- <task2_env_id> (Task 2 implementation)
...

To merge all work:
1. container-use checkout <main_env_id>
2. Review each task branch
3. Merge as desired

To clean up:
- Environments persist until manually deleted
```

## Examples

### Example 1: Build a REST API

**User**: "Build a REST API for user authentication with JWT"

**Orchestrator**:
1. Creates environment: `speckit-auth-api`
2. Spawns subagent for SpecKit phases
3. Generates spec.md, plan.md, tasks.md
4. Reports to user for approval
5. Fans out to: `task-1-models`, `task-2-routes`, `task-3-jwt`
6. Each subagent implements in parallel
7. Reports all environments to user

### Example 2: Refactor a Module

**User**: "Refactor the payment module to use the strategy pattern"

**Orchestrator**:
1. Creates environment: `speckit-payment-refactor`
2. Reads existing code via `environment_file_read`
3. Generates refactoring spec and plan
4. Tasks breakdown by component
5. Implements with tests

## Troubleshooting

**"Container not found"**:
- Verify environment exists: `environment_list`
- Re-create if needed: `environment_create`

**"Python not found"**:
- Configure base image: `environment_config` with `python:3.12-slim`

**"Changes not showing"**:
- All changes auto-commit to branch
- Use `container-use checkout <env_id>` to view

## References

- [Container-Use Architecture](../../../docs/container-use-architecture.md)
- [Architecting Robust Agentic Systems](../../../docs/Architecting%20Robust%20Agentic%20Systems%3A%20Integrating%20S....md)
- [dagger/container-use](https://github.com/dagger/container-use)
- [github/spec-kit](https://github.com/github/spec-kit)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.