maurao-method 0.0.0-stage → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.clinerules/maurao-method.md +6 -0
- package/.cursor/rules/maurao-method.mdc +7 -0
- package/.github/copilot-instructions.md +6 -0
- package/.github/workflows/ci.yml +39 -0
- package/.github/workflows/publish.yml +32 -0
- package/.github/workflows/release-on-main.yml +87 -0
- package/.maurao/README.md +13 -0
- package/.maurao/config.json +17 -0
- package/AGENTS.md +30 -0
- package/CLAUDE.md +6 -0
- package/GEMINI.md +6 -0
- package/README.md +110 -2
- package/bin/maurao.mjs +218 -0
- package/commands/debug.md +4 -0
- package/commands/discover.md +4 -0
- package/commands/map.md +4 -0
- package/commands/plan.md +4 -0
- package/commands/pr.md +4 -0
- package/commands/review.md +4 -0
- package/commands/specify.md +4 -0
- package/commands/spike.md +4 -0
- package/commands/verify.md +4 -0
- package/docs/artifact-contract.md +22 -0
- package/docs/commands.md +32 -0
- package/docs/method-overview.md +32 -0
- package/docs/npm-release.md +68 -0
- package/docs/portable-adapters.md +26 -0
- package/docs/project-modes.md +33 -0
- package/docs/specification-standard.md +25 -0
- package/docs/tool-support.md +24 -0
- package/docs/workflow.md +45 -0
- package/package.json +42 -4
- package/skills/core/architecture/SKILL.md +16 -0
- package/skills/core/brownfield-analysis/SKILL.md +20 -0
- package/skills/core/debugging/SKILL.md +32 -0
- package/skills/core/planning/SKILL.md +18 -0
- package/skills/core/product-discovery/SKILL.md +20 -0
- package/skills/core/project-discovery/SKILL.md +32 -0
- package/skills/core/requirements/SKILL.md +13 -0
- package/skills/core/specification/SKILL.md +41 -0
- package/skills/core/spike/SKILL.md +30 -0
- package/skills/core/technology-discovery/SKILL.md +43 -0
- package/skills/practices/code-review/SKILL.md +21 -0
- package/skills/practices/data-migration/SKILL.md +14 -0
- package/skills/practices/observability/SKILL.md +28 -0
- package/skills/practices/observability/checklist.md +11 -0
- package/skills/practices/observability/references/dotnet.md +7 -0
- package/skills/practices/observability/references/java.md +9 -0
- package/skills/practices/observability/references/node.md +7 -0
- package/skills/practices/observability/references/python.md +7 -0
- package/skills/practices/observability/templates/logging-plan.md +16 -0
- package/skills/practices/observability/templates/metrics-plan.md +6 -0
- package/skills/practices/observability/templates/tracing-plan.md +14 -0
- package/skills/practices/pull-request/SKILL.md +17 -0
- package/skills/practices/release-readiness/SKILL.md +20 -0
- package/skills/practices/security/SKILL.md +11 -0
- package/skills/practices/testing/SKILL.md +37 -0
- package/skills/practices/verification/SKILL.md +15 -0
- package/skills/workflows/brownfield-change/SKILL.md +26 -0
- package/skills/workflows/bug-fix/SKILL.md +19 -0
- package/skills/workflows/feature-development/SKILL.md +35 -0
- package/skills/workflows/greenfield-product/SKILL.md +28 -0
- package/technology-packs/dotnet/README.md +6 -0
- package/technology-packs/java/README.md +34 -0
- package/technology-packs/node/README.md +6 -0
- package/technology-packs/python/README.md +6 -0
- package/templates/brownfield-map.md +38 -0
- package/templates/bug-fix.md +36 -0
- package/templates/change-proposal.md +40 -0
- package/templates/decision-record.md +33 -0
- package/templates/feature-spec.md +50 -0
- package/templates/implementation-plan.md +33 -0
- package/templates/product-brief.md +41 -0
- package/templates/pull-request.md +27 -0
- package/templates/spike-report.md +36 -0
- package/templates/system-context.md +36 -0
- package/templates/technology-inventory.md +38 -0
- package/templates/test-plan.md +23 -0
- package/templates/threat-model.md +31 -0
- package/templates/verification-report.md +26 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Artifact contract
|
|
2
|
+
|
|
3
|
+
The project-local `.maurao/` directory is the durable state of the method. Tool adapters and chat history are transport layers; they are not the source of truth.
|
|
4
|
+
|
|
5
|
+
## Required artifacts by depth
|
|
6
|
+
|
|
7
|
+
| Depth | Required artifacts |
|
|
8
|
+
|---|---|
|
|
9
|
+
| L0 | Verification note in the final response |
|
|
10
|
+
| L1 | Specification, implementation plan, test plan, verification report |
|
|
11
|
+
| L2 | System context, change proposal, decision records, test plan, observability plan, verification report |
|
|
12
|
+
| L3 | Product brief, system context, technology inventory, requirements, architecture decisions, delivery increments, threat model, verification and release reports |
|
|
13
|
+
|
|
14
|
+
## Naming
|
|
15
|
+
|
|
16
|
+
- Specifications: `.maurao/specifications/<change-id>.md`
|
|
17
|
+
- Decisions: `.maurao/decisions/ADR-<number>-<slug>.md`
|
|
18
|
+
- Plans: `.maurao/plans/<change-id>.md`
|
|
19
|
+
- Reports: `.maurao/reports/<change-id>-<report-type>.md`
|
|
20
|
+
|
|
21
|
+
Use stable IDs such as `REQ-001`, `AC-001`, `TASK-001`, `TEST-001`, and `THR-001` to preserve traceability.
|
|
22
|
+
|
package/docs/commands.md
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Maurao commands
|
|
2
|
+
|
|
3
|
+
These are tool-independent commands. A tool adapter may expose them as slash commands, chat prompts, or task templates, but the semantics remain the same.
|
|
4
|
+
|
|
5
|
+
| Command | Purpose | Primary mode |
|
|
6
|
+
|---|---|---|
|
|
7
|
+
| `maurao discover` | Understand the problem, users, constraints, and existing context | Greenfield / Brownfield |
|
|
8
|
+
| `maurao map` | Map an existing codebase, system, contracts, and risks | Brownfield |
|
|
9
|
+
| `maurao inspect` | Detect technology evidence and write `.maurao/technology-inventory.md` | Any |
|
|
10
|
+
| `maurao specify` | Create or refine a testable change specification | Any |
|
|
11
|
+
| `maurao design` | Produce architecture, decisions, and trade-offs | L2 / L3 |
|
|
12
|
+
| `maurao plan` | Decompose approved work into ordered, verifiable tasks | Any non-trivial change |
|
|
13
|
+
| `maurao build` | Implement the approved plan using the selected technology pack | Any |
|
|
14
|
+
| `maurao test` | Derive and execute the relevant test strategy | Any |
|
|
15
|
+
| `maurao debug` | Investigate a failure using hypotheses and evidence | Bug fix / incident |
|
|
16
|
+
| `maurao spike` | Answer a bounded technical question through an experiment | Any |
|
|
17
|
+
| `maurao verify` | Map acceptance criteria to executed evidence | Any |
|
|
18
|
+
| `maurao review` | Perform an independent change review | Any reviewable change |
|
|
19
|
+
| `maurao pr` | Prepare a focused pull request | Delivery |
|
|
20
|
+
| `maurao status` | Report artifacts, gate, risks, and remaining work | Any |
|
|
21
|
+
|
|
22
|
+
## Command contract
|
|
23
|
+
|
|
24
|
+
Every command must state:
|
|
25
|
+
|
|
26
|
+
- inputs it read;
|
|
27
|
+
- artifacts it created or changed;
|
|
28
|
+
- decisions it made;
|
|
29
|
+
- validations it executed;
|
|
30
|
+
- blockers and assumptions;
|
|
31
|
+
- the next gate.
|
|
32
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Method Overview
|
|
2
|
+
|
|
3
|
+
Maurao Method treats software development as a sequence of explicit decisions and verifiable outcomes.
|
|
4
|
+
|
|
5
|
+
```text
|
|
6
|
+
Understand → Specify → Plan → Implement → Verify → Review → Deliver
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
The sequence is adaptive. Small, low-risk changes may use a lightweight path. Ambiguous, risky, or cross-cutting changes should use the complete workflow.
|
|
10
|
+
|
|
11
|
+
The method first classifies the project as greenfield, brownfield, or hybrid and then discovers the actual technology stack. This prevents the agent from applying a generic workflow or the wrong framework assumptions to the repository.
|
|
12
|
+
|
|
13
|
+
See [the complete workflow](workflow.md), [project modes](project-modes.md), and [portable commands](commands.md).
|
|
14
|
+
|
|
15
|
+
## Work modes
|
|
16
|
+
|
|
17
|
+
- Feature development: deliver new behavior.
|
|
18
|
+
- Bug fixing: restore intended behavior and add regression protection.
|
|
19
|
+
- Debugging: investigate an observed failure before changing implementation.
|
|
20
|
+
- Spike: answer a bounded technical question without pretending the experiment is production code.
|
|
21
|
+
- Refactoring: improve structure while preserving behavior.
|
|
22
|
+
|
|
23
|
+
## Evidence standard
|
|
24
|
+
|
|
25
|
+
Every completed work item should identify:
|
|
26
|
+
|
|
27
|
+
- what was requested;
|
|
28
|
+
- what changed;
|
|
29
|
+
- what was verified;
|
|
30
|
+
- what remains assumed or unverified;
|
|
31
|
+
- which validation commands were executed and their results.
|
|
32
|
+
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# npm CI/CD
|
|
2
|
+
|
|
3
|
+
The repository has three GitHub Actions workflows:
|
|
4
|
+
|
|
5
|
+
- `ci.yml`: validates pushes and pull requests.
|
|
6
|
+
- `publish.yml`: provides an optional manual OIDC publish path.
|
|
7
|
+
- `release-on-main.yml`: increments the patch version, publishes, tags, and creates a GitHub Release after package changes reach `main`.
|
|
8
|
+
|
|
9
|
+
## One-time setup
|
|
10
|
+
|
|
11
|
+
1. Create or confirm the npm package name.
|
|
12
|
+
2. Ensure the package metadata points to this GitHub repository.
|
|
13
|
+
3. Create an npm access token with permission to publish this package.
|
|
14
|
+
4. In GitHub, open `Settings → Secrets and variables → Actions` and create:
|
|
15
|
+
|
|
16
|
+
```text
|
|
17
|
+
Name: NPM_TOKEN
|
|
18
|
+
Value: <the npm access token>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
5. Create the GitHub environment named `npm`.
|
|
22
|
+
6. If you prefer tokenless publishing, configure npm Trusted Publishing instead. On npmjs.com, open the package settings and add a GitHub Actions Trusted Publisher.
|
|
23
|
+
7. Configure:
|
|
24
|
+
- owner: `luismpenholato`;
|
|
25
|
+
- repository: `maurao-method`;
|
|
26
|
+
- workflow filename: `publish.yml`;
|
|
27
|
+
- environment: `npm`.
|
|
28
|
+
8. Add approval rules to the `npm` environment if you want a human gate before publication.
|
|
29
|
+
|
|
30
|
+
The automatic `release-on-main.yml` workflow uses `NPM_TOKEN`. The tag-based `publish.yml` workflow uses OIDC Trusted Publishing and does not require `NPM_TOKEN`.
|
|
31
|
+
|
|
32
|
+
## Release process
|
|
33
|
+
|
|
34
|
+
For automatic releases, merge a package change into `main`. The workflow will:
|
|
35
|
+
|
|
36
|
+
1. Validate the package and run tests.
|
|
37
|
+
2. Increment the patch version.
|
|
38
|
+
3. Publish the package using `NPM_TOKEN`.
|
|
39
|
+
4. Commit the new `package.json` and `package-lock.json`.
|
|
40
|
+
5. Create a `vX.Y.Z` tag.
|
|
41
|
+
6. Create a GitHub Release with generated notes.
|
|
42
|
+
|
|
43
|
+
For a controlled manual release, update the version and create a tag:
|
|
44
|
+
|
|
45
|
+
```powershell
|
|
46
|
+
npm version patch
|
|
47
|
+
git push origin main --follow-tags
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
For a minor or major release:
|
|
51
|
+
|
|
52
|
+
```powershell
|
|
53
|
+
npm version minor
|
|
54
|
+
npm version major
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
The release workflow pushes an annotated version tag and creates the GitHub Release after publication. The tag does not trigger a second npm publication.
|
|
58
|
+
|
|
59
|
+
For the optional tokenless path, run `publish.yml` manually after configuring npm Trusted Publishing for the repository and workflow.
|
|
60
|
+
|
|
61
|
+
## Local checks
|
|
62
|
+
|
|
63
|
+
```powershell
|
|
64
|
+
npm run validate
|
|
65
|
+
npm pack --dry-run
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Do not place npm tokens in the repository, workflow file, or `.npmrc` committed to source control.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Portable adapters
|
|
2
|
+
|
|
3
|
+
Maurao Method has one canonical source and thin tool adapters.
|
|
4
|
+
|
|
5
|
+
## Canonical source
|
|
6
|
+
|
|
7
|
+
- Instructions: `AGENTS.md`
|
|
8
|
+
- Skills: `skills/**/SKILL.md`
|
|
9
|
+
- Technology packs: `technology-packs/` (Node.js, .NET, Python, Java, and extensible stacks)
|
|
10
|
+
- Templates: `templates/`
|
|
11
|
+
- Commands: `commands/`
|
|
12
|
+
|
|
13
|
+
## Supported entry points
|
|
14
|
+
|
|
15
|
+
| Tool | Repository entry point | Skills location |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| OpenAI Codex / ChatGPT Codex | `AGENTS.md` | Repository skills, installed as needed |
|
|
18
|
+
| Claude Code | `CLAUDE.md` | `.claude/skills/` or shared Agent Skills directory |
|
|
19
|
+
| Cursor | `.cursor/rules/maurao-method.mdc` | Rules can point to canonical skills |
|
|
20
|
+
| GitHub Copilot | `.github/copilot-instructions.md` | `.github/skills/` or `.agents/skills/` |
|
|
21
|
+
| Gemini CLI | `GEMINI.md` | Context file points to canonical skills |
|
|
22
|
+
| Cline | `.clinerules/maurao-method.md` | Workspace rules point to canonical skills |
|
|
23
|
+
| VS Code agents | `AGENTS.md`, `CLAUDE.md` | Depends on the selected agent |
|
|
24
|
+
|
|
25
|
+
The adapters intentionally stay short. They establish discovery and delegate to the canonical files so behavior does not fork between tools. The installer materializes native skill directories where a tool requires them.
|
|
26
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Project modes
|
|
2
|
+
|
|
3
|
+
## Greenfield
|
|
4
|
+
|
|
5
|
+
Use when the product or subsystem does not have a reliable implementation baseline.
|
|
6
|
+
|
|
7
|
+
1. Define the problem, users, value, and non-goals.
|
|
8
|
+
2. Identify the smallest useful product slice.
|
|
9
|
+
3. Define domain concepts, user journeys, and acceptance criteria.
|
|
10
|
+
4. Choose architecture and technology only after constraints are known.
|
|
11
|
+
5. Create the first vertical slice with tests and operational signals.
|
|
12
|
+
6. Validate with real feedback before expanding scope.
|
|
13
|
+
|
|
14
|
+
Do not create a large platform architecture before the first useful slice proves the important assumptions.
|
|
15
|
+
|
|
16
|
+
## Brownfield
|
|
17
|
+
|
|
18
|
+
Use when an existing product, codebase, API, database, or operational system must be changed.
|
|
19
|
+
|
|
20
|
+
1. Map the current system before proposing a target design.
|
|
21
|
+
2. Identify ownership, boundaries, dependencies, data flows, and undocumented behavior.
|
|
22
|
+
3. Write invariants: behavior that MUST remain unchanged.
|
|
23
|
+
4. Define the delta between current and desired state.
|
|
24
|
+
5. Choose a migration and rollback strategy.
|
|
25
|
+
6. Implement in reversible increments.
|
|
26
|
+
7. Verify both the new behavior and compatibility with the existing behavior.
|
|
27
|
+
|
|
28
|
+
Brownfield work must never treat the specification as the only source of truth. The running system, tests, telemetry, contracts, and user behavior are evidence too.
|
|
29
|
+
|
|
30
|
+
## Hybrid
|
|
31
|
+
|
|
32
|
+
Use when a new product is being introduced into an existing organization or platform. Apply greenfield product framing and brownfield integration mapping together.
|
|
33
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Specification standard
|
|
2
|
+
|
|
3
|
+
## Required sections
|
|
4
|
+
|
|
5
|
+
Every non-trivial change should define:
|
|
6
|
+
|
|
7
|
+
1. Context and problem.
|
|
8
|
+
2. Desired outcome.
|
|
9
|
+
3. Scope and non-goals.
|
|
10
|
+
4. Constraints and invariants.
|
|
11
|
+
5. Behavioral requirements.
|
|
12
|
+
6. Acceptance criteria.
|
|
13
|
+
7. Risks and open decisions.
|
|
14
|
+
8. Verification plan.
|
|
15
|
+
|
|
16
|
+
## Requirement quality
|
|
17
|
+
|
|
18
|
+
Requirements must be observable, testable, and independent of implementation details unless the implementation constraint is intentional.
|
|
19
|
+
|
|
20
|
+
Use MUST for mandatory behavior, SHOULD for a justified default, and MAY for optional behavior.
|
|
21
|
+
|
|
22
|
+
## Traceability
|
|
23
|
+
|
|
24
|
+
Use stable identifiers such as `REQ-001`, `AC-001`, and `TEST-001`. Verification should map acceptance criteria to tests, checks, inspection, or explicit human review.
|
|
25
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Tool and model support
|
|
2
|
+
|
|
3
|
+
## GPT and Codex
|
|
4
|
+
|
|
5
|
+
GPT is the model. Codex is the coding-agent environment that reads the repository, edits files, runs commands, and applies project instructions.
|
|
6
|
+
|
|
7
|
+
Maurao Method supports Codex through the root `AGENTS.md`. It can be used with GPT models selected by Codex because the method is expressed as Markdown skills and repository artifacts, not as model-specific API calls.
|
|
8
|
+
|
|
9
|
+
ChatGPT or the GPT API by itself does not automatically inspect a local repository or execute the method. It needs a host application, agent harness, or integration that provides the repository files and exposes the relevant skills and commands.
|
|
10
|
+
|
|
11
|
+
## Support matrix
|
|
12
|
+
|
|
13
|
+
| Environment | Entry point | Level |
|
|
14
|
+
|---|---|---|
|
|
15
|
+
| OpenAI Codex / ChatGPT Codex | `AGENTS.md` | Native repository instructions |
|
|
16
|
+
| GPT through another agent host | Host-specific adapter | Supported when the host loads the files |
|
|
17
|
+
| Claude Code | `CLAUDE.md`, `.claude/skills/` | Native adapter and skills |
|
|
18
|
+
| Cursor | `.cursor/rules/` | Native rules adapter |
|
|
19
|
+
| GitHub Copilot | `.github/copilot-instructions.md`, `.agents/skills/` | Native instructions and skills |
|
|
20
|
+
| Gemini CLI | `GEMINI.md` | Native context adapter |
|
|
21
|
+
| Cline | `.clinerules/` | Native workspace rules adapter |
|
|
22
|
+
|
|
23
|
+
The portable contract is the same in every environment: read the repository contract, discover the project technology, select the workflow, load only the required skills, and report evidence.
|
|
24
|
+
|
package/docs/workflow.md
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Maurao Method workflow
|
|
2
|
+
|
|
3
|
+
Maurao is an adaptive SDD method. It does not force the same ceremony on a landing page, a payment flow, and a distributed migration.
|
|
4
|
+
|
|
5
|
+
## Lifecycle
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
Discover → Frame → Specify → Design → Plan → Build → Verify → Review → Deliver → Learn
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Each phase has an output and a gate. The agent may move forward only when the gate is satisfied or the remaining uncertainty is explicitly accepted.
|
|
12
|
+
|
|
13
|
+
Choose the lowest level that honestly covers the risk. Increase the level when ambiguity, blast radius, security impact, data migration, or operational consequence increases. Never reduce the level only to avoid creating required evidence.
|
|
14
|
+
|
|
15
|
+
## Depth levels
|
|
16
|
+
|
|
17
|
+
### L0 — Trivial
|
|
18
|
+
|
|
19
|
+
Use for isolated, low-risk changes with obvious behavior. Read the relevant code, make the change, run a focused check, and report evidence.
|
|
20
|
+
|
|
21
|
+
### L1 — Focused change
|
|
22
|
+
|
|
23
|
+
Use for a normal feature or bug fix. Create a short change specification, acceptance criteria, implementation plan, tests, and verification report.
|
|
24
|
+
|
|
25
|
+
### L2 — Complex change
|
|
26
|
+
|
|
27
|
+
Use for cross-module behavior, public APIs, persistence, integrations, security, or operational impact. Add system context, architecture decisions, risk analysis, observability, migration/rollback planning, and independent review.
|
|
28
|
+
|
|
29
|
+
### L3 — Product or system initiative
|
|
30
|
+
|
|
31
|
+
Use for a new product, major subsystem, platform, or high-risk change. Add product framing, domain model, user journeys, non-functional requirements, threat model, delivery increments, and explicit human approval gates.
|
|
32
|
+
|
|
33
|
+
## Gates
|
|
34
|
+
|
|
35
|
+
| Gate | Question | Minimum evidence |
|
|
36
|
+
|---|---|---|
|
|
37
|
+
| Frame | Are we solving the right problem? | Problem, users, outcome, non-goals |
|
|
38
|
+
| Specify | Is the desired behavior unambiguous? | Requirements and acceptance criteria |
|
|
39
|
+
| Design | Is the solution compatible with the system? | Architecture and decisions |
|
|
40
|
+
| Plan | Can the work be implemented and verified incrementally? | Ordered tasks and test plan |
|
|
41
|
+
| Build | Was only the approved scope changed? | Diff and implementation notes |
|
|
42
|
+
| Verify | Does evidence support each acceptance criterion? | Executed checks and verification matrix |
|
|
43
|
+
| Review | Can another engineer challenge the result? | Independent review and findings |
|
|
44
|
+
| Deliver | Can this be released and operated safely? | Rollout, rollback, and observability plan |
|
|
45
|
+
|
package/package.json
CHANGED
|
@@ -1,6 +1,44 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "maurao-method",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "Portable specification-driven engineering method and skills for AI coding agents",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/luismpenholato/maurao-method.git"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/luismpenholato/maurao-method#readme",
|
|
10
|
+
"bugs": {
|
|
11
|
+
"url": "https://github.com/luismpenholato/maurao-method/issues"
|
|
12
|
+
},
|
|
13
|
+
"publishConfig": {
|
|
14
|
+
"registry": "https://registry.npmjs.org"
|
|
15
|
+
},
|
|
16
|
+
"type": "module",
|
|
17
|
+
"bin": {
|
|
18
|
+
"maurao": "bin/maurao.mjs"
|
|
19
|
+
},
|
|
20
|
+
"engines": {
|
|
21
|
+
"node": ">=18"
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"AGENTS.md",
|
|
25
|
+
"CLAUDE.md",
|
|
26
|
+
"GEMINI.md",
|
|
27
|
+
".clinerules",
|
|
28
|
+
".cursor",
|
|
29
|
+
".github",
|
|
30
|
+
".maurao",
|
|
31
|
+
"bin",
|
|
32
|
+
"commands",
|
|
33
|
+
"docs",
|
|
34
|
+
"skills",
|
|
35
|
+
"technology-packs",
|
|
36
|
+
"templates"
|
|
37
|
+
],
|
|
38
|
+
"scripts": {
|
|
39
|
+
"validate": "node bin/maurao.mjs validate",
|
|
40
|
+
"list": "node bin/maurao.mjs list",
|
|
41
|
+
"test": "node --test"
|
|
42
|
+
},
|
|
43
|
+
"license": "MIT"
|
|
44
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: architecture
|
|
3
|
+
description: Make proportionate architecture decisions grounded in the existing codebase and constraints.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Architecture
|
|
7
|
+
|
|
8
|
+
1. Determine project mode and map the current boundaries, dependencies, data flow, and extension points.
|
|
9
|
+
2. Find existing patterns before introducing a new one.
|
|
10
|
+
3. State constraints, alternatives, trade-offs, and rejected options.
|
|
11
|
+
4. Prefer the smallest design that preserves testability, operability, and future change.
|
|
12
|
+
5. Consider security, privacy, accessibility, reliability, performance, operability, and cost as architecture concerns.
|
|
13
|
+
6. Record decisions that affect public interfaces, persistence, deployment, security, or ownership.
|
|
14
|
+
|
|
15
|
+
Do not create abstractions only to avoid a small amount of repetition.
|
|
16
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brownfield-analysis
|
|
3
|
+
description: Analyze an existing codebase and running system to identify behavior, boundaries, invariants, risks, and safe change seams.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Brownfield Analysis
|
|
7
|
+
|
|
8
|
+
Inspect before editing:
|
|
9
|
+
|
|
10
|
+
- repository and module structure;
|
|
11
|
+
- build, test, lint, and deployment paths;
|
|
12
|
+
- entry points and public interfaces;
|
|
13
|
+
- persistence, migrations, queues, and external integrations;
|
|
14
|
+
- configuration and environment boundaries;
|
|
15
|
+
- tests, telemetry, recent changes, and known failures.
|
|
16
|
+
|
|
17
|
+
Use evidence to distinguish intended behavior, tested behavior, observed behavior, and accidental behavior. Record contradictions instead of resolving them silently.
|
|
18
|
+
|
|
19
|
+
Produce `templates/brownfield-map.md` and identify the smallest safe change seam.
|
|
20
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: debugging
|
|
3
|
+
description: Investigate failures using reproduction, hypotheses, evidence, and regression protection.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Debugging
|
|
7
|
+
|
|
8
|
+
Do not modify production code until the failure is understood well enough to state a reproducible symptom.
|
|
9
|
+
|
|
10
|
+
## Workflow
|
|
11
|
+
|
|
12
|
+
1. Restate the observed problem and expected behavior.
|
|
13
|
+
2. Reproduce it with the smallest reliable case.
|
|
14
|
+
3. List three to seven plausible hypotheses.
|
|
15
|
+
4. Prioritize the one or two most likely hypotheses using available evidence.
|
|
16
|
+
5. Collect targeted evidence from code, tests, logs, network, or runtime state.
|
|
17
|
+
6. Identify the root cause and explain the causal chain.
|
|
18
|
+
7. Apply the smallest safe fix.
|
|
19
|
+
8. Add or update a regression test.
|
|
20
|
+
9. Re-run the related validation and remove temporary diagnostics.
|
|
21
|
+
|
|
22
|
+
## Report
|
|
23
|
+
|
|
24
|
+
End with:
|
|
25
|
+
|
|
26
|
+
- symptom;
|
|
27
|
+
- root cause;
|
|
28
|
+
- fix;
|
|
29
|
+
- regression protection;
|
|
30
|
+
- validations executed;
|
|
31
|
+
- remaining uncertainty.
|
|
32
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: planning
|
|
3
|
+
description: Convert an approved specification into small, ordered, independently verifiable implementation tasks.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Planning
|
|
7
|
+
|
|
8
|
+
- Read the specification, system context, technology inventory, and decisions.
|
|
9
|
+
- Order work by dependency and risk, not by file order.
|
|
10
|
+
- Prefer vertical slices that can be tested and reviewed independently.
|
|
11
|
+
- Give every task a clear change boundary and completion condition.
|
|
12
|
+
- Include migration, compatibility, observability, documentation, and rollback work when applicable.
|
|
13
|
+
- Keep discovery or unresolved decisions out of implementation tasks; route them to a spike or decision record.
|
|
14
|
+
|
|
15
|
+
## Task contract
|
|
16
|
+
|
|
17
|
+
Each task must include: purpose, files or boundary likely to change, dependencies, test or evidence required, and a definition of done.
|
|
18
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: product-discovery
|
|
3
|
+
description: Turn a product idea into a testable problem, user outcome, smallest useful slice, and measurable success criteria.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Product Discovery
|
|
7
|
+
|
|
8
|
+
1. Identify the user, context, pain, and desired outcome.
|
|
9
|
+
2. Separate observed evidence from assumptions.
|
|
10
|
+
3. Define non-goals and constraints.
|
|
11
|
+
4. Describe the smallest end-to-end slice that can test the central assumption.
|
|
12
|
+
5. Define success measures and how they will be observed.
|
|
13
|
+
6. Record unanswered questions and propose spikes when uncertainty is technical.
|
|
14
|
+
|
|
15
|
+
## Output
|
|
16
|
+
|
|
17
|
+
Create or update `.maurao/product-brief.md`. Do not create implementation tasks until the problem, smallest useful slice, and success measures are explicit enough to evaluate.
|
|
18
|
+
|
|
19
|
+
Do not turn an unvalidated idea into a large technical backlog. Product discovery must precede architecture for new products unless a hard constraint requires the reverse.
|
|
20
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: project-discovery
|
|
3
|
+
description: Build a reliable project baseline before changing a new or existing software product.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Project Discovery
|
|
7
|
+
|
|
8
|
+
## Greenfield
|
|
9
|
+
|
|
10
|
+
Inspect the repository and product brief when present, then identify the smallest useful slice, assumptions, constraints, risks, and required technology decisions. If no repository exists, record that fact instead of inventing a baseline.
|
|
11
|
+
|
|
12
|
+
## Brownfield
|
|
13
|
+
|
|
14
|
+
Inspect the repository, history when useful, build system, tests, runtime configuration, public contracts, data flows, and operational evidence before proposing a change.
|
|
15
|
+
|
|
16
|
+
## Required baseline
|
|
17
|
+
|
|
18
|
+
- project mode: greenfield, brownfield, or hybrid;
|
|
19
|
+
- product or system purpose;
|
|
20
|
+
- repository map;
|
|
21
|
+
- technology inventory from `technology-discovery`;
|
|
22
|
+
- entry points and important boundaries;
|
|
23
|
+
- commands for build, test, lint, and run;
|
|
24
|
+
- invariants and compatibility constraints;
|
|
25
|
+
- unknowns, risks, and recommended next step.
|
|
26
|
+
|
|
27
|
+
## Output
|
|
28
|
+
|
|
29
|
+
Create or update `.maurao/system-context.md` and coordinate with `technology-discovery`, which creates `.maurao/technology-inventory.md`.
|
|
30
|
+
|
|
31
|
+
Do not produce a confident implementation plan when this baseline is missing material information.
|
|
32
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: requirements
|
|
3
|
+
description: Elicit, structure, prioritize, and validate functional and non-functional requirements for software products.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Requirements
|
|
7
|
+
|
|
8
|
+
Capture functional behavior, quality attributes, constraints, integrations, data, security, accessibility, operations, and compatibility.
|
|
9
|
+
|
|
10
|
+
For each requirement, record source, priority, rationale, measurable acceptance criteria, and dependencies.
|
|
11
|
+
|
|
12
|
+
Challenge requirements that conflict, are not observable, or prescribe implementation without a justified constraint. Preserve unresolved decisions explicitly instead of silently choosing on behalf of the product owner.
|
|
13
|
+
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: specification
|
|
3
|
+
description: Define a clear, testable software change before implementation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Specification
|
|
7
|
+
|
|
8
|
+
Use this skill when a request changes product behavior, architecture, data, APIs, user experience, or operational behavior.
|
|
9
|
+
|
|
10
|
+
## Outcomes
|
|
11
|
+
|
|
12
|
+
Produce a specification at the depth selected by the workflow. It must contain:
|
|
13
|
+
|
|
14
|
+
1. Context, problem, users, and desired outcome.
|
|
15
|
+
2. Project mode and scope: greenfield, brownfield, or hybrid.
|
|
16
|
+
3. Explicit non-goals and constraints.
|
|
17
|
+
4. Actors, inputs, outputs, states, and boundaries.
|
|
18
|
+
5. Functional behavior and edge cases.
|
|
19
|
+
6. Non-functional requirements: security, privacy, accessibility, performance, reliability, and operations when relevant.
|
|
20
|
+
7. Acceptance criteria that can be verified.
|
|
21
|
+
8. Compatibility, migration, rollout, and rollback when changing an existing system.
|
|
22
|
+
9. Open decisions, assumptions, risks, and a verification plan.
|
|
23
|
+
|
|
24
|
+
## Rules
|
|
25
|
+
|
|
26
|
+
- Read the existing code and project conventions before proposing implementation details.
|
|
27
|
+
- Separate requirements from solutions.
|
|
28
|
+
- Use observable language; avoid vague terms such as "works correctly".
|
|
29
|
+
- Do not invent production data or undocumented behavior.
|
|
30
|
+
- For brownfield work, describe current behavior and invariants before desired behavior.
|
|
31
|
+
- Prefer vertical slices and incremental delivery over a large speculative design.
|
|
32
|
+
- If an ambiguity materially changes the implementation, record it as an open decision.
|
|
33
|
+
|
|
34
|
+
## Acceptance criteria format
|
|
35
|
+
|
|
36
|
+
```text
|
|
37
|
+
Given <precondition>
|
|
38
|
+
When <action>
|
|
39
|
+
Then <observable result>
|
|
40
|
+
```
|
|
41
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spike
|
|
3
|
+
description: Answer a bounded technical question through a time-boxed, evidence-based experiment.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Spike
|
|
7
|
+
|
|
8
|
+
A spike reduces uncertainty. It is not permission to build production code without a decision.
|
|
9
|
+
|
|
10
|
+
## Required inputs
|
|
11
|
+
|
|
12
|
+
- question to answer;
|
|
13
|
+
- success criteria;
|
|
14
|
+
- constraints;
|
|
15
|
+
- time or effort budget;
|
|
16
|
+
- alternatives to compare.
|
|
17
|
+
|
|
18
|
+
## Workflow
|
|
19
|
+
|
|
20
|
+
1. State the question and what is out of scope.
|
|
21
|
+
2. Define the smallest experiment that can produce useful evidence.
|
|
22
|
+
3. Record setup, inputs, observations, and limitations.
|
|
23
|
+
4. Compare alternatives against the stated criteria.
|
|
24
|
+
5. Produce a decision, recommendation, or explicit inconclusive result.
|
|
25
|
+
6. Create a follow-up specification if implementation is approved.
|
|
26
|
+
|
|
27
|
+
## Prohibited outcome
|
|
28
|
+
|
|
29
|
+
Do not present prototype code as production-ready implementation without separate verification and delivery work.
|
|
30
|
+
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: technology-discovery
|
|
3
|
+
description: Discover the project's languages, frameworks, tools, runtime, and validation commands from repository evidence before selecting technology-specific skills.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Technology Discovery
|
|
7
|
+
|
|
8
|
+
Run this skill before implementation when the stack is unknown, mixed, or likely to affect the solution.
|
|
9
|
+
|
|
10
|
+
## Rules
|
|
11
|
+
|
|
12
|
+
- Inspect repository evidence; do not infer technology from the user's wording alone.
|
|
13
|
+
- Prefer manifests, lockfiles, build files, source layout, CI, and documented commands over directory names.
|
|
14
|
+
- Treat a repository as polyglot when multiple production stacks are active.
|
|
15
|
+
- Separate production technologies from test, tooling, generated, and example code.
|
|
16
|
+
- Never install dependencies or execute arbitrary project code during discovery without authorization.
|
|
17
|
+
|
|
18
|
+
## Evidence map
|
|
19
|
+
|
|
20
|
+
| Evidence | Likely technology or tool |
|
|
21
|
+
|---|---|
|
|
22
|
+
| `package.json`, `tsconfig.json`, lockfiles | Node.js, TypeScript, frontend or backend framework |
|
|
23
|
+
| `.sln`, `.csproj`, `global.json` | .NET / C# |
|
|
24
|
+
| `pom.xml`, `build.gradle`, `build.gradle.kts`, `gradlew` | Java or Kotlin; Maven or Gradle |
|
|
25
|
+
| `pyproject.toml`, `requirements*.txt`, `poetry.lock`, `uv.lock` | Python |
|
|
26
|
+
| `go.mod`, `Cargo.toml`, `composer.json`, `Gemfile`, `Package.swift` | Go, Rust, PHP, Ruby, Swift |
|
|
27
|
+
| `Dockerfile`, compose files, CI workflows | Runtime and delivery environment |
|
|
28
|
+
| test configuration and scripts | Validation tools and project conventions |
|
|
29
|
+
|
|
30
|
+
## Output
|
|
31
|
+
|
|
32
|
+
Create `templates/technology-inventory.md` containing:
|
|
33
|
+
|
|
34
|
+
- detected languages and versions;
|
|
35
|
+
- frameworks and important libraries;
|
|
36
|
+
- package/build/test/lint commands;
|
|
37
|
+
- runtime and deployment clues;
|
|
38
|
+
- active technology packs;
|
|
39
|
+
- confidence and evidence for every conclusion;
|
|
40
|
+
- unknowns that must be resolved before implementation.
|
|
41
|
+
|
|
42
|
+
If the project is a monorepo, produce one inventory per application or package and a shared infrastructure section.
|
|
43
|
+
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-review
|
|
3
|
+
description: Review a change for correctness, regressions, security, maintainability, and missing verification.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Code Review
|
|
7
|
+
|
|
8
|
+
Review the diff and relevant surrounding code, not only the changed lines.
|
|
9
|
+
|
|
10
|
+
Check, in order:
|
|
11
|
+
|
|
12
|
+
1. Intended behavior and acceptance criteria.
|
|
13
|
+
2. Correctness and edge cases.
|
|
14
|
+
3. Regression and compatibility risk.
|
|
15
|
+
4. Error handling and security boundaries.
|
|
16
|
+
5. Data integrity and concurrency.
|
|
17
|
+
6. Tests and observability.
|
|
18
|
+
7. Maintainability and unnecessary complexity.
|
|
19
|
+
|
|
20
|
+
Report findings by severity with file, location, impact, and a concrete recommendation. If there are no findings, state what was reviewed and what was not verified.
|
|
21
|
+
|