Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ CODE_OF_CONDUCT.md @awslabs/aidlc-admins
CONTRIBUTING.md @awslabs/aidlc-admins
LICENSE @awslabs/aidlc-admins
README.md @awslabs/aidlc-admins
plugins/ @awslabs/aidlc-admins @awslabs/aidlc-maintainers
scripts/ @awslabs/aidlc-admins @awslabs/aidlc-maintainers

## Secure the CODEOWNERS file
Expand Down
4 changes: 4 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ documentation:
- '**/*.md'
- '!aidlc-rules/**'

plugin:
- changed-files:
- any-glob-to-any-file: 'plugins/**'

github:
- changed-files:
- any-glob-to-any-file: '.github/**'
19 changes: 19 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,22 @@ jobs:
- uses: DavidAnson/markdownlint-cli2-action@ce4853d43830c74c1753b39f3cf40f71c2031eb9 #v23.0.0
with:
globs: "**/*.md"

plugin-sync:
name: Plugin Sync Check
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: '3.x'
- name: Regenerate plugins (Claude Code + Cursor)
run: python scripts/build-plugins.py
- name: Check for drift
run: |
if ! git diff --exit-code plugins/; then
echo "::error::Plugin output is out of sync with aidlc-rules/. Run 'python scripts/build-plugins.py' and commit the result."
exit 1
fi
3 changes: 3 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ aidlc-rules/
├── construction/ # Design and implementation rules
├── extensions/ # Optional cross-cutting constraint rules
└── operations/ # Deployment and monitoring rules
plugins/claude-code-aidlc/ # Claude Code plugin (GENERATED — do not edit directly)
plugins/cursor-aidlc/ # Cursor rules bundle (GENERATED — do not edit directly)
scripts/build-plugins.py # Generator: aidlc-rules/ → plugins/{claude-code,cursor}-aidlc/
scripts/aidlc-evaluator/ # Python evaluation framework (uv-managed)
docs/
├── ADMINISTRATIVE_GUIDE.md # CI/CD, workflows, secrets, release process
Expand Down
23 changes: 23 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,29 @@ aidlc-rules/
└── operations/
```

### Generated Plugins — Do Not Edit Directly

The `plugins/` directory contains generated plugin packages for Claude Code
(`plugins/claude-code-aidlc/`) and Cursor (`plugins/cursor-aidlc/`). Both are
produced by `scripts/build-plugins.py` from the canonical `aidlc-rules/`
source. Do not edit files in `plugins/` directly — your changes will be
overwritten and CI will reject the PR.

To update plugin content:

1. Edit the source files in `aidlc-rules/`
2. Run `python scripts/build-plugins.py` to regenerate both plugins
3. Commit both the source changes and the regenerated plugin output

To build only one target during development:

```bash
python scripts/build-plugins.py --target cc # Claude Code only
python scripts/build-plugins.py --target cursor # Cursor only
```

CI runs the generator and checks `git diff --exit-code plugins/` — if the committed output doesn't match the regenerated result, the PR fails.

### Rule Structure

Rules are organized by phase:
Expand Down
50 changes: 42 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,9 +162,31 @@ To verify the rules are loaded:

AI-DLC uses [Cursor Rules](https://cursor.com/docs/context/rules) to implement its intelligent workflow.

The commands below assume you extracted the zip to your `Downloads` folder. If you used a different location, replace `Downloads` with your actual folder path.
#### Option 1: Copy Generated Rules (Recommended)

Copy the pre-built `.mdc` rules from this repository into your project:

```bash
# From a clone of this repo, at the repo root:
mkdir -p /path/to/your/project/.cursor/rules
cp -R plugins/cursor-aidlc/rules/* /path/to/your/project/.cursor/rules/
```

#### Option 1: Project Rules (Recommended)
Open the project in Cursor — it picks up the rules automatically. The
`aidlc-orchestrator.mdc` rule is set to `alwaysApply: true`, so it loads
on every interaction. Just describe your task and the orchestrator routes
to the appropriate phase rules.

See `plugins/cursor-aidlc/README.md` for details on the generated rule
structure and alternative install methods (Remote Rules via GitHub).

> **Note:** If you previously set up AI-DLC manually (Option 2 below),
> remove the manual `.cursor/rules/ai-dlc-workflow.mdc` and the
> `.aidlc-rule-details/` directory to avoid duplicate context.

#### Option 2: Project Rules (Manual, from Zip)

The commands below assume you extracted the zip to your `Downloads` folder. If you used a different location, replace `Downloads` with your actual folder path.

**Unix/Linux/macOS:**

Expand Down Expand Up @@ -223,7 +245,7 @@ mkdir .aidlc-rule-details
xcopy "%USERPROFILE%\Downloads\aidlc-rules\aws-aidlc-rule-details" ".aidlc-rule-details\" /E /I
```

#### Option 2: AGENTS.md (Simple Alternative)
#### Option 3: AGENTS.md (Simple Alternative)

**Unix/Linux/macOS:**

Expand Down Expand Up @@ -257,7 +279,7 @@ xcopy "%USERPROFILE%\Downloads\aidlc-rules\aws-aidlc-rule-details" ".aidlc-rule-

![AI-DLC Rules in Cursor](./assets/images/cursor-ide-aidlc-rules-loaded.png?raw=true "AI-DLC Rules in Cursor")

**Directory Structure (Option 1):**
**Directory Structure (Option 2):**

```text
<my-project>/
Expand Down Expand Up @@ -361,11 +383,23 @@ xcopy "%USERPROFILE%\Downloads\aidlc-rules\aws-aidlc-rule-details" ".aidlc-rule-

### Claude Code

AI-DLC uses Claude Code's project memory file (`CLAUDE.md`) to implement its intelligent workflow.
#### Option 1: Plugin Install (Recommended)

The commands below assume you extracted the zip to your `Downloads` folder. If you used a different location, replace `Downloads` with your actual folder path.
Install AI-DLC as a Claude Code plugin — no file copying, no `CLAUDE.md` overwrite, and versioned updates:

```bash
claude plugin install --from https://github.com/awslabs/aidlc-workflows/tree/main/plugins/claude-code-aidlc
```

#### Option 1: Project Root (Recommended)
Once installed, use `/aidlc` to start a new workflow or resume an existing one. Phase-specific commands are also available: `/aidlc:inception`, `/aidlc:construction`, `/aidlc:operations`.

> **Note:** If you previously set up AI-DLC manually (copied `core-workflow.md` to `CLAUDE.md`), remove the manual setup to avoid duplicate context. Delete `CLAUDE.md` (if it only contains AIDLC content) and the `.aidlc-rule-details/` directory from your project.

#### Option 2: Project Root (Manual)

AI-DLC can also be set up manually using Claude Code's project memory file (`CLAUDE.md`).

The commands below assume you extracted the zip to your `Downloads` folder. If you used a different location, replace `Downloads` with your actual folder path.

**Unix/Linux/macOS:**

Expand All @@ -391,7 +425,7 @@ mkdir .aidlc-rule-details
xcopy "%USERPROFILE%\Downloads\aidlc-rules\aws-aidlc-rule-details" ".aidlc-rule-details\" /E /I
```

#### Option 2: .claude Directory
#### Option 3: .claude Directory (Manual)

**Unix/Linux/macOS:**

Expand Down
7 changes: 7 additions & 0 deletions plugins/claude-code-aidlc/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"name": "aidlc",
"version": "0.1.8",
"description": "AI-Driven Development Life Cycle \u2014 structured adaptive workflow for software development with AI coding agents",
"repository": "https://github.com/awslabs/aidlc-workflows",
"license": "Apache-2.0"
}
33 changes: 33 additions & 0 deletions plugins/claude-code-aidlc/.markdownlint-cli2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# markdownlint overrides for aidlc-rules/ (LLM prompt files)
# These rules are temporarily disabled pending incremental remediation.
# Each rule is re-enabled in a separate PR after fixing its violations.
# See PR #159 for the full remediation plan ordered by LLM prompt impact.

config:
# --- Tier 1: Zero prompt impact (invisible whitespace) ---
MD009: false # no-trailing-spaces (9 violations)
MD012: false # no-multiple-blanks (2 violations)
MD047: false # single-trailing-newline (4 violations)

# --- Tier 2: Zero prompt impact (formatting normalization) ---
MD029: false # ol-prefix (1 violation)
MD026: false # no-trailing-punctuation (17 violations)

# --- Tier 3: Zero prompt impact (blank line structure) ---
MD022: false # blanks-around-headings (274 violations)
MD032: false # blanks-around-lists (426 violations)
MD031: false # blanks-around-fences (31 violations)

# --- Tier 4: Minimal prompt impact (table/URL formatting) ---
MD060: false # table-column-style (34 violations)

# --- Tier 5: Low prompt impact (structural cosmetic) ---
MD046: false # code-block-style (8 violations)
MD007: false # ul-indent (34 violations)

# --- Tier 6: Needs review (adds content or changes structure) ---
MD040: false # fenced-code-language (18 violations)
MD025: false # single-title (13 violations)

# --- Plugin-specific overrides ---
MD041: false # first-line-heading — plugin files use YAML frontmatter
156 changes: 156 additions & 0 deletions plugins/claude-code-aidlc/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
# AI-DLC Claude Code Plugin

AI-Driven Development Life Cycle (AI-DLC) packaged as a Claude Code plugin.
Provides an adaptive three-phase software development workflow (Inception,
Construction, Operations) driven by an orchestrator agent, phase-specific slash
commands, and progressive-disclosure skills.

**Version**: 0.1.8
**Source of truth**: `aidlc-rules/` in this repository
**Generator**: `scripts/build-cc-plugin.py`
Comment thread
rsmets marked this conversation as resolved.
Outdated

> This directory is **generated**. Do not edit files here directly — edit the
> canonical sources in `aidlc-rules/` and run the generator. CI enforces sync.

## What You Get

| Component | Purpose |
| ---------------------------- | ------------------------------------------------------------ |
| `/aidlc` | Start or resume an AI-DLC workflow |
| `/aidlc:inception` | Start or resume the Inception phase |
| `/aidlc:construction` | Start or resume the Construction phase |
| `/aidlc:operations` | Start or resume the Operations phase (placeholder) |
| `aidlc-orchestrator` agent | Drives the three-phase workflow, detects phase from state |
| `aidlc-core-workflow` skill | Master workflow definition |
| `aidlc-inception` skill | Inception phase rules (workspace detection, requirements, …) |
| `aidlc-construction` skill | Construction phase rules (design, NFR, code generation, …) |
| `aidlc-operations` skill | Operations phase rules (placeholder) |
| `aidlc-common` skill | Cross-cutting rules (terminology, depth, error handling, …) |
| `aidlc-security-baseline` | Opt-in security extension |
| `aidlc-property-testing` | Opt-in property-based testing extension |

## Installing

### For Development (Local Path)

Use `--plugin-dir` to load the plugin from a local path for a single session.
This is the fastest way to iterate on plugin changes without publishing.

```bash
# From a clone of this repo, at the repo root:
claude --plugin-dir ./plugins/claude-code-aidlc
```

The flag is repeatable for loading multiple plugins side-by-side:

```bash
claude --plugin-dir ./plugins/claude-code-aidlc --plugin-dir ../other-plugin
```

Inside the session, use `/reload-plugins` to pick up changes without
restarting Claude Code.

### For Persistent Local Install (Development)

Add this repo as a local marketplace, then install the plugin from it:

```bash
# Register the repo as a marketplace (persists across sessions)
claude plugin marketplace add /absolute/path/to/aws-aidlc-workflows

# Install the aidlc plugin
claude plugin install aidlc
```

Scope the install with `--scope user|project|local` if needed (defaults to
`user`).

### For End Users (Git Install)

Once published, users install directly from the repository:

```bash
claude plugin marketplace add https://github.com/awslabs/aidlc-workflows
claude plugin install aidlc
```

## Using the Plugin

After installation, start or resume a workflow:

```text
/aidlc
```

With no argument, the orchestrator detects existing AIDLC state in the
workspace (via `aidlc-docs/aidlc-state.md`) and either resumes or shows the
welcome message. You can also provide an initial request:

```text
/aidlc build a REST API for order management
```

Target a specific phase:

```text
/aidlc:inception
/aidlc:construction
/aidlc:operations
```

## How It Works

1. The orchestrator agent detects current phase from workspace state
2. It loads the appropriate phase skill (`aidlc-inception`,
`aidlc-construction`, or `aidlc-operations`) on demand
3. Each skill's `references/` directory contains the rule-detail files —
loaded lazily as the workflow progresses
4. The `aidlc-common` skill provides cross-cutting rules (terminology,
question formatting, error handling) referenced throughout
5. Extension skills (`aidlc-security-baseline`, `aidlc-property-testing`) are
loaded only when the user opts in during Requirements Analysis

All rule content is bundled with the plugin — no workspace file copies
required.

## Contributing

Do not edit files in this directory directly. Edit the canonical source in
`aidlc-rules/` at the repository root, then regenerate:

```bash
python scripts/build-cc-plugin.py
```
Comment thread
rsmets marked this conversation as resolved.

CI (`plugin-sync` job) runs the generator on every PR and fails if the
committed output drifts from the source.

## Structure

```text
plugins/claude-code-aidlc/
├── .claude-plugin/
│ └── plugin.json # Plugin manifest (name, version, metadata)
├── agents/
│ └── aidlc-orchestrator.md # Orchestrator agent definition
├── commands/
│ ├── aidlc.md # /aidlc entry command
│ ├── aidlc-inception.md # /aidlc:inception
│ ├── aidlc-construction.md # /aidlc:construction
│ └── aidlc-operations.md # /aidlc:operations
└── skills/
├── aidlc-core-workflow/
├── aidlc-inception/
├── aidlc-construction/
├── aidlc-operations/
├── aidlc-common/
├── aidlc-security-baseline/
└── aidlc-property-testing/
```

Each skill contains a `SKILL.md` and a `references/` subdirectory with the
bundled rule-detail files.

## License

Apache-2.0 — see [LICENSE](../../LICENSE).
Loading
Loading