Installs into .claude/skills of the current project.
Are you the author of Alignfirst?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/majiayu000-alignfirst-claude-skill-registry-data)
---
name: alignfirst
description: 'Choose the appropriate protocol based on the task:'
---
---
name: alignfirst
description: Collaborative problem-solving protocols: write technical specifications (spec, or alspec), create implementation plans (plan, or alplan), or use Align-and-Do Protocol (AAD). Also generates PR/MR descriptions (aldescription).
license: CC0 1.0
metadata:
author: Paleo
version: "2.1.8"
repository: https://github.com/paleo/alignfirst
---
# AlignFirst Guide
## Protocols
Choose the appropriate protocol based on the task:
- **Technical Specification** (_spec_, or _alspec_): Read [spec-protocol.md](spec-protocol.md) to write a technical specification
- **Implementation Plans** (_plan_, or _alplan_): Read [plan-protocol.md](plan-protocol.md) to create implementation plans from a spec
- **Align-and-Do Protocol** (_AAD_): Read [do-protocol.md](do-protocol.md) for smaller tasks without formal spec/plans
- **Description** (_aldescription_): Read [description-protocol.md](description-protocol.md) to write a description summarizing implemented work
## TASK_DIR Location
**TASK_DIR** is the directory where work files related to a task are stored. Usually, we use **TASK_DIR** = `_plans/{TICKET_ID}/` (a sub-directory of the `_plans` folder). If no ticket ID is known, ask the user for it.
- Create TASK_DIR if it doesn't exist
- Or, list existing files
## File Naming Convention
Format: `{CYCLE_LETTER}{FILE_NUMBER}-{FILE_TYPE}.md`
**Common file types:**
- `spec` - technical specification
- `plan` - implementation plan
- `AAD.summary` - AAD summary document
**Example structure:**
```text
_plans/
├── 123/
│ ├── A1-spec.md
│ ├── A2-plan.md
│ └── A3-AAD.summary.md
│ └── B1-spec.md
```
## Notes
- **TICKET_ID** is a unique identifier for the task, often an issue or ticket number.
- Cycles are identified by a **CYCLE_LETTER** (A, B, C...). The user decides when to start a new one.
- In a cycle, determine the next **FILE_NUMBER** from existing file names. Every new file must have a bumped file number.
- Do not bother the user with CYCLE_LETTER or FILE_NUMBER. They are for internal organization. It's up to you to list the files and determine the last CYCLE_LETTER and FILE_NUMBER. Start CYCLE_LETTER with `A` if there is no existing cycle, and FILE_NUMBER with `1`. So you just need to ask for a **ticket ID** if you don't have one.
- When the user requests a new cycle: bump CYCLE_LETTER and reset FILE_NUMBER.
- There is no strict sequence of file types in the workflow. Available file types are also flexible; if you need a new one, just create it.