ai-engineering-starter-kit 0.4.0
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/LICENSE.md +21 -0
- package/README.md +243 -0
- package/bin/ai-engineering-starter-kit.js +295 -0
- package/package.json +22 -0
- package/skills/ppp/SKILL.md +627 -0
- package/skills/ppp-cloud/SKILL.md +602 -0
- package/templates/AGENTS.md +100 -0
- package/templates/PULL_REQUEST_TEMPLATE.md +22 -0
- package/templates/copilot-instructions.md +19 -0
- package/templates/cursor-ppp-rule.mdc +20 -0
|
@@ -0,0 +1,602 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ppp-cloud
|
|
3
|
+
version: 0.4.0
|
|
4
|
+
description: "Plan. Patch. Prove for autonomous cloud agents. Use for clear, bounded engineering tasks where the agent should inspect code, plan, prove, patch, validate, review, and open a draft PR or stop with a useful blocker."
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Plan. Patch. Prove — Cloud Agent Mode
|
|
8
|
+
|
|
9
|
+
Use this skill when running as an autonomous coding agent, such as GitHub Copilot Cloud Agent.
|
|
10
|
+
|
|
11
|
+
This is the non-interactive version of PPP.
|
|
12
|
+
|
|
13
|
+
Core loop:
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
Inspect → Decide → Plan → Prove → Patch → Validate → Review → Draft PR
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
The goal is to produce one focused draft PR for a clear, bounded, verifiable task — or stop with a useful blocker when the task is unsafe or unclear.
|
|
20
|
+
|
|
21
|
+
## Cloud Agent principle
|
|
22
|
+
|
|
23
|
+
Autonomous agents may accelerate implementation, but they must not make high-risk product, architecture, security, auth, data, migration, tenancy, billing, or public API decisions without human input.
|
|
24
|
+
|
|
25
|
+
Prefer a safe stop over confident guessing.
|
|
26
|
+
|
|
27
|
+
<!-- Similar section in ppp — keep core rules consistent -->
|
|
28
|
+
## Token discipline
|
|
29
|
+
|
|
30
|
+
Be concise.
|
|
31
|
+
|
|
32
|
+
- Inspect only relevant files.
|
|
33
|
+
- Summarise instead of pasting large code/logs.
|
|
34
|
+
- Prefer file paths, decisions, risks, checks run, and next actions.
|
|
35
|
+
- Do not restate large specs or issue bodies.
|
|
36
|
+
- Do not create separate task artifacts unless repo instructions require them.
|
|
37
|
+
- Keep the PR body useful but not verbose.
|
|
38
|
+
|
|
39
|
+
## Suitable tasks
|
|
40
|
+
|
|
41
|
+
PPP Cloud is suitable when the task is:
|
|
42
|
+
|
|
43
|
+
- clear
|
|
44
|
+
- bounded
|
|
45
|
+
- expected to fit one focused PR
|
|
46
|
+
- low or medium risk
|
|
47
|
+
- testable or otherwise verifiable
|
|
48
|
+
- aligned with existing repo patterns
|
|
49
|
+
- not dependent on repeated human back-and-forth
|
|
50
|
+
|
|
51
|
+
Good examples:
|
|
52
|
+
|
|
53
|
+
- fix a clearly described bug
|
|
54
|
+
- add or update tests
|
|
55
|
+
- implement a small validation rule
|
|
56
|
+
- add an empty/loading/error state
|
|
57
|
+
- make a small UI behaviour change following existing patterns
|
|
58
|
+
- update docs
|
|
59
|
+
- make a small refactor with tests
|
|
60
|
+
- add coverage around existing behaviour
|
|
61
|
+
|
|
62
|
+
## Unsuitable tasks
|
|
63
|
+
|
|
64
|
+
Do not implement directly if the task is broad, ambiguous, high risk, or requires a significant decision.
|
|
65
|
+
|
|
66
|
+
Examples:
|
|
67
|
+
|
|
68
|
+
- “build a new analytics dashboard”
|
|
69
|
+
- “add reporting”
|
|
70
|
+
- “improve onboarding”
|
|
71
|
+
- “build the new permissions system”
|
|
72
|
+
- “migrate this service”
|
|
73
|
+
- “redesign this flow”
|
|
74
|
+
- “change how authentication works”
|
|
75
|
+
- “update billing behaviour”
|
|
76
|
+
- “change the public API contract”
|
|
77
|
+
|
|
78
|
+
For unsuitable tasks, stop and return a blocker or recommend splitting into a smaller task.
|
|
79
|
+
|
|
80
|
+
<!-- Similar section in ppp — keep core rules consistent -->
|
|
81
|
+
## Hard rules
|
|
82
|
+
|
|
83
|
+
- Inspect relevant code before planning or editing.
|
|
84
|
+
- Follow repo guidance and nearby code/test conventions.
|
|
85
|
+
- Do not invent requirements.
|
|
86
|
+
- Do not touch unrelated files.
|
|
87
|
+
- Do not weaken tests or remove validation to make checks pass.
|
|
88
|
+
- Do not claim checks passed unless they actually ran.
|
|
89
|
+
- Do not shortcut required related changes just to keep the diff small.
|
|
90
|
+
- Do not leave related code paths half-updated when correctness requires consistency.
|
|
91
|
+
- Stop after two focused failed fix attempts.
|
|
92
|
+
- Open a draft PR only when the work is coherent and reviewable.
|
|
93
|
+
- If validation is incomplete, the PR must be draft and must clearly state what was not run.
|
|
94
|
+
|
|
95
|
+
<!-- Similar section in ppp — keep core rules consistent -->
|
|
96
|
+
## Repo guidance
|
|
97
|
+
|
|
98
|
+
Before planning or editing, inspect repo guidance if available:
|
|
99
|
+
|
|
100
|
+
- `.github/copilot-instructions.md`
|
|
101
|
+
- `.github/instructions/**/*.instructions.md`
|
|
102
|
+
- `AGENTS.md`
|
|
103
|
+
- `CONTRIBUTING.md`
|
|
104
|
+
- `README.md`
|
|
105
|
+
- package-specific README files near the changed code
|
|
106
|
+
- `.github/PULL_REQUEST_TEMPLATE.md`
|
|
107
|
+
|
|
108
|
+
Follow repo guidance for:
|
|
109
|
+
|
|
110
|
+
- architecture
|
|
111
|
+
- coding style
|
|
112
|
+
- testing
|
|
113
|
+
- validation commands
|
|
114
|
+
- PR format
|
|
115
|
+
- forbidden areas
|
|
116
|
+
- security/privacy rules
|
|
117
|
+
|
|
118
|
+
If repo guidance conflicts with this skill, follow repo guidance unless it weakens safety, validation, or production readiness.
|
|
119
|
+
|
|
120
|
+
If no repo guidance exists, infer conventions from nearby code and tests.
|
|
121
|
+
|
|
122
|
+
## 1. Inspect
|
|
123
|
+
|
|
124
|
+
Read the task and inspect relevant code before planning.
|
|
125
|
+
|
|
126
|
+
Identify:
|
|
127
|
+
|
|
128
|
+
- intended behaviour
|
|
129
|
+
- current behaviour, if known
|
|
130
|
+
- relevant files/modules
|
|
131
|
+
- existing patterns to follow
|
|
132
|
+
- test patterns
|
|
133
|
+
- assumptions
|
|
134
|
+
- risks
|
|
135
|
+
- potential blockers
|
|
136
|
+
|
|
137
|
+
Use a codebase inspection table when file paths or modules matter:
|
|
138
|
+
|
|
139
|
+
| Area | File/module | Status | Evidence | Notes |
|
|
140
|
+
|---|---|---|---|---|
|
|
141
|
+
|
|
142
|
+
Statuses:
|
|
143
|
+
|
|
144
|
+
- Confirmed — inspected and exists
|
|
145
|
+
- Inferred — likely, but not inspected
|
|
146
|
+
- Proposed new — does not exist yet and is proposed
|
|
147
|
+
- Missing — expected but not found
|
|
148
|
+
|
|
149
|
+
Do not present inferred paths as confirmed.
|
|
150
|
+
|
|
151
|
+
If relevant code cannot be inspected, stop and report a blocker.
|
|
152
|
+
|
|
153
|
+
## 2. Decide whether to proceed
|
|
154
|
+
|
|
155
|
+
Before implementation, decide whether to continue, narrow, or stop.
|
|
156
|
+
|
|
157
|
+
### Continue when
|
|
158
|
+
|
|
159
|
+
Continue without asking when:
|
|
160
|
+
|
|
161
|
+
- the expected behaviour is clear enough;
|
|
162
|
+
- the choice is low-risk;
|
|
163
|
+
- the repo has an existing pattern to follow;
|
|
164
|
+
- the decision is internal implementation detail;
|
|
165
|
+
- the decision is easy to reverse;
|
|
166
|
+
- the change does not affect product semantics, security, data, auth, permissions, migrations, billing, tenancy, or public APIs.
|
|
167
|
+
|
|
168
|
+
When continuing with an assumption, record it in the PR body under “Assumptions”.
|
|
169
|
+
|
|
170
|
+
### Stop when
|
|
171
|
+
|
|
172
|
+
Stop and report a blocker when the task requires a critical decision that is not answerable from repo context.
|
|
173
|
+
|
|
174
|
+
Critical decisions include:
|
|
175
|
+
|
|
176
|
+
- product behaviour or UX semantics
|
|
177
|
+
- acceptance criteria conflict
|
|
178
|
+
- public API contract
|
|
179
|
+
- data model or migration
|
|
180
|
+
- auth/security/permissions
|
|
181
|
+
- privacy or compliance behaviour
|
|
182
|
+
- tenancy or billing behaviour
|
|
183
|
+
- architecture or module boundary change
|
|
184
|
+
- destructive or irreversible changes
|
|
185
|
+
- high-risk production behaviour
|
|
186
|
+
- unclear test oracle
|
|
187
|
+
|
|
188
|
+
Use this blocker format:
|
|
189
|
+
|
|
190
|
+
```md
|
|
191
|
+
## Blocked — human decision required
|
|
192
|
+
|
|
193
|
+
I stopped because this task requires a decision I should not make autonomously.
|
|
194
|
+
|
|
195
|
+
Decision needed:
|
|
196
|
+
- ...
|
|
197
|
+
|
|
198
|
+
Why it matters:
|
|
199
|
+
- ...
|
|
200
|
+
|
|
201
|
+
Options:
|
|
202
|
+
1. ...
|
|
203
|
+
2. ...
|
|
204
|
+
3. ...
|
|
205
|
+
|
|
206
|
+
Recommended option:
|
|
207
|
+
- ...
|
|
208
|
+
|
|
209
|
+
Files inspected:
|
|
210
|
+
- ...
|
|
211
|
+
|
|
212
|
+
No implementation PR was created because proceeding would require guessing.
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Narrow when
|
|
216
|
+
|
|
217
|
+
If the task is too large but has an obvious first safe increment, implement only that increment if it is valuable and clearly within scope.
|
|
218
|
+
|
|
219
|
+
Examples:
|
|
220
|
+
|
|
221
|
+
- create a dashboard shell but not full analytics logic;
|
|
222
|
+
- add parser tests but not the full editor integration;
|
|
223
|
+
- add validation in one established path but not redesign validation globally.
|
|
224
|
+
|
|
225
|
+
If narrowing, state the narrowed scope in the PR body.
|
|
226
|
+
|
|
227
|
+
## 3. Plan
|
|
228
|
+
|
|
229
|
+
Create the smallest safe complete plan for the selected task or narrowed scope.
|
|
230
|
+
|
|
231
|
+
Include:
|
|
232
|
+
|
|
233
|
+
- objective
|
|
234
|
+
- files to change
|
|
235
|
+
- tests/checks to add or update
|
|
236
|
+
- validation commands
|
|
237
|
+
- risks
|
|
238
|
+
- explicit non-goals
|
|
239
|
+
|
|
240
|
+
The plan must follow repo conventions, components, styling, architecture, and design patterns.
|
|
241
|
+
|
|
242
|
+
Do not plan unrelated refactors.
|
|
243
|
+
|
|
244
|
+
Do not avoid legitimate required files just to keep the diff small.
|
|
245
|
+
|
|
246
|
+
If the plan reveals the task is not suitable for autonomous implementation, stop and report a blocker.
|
|
247
|
+
|
|
248
|
+
## 4. Prove
|
|
249
|
+
|
|
250
|
+
Define proof before implementation.
|
|
251
|
+
|
|
252
|
+
Choose exactly one primary proof and up to three supporting checks.
|
|
253
|
+
|
|
254
|
+
The primary proof must directly validate the changed behaviour. Lint/typecheck alone is not sufficient for behavioural changes unless no behavioural proof is practical.
|
|
255
|
+
|
|
256
|
+
Use the lowest-cost proof that gives meaningful confidence:
|
|
257
|
+
|
|
258
|
+
- Static/local sanity: lint, typecheck, build affected package
|
|
259
|
+
- Targeted unit/component test: default for logic and UI behaviour
|
|
260
|
+
- Focused integration/API/contract test: for cross-module or API behaviour
|
|
261
|
+
- E2E/manual workflow: when a real workflow is needed
|
|
262
|
+
- Full suite/expensive checks: only when repo convention or risk requires it
|
|
263
|
+
|
|
264
|
+
Prefer red-green testing where practical.
|
|
265
|
+
|
|
266
|
+
If expensive or environment-heavy checks are not practical, use targeted proof and document the skipped checks in the PR body.
|
|
267
|
+
|
|
268
|
+
## Automated testing and coverage
|
|
269
|
+
|
|
270
|
+
Inspect whether the affected area has automated tests or CI coverage expectations.
|
|
271
|
+
|
|
272
|
+
If unit tests exist for the affected area or new testable logic is added:
|
|
273
|
+
|
|
274
|
+
- add or update relevant unit tests;
|
|
275
|
+
- match or exceed the coverage standard of surrounding code;
|
|
276
|
+
- if no local standard exists, use 80% new-code unit coverage as a fallback target for testable logic;
|
|
277
|
+
- do not invent coverage numbers.
|
|
278
|
+
|
|
279
|
+
If unit tests are not practical or not applicable:
|
|
280
|
+
|
|
281
|
+
- update the next-best automated validation where appropriate;
|
|
282
|
+
- consider component, integration, API, E2E, snapshot, contract, build, or typecheck validation;
|
|
283
|
+
- explain why unit tests are not being added.
|
|
284
|
+
|
|
285
|
+
Do not write tests that only assert implementation details rather than behaviour.
|
|
286
|
+
|
|
287
|
+
If CI/CD enforces unit coverage, do not open a normal PR that is likely to fail coverage. Add tests, mark the PR as draft, or stop with a blocker if the issue cannot be addressed.
|
|
288
|
+
|
|
289
|
+
## 5. Patch
|
|
290
|
+
|
|
291
|
+
Implement in small validated loops:
|
|
292
|
+
|
|
293
|
+
```text
|
|
294
|
+
small change → run proof/check → inspect result → fix → review diff → continue
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
Rules:
|
|
298
|
+
|
|
299
|
+
- stay within the selected task or narrowed scope;
|
|
300
|
+
- update all related code paths required for correctness;
|
|
301
|
+
- preserve existing behaviour unless the task requires changing it;
|
|
302
|
+
- avoid unrelated refactors and opportunistic cleanup;
|
|
303
|
+
- validate after meaningful changes.
|
|
304
|
+
|
|
305
|
+
If the work becomes larger, riskier, or different from the plan, stop and reassess. If it now requires a critical decision, stop and report a blocker.
|
|
306
|
+
|
|
307
|
+
## 6. Validate failures
|
|
308
|
+
|
|
309
|
+
If validation fails, stop adding code and diagnose.
|
|
310
|
+
|
|
311
|
+
Classify the failure before fixing:
|
|
312
|
+
|
|
313
|
+
- Implementation bug
|
|
314
|
+
- Test expectation wrong
|
|
315
|
+
- Environment/setup issue
|
|
316
|
+
- Missing dependency
|
|
317
|
+
- Product ambiguity
|
|
318
|
+
- Architecture/design mismatch
|
|
319
|
+
- Unknown
|
|
320
|
+
|
|
321
|
+
Only attempt automatic fixes for implementation bugs or clearly incorrect tests.
|
|
322
|
+
|
|
323
|
+
Maximum automatic fix attempts: 2.
|
|
324
|
+
|
|
325
|
+
For each attempt:
|
|
326
|
+
|
|
327
|
+
1. reproduce the failure;
|
|
328
|
+
2. classify it;
|
|
329
|
+
3. identify the key error;
|
|
330
|
+
4. inspect the relevant code/test;
|
|
331
|
+
5. fix one confirmed cause;
|
|
332
|
+
6. rerun the targeted check.
|
|
333
|
+
|
|
334
|
+
After two failed attempts, stop. Open a draft PR only if the partial work is useful and reviewable; otherwise do not create a PR.
|
|
335
|
+
|
|
336
|
+
Use this failure summary:
|
|
337
|
+
|
|
338
|
+
```md
|
|
339
|
+
## Blocked after two focused fix attempts
|
|
340
|
+
|
|
341
|
+
What I tried:
|
|
342
|
+
1. ...
|
|
343
|
+
2. ...
|
|
344
|
+
|
|
345
|
+
Current evidence:
|
|
346
|
+
- failing command:
|
|
347
|
+
- key error:
|
|
348
|
+
- likely cause:
|
|
349
|
+
- files touched:
|
|
350
|
+
|
|
351
|
+
Recommended next action:
|
|
352
|
+
Human investigation required.
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
Do not weaken tests, delete validation, broaden scope, or keep retrying indefinitely.
|
|
356
|
+
|
|
357
|
+
## 7. Review
|
|
358
|
+
|
|
359
|
+
Before creating a draft PR, review as QA and production reviewer.
|
|
360
|
+
|
|
361
|
+
### Blocking — must fix or stop before PR
|
|
362
|
+
|
|
363
|
+
- Task is not satisfied
|
|
364
|
+
- Acceptance criteria not covered
|
|
365
|
+
- Required proof/tests missing or failing
|
|
366
|
+
- CI/PR checks likely to fail without explanation
|
|
367
|
+
- Unit/automated coverage requirement not met where applicable
|
|
368
|
+
- Security/privacy/auth/permission risk unresolved
|
|
369
|
+
- Related code paths left inconsistent
|
|
370
|
+
- Unrelated files changed
|
|
371
|
+
- Change cannot be explained clearly
|
|
372
|
+
|
|
373
|
+
### Should fix before PR if safe and in scope
|
|
374
|
+
|
|
375
|
+
- Edge cases weakly handled
|
|
376
|
+
- Error/loading/empty states incomplete where relevant
|
|
377
|
+
- Existing patterns not followed
|
|
378
|
+
- Accessibility not considered for UI changes
|
|
379
|
+
- Performance risk not considered
|
|
380
|
+
- Tests assert implementation rather than behaviour
|
|
381
|
+
- Unnecessary complexity added
|
|
382
|
+
|
|
383
|
+
If three or more “Should fix” items apply, address them before PR unless they are explicitly documented as follow-ups and the PR is draft.
|
|
384
|
+
|
|
385
|
+
### Nice to have / follow-up
|
|
386
|
+
|
|
387
|
+
- Additional refactoring
|
|
388
|
+
- Extra docs/comments
|
|
389
|
+
- Broader E2E coverage
|
|
390
|
+
- Non-blocking polish
|
|
391
|
+
|
|
392
|
+
If a blocking item cannot be fixed safely, stop or open a draft PR only if the partial result is valuable and clearly labelled.
|
|
393
|
+
|
|
394
|
+
## 8. Draft PR
|
|
395
|
+
|
|
396
|
+
Create a draft PR when:
|
|
397
|
+
|
|
398
|
+
- the task or narrowed scope is coherently implemented;
|
|
399
|
+
- the diff is reviewable;
|
|
400
|
+
- validation has been run or limitations are clearly documented;
|
|
401
|
+
- remaining risks are clearly stated.
|
|
402
|
+
|
|
403
|
+
Do not create a PR when:
|
|
404
|
+
|
|
405
|
+
- implementation is incoherent or half-applied;
|
|
406
|
+
- critical behaviour is unknown;
|
|
407
|
+
- auth/security/data/API decisions are unresolved;
|
|
408
|
+
- unrelated files would be included;
|
|
409
|
+
- tests fail and the cause is unknown;
|
|
410
|
+
- the change is likely harmful.
|
|
411
|
+
|
|
412
|
+
## Ticket reference
|
|
413
|
+
|
|
414
|
+
Use “ticket reference” generically. Jira is one example.
|
|
415
|
+
|
|
416
|
+
Look for a ticket reference in:
|
|
417
|
+
|
|
418
|
+
1. branch name
|
|
419
|
+
2. task/ticket text
|
|
420
|
+
3. recent commit messages if relevant
|
|
421
|
+
|
|
422
|
+
Examples:
|
|
423
|
+
|
|
424
|
+
- Jira: `AEP-2714`, `MONE-61005`
|
|
425
|
+
- Linear: `ENG-123`
|
|
426
|
+
- GitHub issue: `#1234`
|
|
427
|
+
|
|
428
|
+
Do not invent a ticket reference.
|
|
429
|
+
|
|
430
|
+
If none is found, continue without one and state that none was found in the PR body.
|
|
431
|
+
|
|
432
|
+
## Commit and PR conventions
|
|
433
|
+
|
|
434
|
+
Use repo conventions if present.
|
|
435
|
+
|
|
436
|
+
Fallback commit format with ticket reference:
|
|
437
|
+
|
|
438
|
+
```text
|
|
439
|
+
<TICKET-REF> <type>(<scope>): <short description>
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
Fallback PR title with ticket reference:
|
|
443
|
+
|
|
444
|
+
```text
|
|
445
|
+
[<TICKET-REF>] <type>(<scope>): <short description>
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
Without a ticket reference:
|
|
449
|
+
|
|
450
|
+
```text
|
|
451
|
+
<type>(<scope>): <short description>
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
Types: `feat`, `fix`, `test`, `refactor`, `chore`, `docs`.
|
|
455
|
+
|
|
456
|
+
## Git safety
|
|
457
|
+
|
|
458
|
+
Before staging or committing:
|
|
459
|
+
|
|
460
|
+
- inspect `git status`;
|
|
461
|
+
- stage only files relevant to this task;
|
|
462
|
+
- do not stage unrelated user changes;
|
|
463
|
+
- if unrelated modified files exist, exclude them and mention them in the PR body;
|
|
464
|
+
- never force-push or amend commits unless explicitly instructed by repo workflow.
|
|
465
|
+
|
|
466
|
+
## Draft PR body
|
|
467
|
+
|
|
468
|
+
Follow the repo PR template if present.
|
|
469
|
+
|
|
470
|
+
If no template exists, use:
|
|
471
|
+
|
|
472
|
+
```md
|
|
473
|
+
## Summary
|
|
474
|
+
|
|
475
|
+
- ...
|
|
476
|
+
|
|
477
|
+
## Scope
|
|
478
|
+
|
|
479
|
+
Implemented:
|
|
480
|
+
- ...
|
|
481
|
+
|
|
482
|
+
Not included:
|
|
483
|
+
- ...
|
|
484
|
+
|
|
485
|
+
## Assumptions
|
|
486
|
+
|
|
487
|
+
- ...
|
|
488
|
+
|
|
489
|
+
## Testing
|
|
490
|
+
|
|
491
|
+
Ran:
|
|
492
|
+
- ...
|
|
493
|
+
|
|
494
|
+
Not run:
|
|
495
|
+
- ...
|
|
496
|
+
|
|
497
|
+
## Risks / follow-ups
|
|
498
|
+
|
|
499
|
+
- ...
|
|
500
|
+
|
|
501
|
+
## Review notes
|
|
502
|
+
|
|
503
|
+
- ...
|
|
504
|
+
|
|
505
|
+
## Blockers, if any
|
|
506
|
+
|
|
507
|
+
- ...
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
The PR body must clearly state:
|
|
511
|
+
|
|
512
|
+
- what changed
|
|
513
|
+
- what was intentionally not changed
|
|
514
|
+
- assumptions made
|
|
515
|
+
- checks run and results
|
|
516
|
+
- checks not run and why
|
|
517
|
+
- any blockers or human decisions needed
|
|
518
|
+
- whether the PR is ready for review or draft/WIP
|
|
519
|
+
|
|
520
|
+
## Final response / PR outcome
|
|
521
|
+
|
|
522
|
+
Return one of:
|
|
523
|
+
|
|
524
|
+
### PR created
|
|
525
|
+
|
|
526
|
+
```md
|
|
527
|
+
## Draft PR created
|
|
528
|
+
|
|
529
|
+
PR:
|
|
530
|
+
- <url>
|
|
531
|
+
|
|
532
|
+
Summary:
|
|
533
|
+
- ...
|
|
534
|
+
|
|
535
|
+
Checks run:
|
|
536
|
+
- ...
|
|
537
|
+
|
|
538
|
+
Risks / follow-ups:
|
|
539
|
+
- ...
|
|
540
|
+
|
|
541
|
+
Human review focus:
|
|
542
|
+
- ...
|
|
543
|
+
```
|
|
544
|
+
|
|
545
|
+
### Stopped without PR
|
|
546
|
+
|
|
547
|
+
```md
|
|
548
|
+
## Stopped — no PR created
|
|
549
|
+
|
|
550
|
+
Reason:
|
|
551
|
+
- ...
|
|
552
|
+
|
|
553
|
+
Decision or help needed:
|
|
554
|
+
- ...
|
|
555
|
+
|
|
556
|
+
Files inspected:
|
|
557
|
+
- ...
|
|
558
|
+
|
|
559
|
+
Evidence:
|
|
560
|
+
- ...
|
|
561
|
+
|
|
562
|
+
Recommended next action:
|
|
563
|
+
- ...
|
|
564
|
+
```
|
|
565
|
+
|
|
566
|
+
### Blocked after partial work
|
|
567
|
+
|
|
568
|
+
```md
|
|
569
|
+
## Draft PR created with blockers
|
|
570
|
+
|
|
571
|
+
PR:
|
|
572
|
+
- <url>
|
|
573
|
+
|
|
574
|
+
What is complete:
|
|
575
|
+
- ...
|
|
576
|
+
|
|
577
|
+
What is blocked:
|
|
578
|
+
- ...
|
|
579
|
+
|
|
580
|
+
Checks run:
|
|
581
|
+
- ...
|
|
582
|
+
|
|
583
|
+
Human decision needed:
|
|
584
|
+
- ...
|
|
585
|
+
```
|
|
586
|
+
|
|
587
|
+
## Stop conditions
|
|
588
|
+
|
|
589
|
+
Stop without implementation or PR if:
|
|
590
|
+
|
|
591
|
+
- critical requirements are unclear
|
|
592
|
+
- work no longer fits the agreed task
|
|
593
|
+
- architecture/auth/security/permission/data migration/public API changes are required
|
|
594
|
+
- tests fail after two focused attempts and the result is not useful
|
|
595
|
+
- failure cause is unknown
|
|
596
|
+
- unrelated files would need to be changed
|
|
597
|
+
- relevant code cannot be inspected
|
|
598
|
+
- validation cannot be performed
|
|
599
|
+
- CI/coverage requirements are likely to fail and cannot be addressed or clearly documented
|
|
600
|
+
- proceeding would require guessing on high-impact behaviour
|
|
601
|
+
|
|
602
|
+
When blocked, return useful context so a human can continue efficiently.
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Agent Guide
|
|
2
|
+
|
|
3
|
+
This repository uses AI agents as manually invoked helpers.
|
|
4
|
+
|
|
5
|
+
There is no automatic multi-agent pipeline unless explicitly configured and tested.
|
|
6
|
+
|
|
7
|
+
For normal implementation work:
|
|
8
|
+
|
|
9
|
+
- Human/IDE use: `/ppp`
|
|
10
|
+
- Autonomous cloud agent use: `ppp-cloud`
|
|
11
|
+
|
|
12
|
+
Agents must follow repo instructions and stop for guardrailed work.
|
|
13
|
+
|
|
14
|
+
## Quick reference
|
|
15
|
+
|
|
16
|
+
| I want to... | Use |
|
|
17
|
+
|---|---|
|
|
18
|
+
| Complete a normal ticket in my IDE | `/ppp` |
|
|
19
|
+
| Create a draft PR from a clear bounded task | `ppp-cloud` |
|
|
20
|
+
| Review a PR or diff | review agent / PR review workflow |
|
|
21
|
+
| Plan architecture | architecture agent or human-led planning |
|
|
22
|
+
| Add or improve tests | `/ppp` or `ppp-cloud` with test-only scope |
|
|
23
|
+
| Handle auth/security/migration/API changes | human-led first |
|
|
24
|
+
|
|
25
|
+
## Recommended sequences
|
|
26
|
+
|
|
27
|
+
### Bug fix / small change
|
|
28
|
+
|
|
29
|
+
1. Use `/ppp` in IDE, or assign `ppp-cloud` for a clear bounded cloud-agent task.
|
|
30
|
+
2. Review the resulting PR.
|
|
31
|
+
|
|
32
|
+
### New feature with unclear architecture
|
|
33
|
+
|
|
34
|
+
1. Ask for a plan first.
|
|
35
|
+
2. Human reviews/approves plan.
|
|
36
|
+
3. Use `/ppp` or `ppp-cloud` for the first bounded implementation task.
|
|
37
|
+
|
|
38
|
+
### Adding tests
|
|
39
|
+
|
|
40
|
+
1. Use `/ppp` or `ppp-cloud` with test-only scope.
|
|
41
|
+
2. Review tests against behaviour, not implementation details.
|
|
42
|
+
|
|
43
|
+
### Review only
|
|
44
|
+
|
|
45
|
+
1. Use review workflow/agent.
|
|
46
|
+
2. Return findings as `APPROVE`, `NEEDS_CHANGES`, or `BLOCKED`.
|
|
47
|
+
|
|
48
|
+
## Context to provide
|
|
49
|
+
|
|
50
|
+
For implementation:
|
|
51
|
+
|
|
52
|
+
- task/ticket
|
|
53
|
+
- expected behaviour
|
|
54
|
+
- files/modules if known
|
|
55
|
+
- constraints and non-goals
|
|
56
|
+
- tests/checks expected
|
|
57
|
+
- ticket reference if available
|
|
58
|
+
|
|
59
|
+
For architecture:
|
|
60
|
+
|
|
61
|
+
- problem statement
|
|
62
|
+
- relevant modules
|
|
63
|
+
- constraints
|
|
64
|
+
- options considered
|
|
65
|
+
- risks
|
|
66
|
+
- non-goals
|
|
67
|
+
|
|
68
|
+
For review:
|
|
69
|
+
|
|
70
|
+
- original task
|
|
71
|
+
- PR/diff
|
|
72
|
+
- tests run
|
|
73
|
+
- known risks
|
|
74
|
+
- areas needing attention
|
|
75
|
+
|
|
76
|
+
## Guardrails
|
|
77
|
+
|
|
78
|
+
Stop and ask before:
|
|
79
|
+
|
|
80
|
+
- database migrations
|
|
81
|
+
- auth/security/permissions changes
|
|
82
|
+
- new dependencies
|
|
83
|
+
- public API changes
|
|
84
|
+
- data model changes
|
|
85
|
+
- tenant/billing behaviour
|
|
86
|
+
- destructive or irreversible changes
|
|
87
|
+
- privacy/compliance-sensitive behaviour
|
|
88
|
+
- module enablement/build configuration changes
|
|
89
|
+
|
|
90
|
+
## Instruction Files Reference
|
|
91
|
+
|
|
92
|
+
| File | Purpose |
|
|
93
|
+
|---|---|
|
|
94
|
+
| `AGENTS.md` | Agent selection and usage guide |
|
|
95
|
+
| `.github/copilot-instructions.md` | Repo-wide Copilot guidance |
|
|
96
|
+
| `.github/instructions/*.instructions.md` | Path or task-specific instructions |
|
|
97
|
+
| `.github/skills/ppp/SKILL.md` | Repo-local PPP skill |
|
|
98
|
+
| `.github/skills/ppp-cloud/SKILL.md` | Repo-local autonomous cloud-agent skill |
|
|
99
|
+
| `.github/PULL_REQUEST_TEMPLATE.md` | PR format |
|
|
100
|
+
| `CONTRIBUTING.md` | Contributor workflow and local development notes |
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
## Summary
|
|
2
|
+
|
|
3
|
+
-
|
|
4
|
+
|
|
5
|
+
## Changes
|
|
6
|
+
|
|
7
|
+
-
|
|
8
|
+
|
|
9
|
+
## Testing
|
|
10
|
+
|
|
11
|
+
- [ ] Unit/component tests
|
|
12
|
+
- [ ] Integration/API tests
|
|
13
|
+
- [ ] Manual verification
|
|
14
|
+
- [ ] Not applicable / explained below
|
|
15
|
+
|
|
16
|
+
## Risks / follow-ups
|
|
17
|
+
|
|
18
|
+
-
|
|
19
|
+
|
|
20
|
+
## Screenshots
|
|
21
|
+
|
|
22
|
+
<!-- Include for UI changes -->
|