@ryuenn3123/agentic-senior-core 2.5.22 → 3.0.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/.agent-context/prompts/init-project.md +5 -5
- package/.agent-context/prompts/refactor.md +2 -1
- package/.agent-context/prompts/review-code.md +3 -2
- package/.agent-context/review-checklists/pr-checklist.md +8 -1
- package/.agent-context/rules/architecture.md +11 -0
- package/.agent-context/rules/frontend-architecture.md +2 -2
- package/.agent-context/state/architecture-map.md +1 -1
- package/.agent-context/state/memory-continuity-benchmark.json +1 -1
- package/.agents/workflows/init-project.md +3 -3
- package/.agents/workflows/refactor.md +1 -1
- package/.agents/workflows/review-code.md +4 -5
- package/.cursorrules +27 -71
- package/.gemini/instructions.md +6 -7
- package/.github/copilot-instructions.md +5 -6
- package/.windsurfrules +27 -71
- package/AGENTS.md +7 -9
- package/CONTRIBUTING.md +18 -31
- package/README.md +21 -4
- package/bin/agentic-senior-core.js +0 -6
- package/lib/cli/commands/init.mjs +113 -650
- package/lib/cli/commands/launch.mjs +1 -23
- package/lib/cli/commands/rollback.mjs +1 -1
- package/lib/cli/commands/upgrade.mjs +1 -23
- package/lib/cli/compiler.mjs +77 -72
- package/lib/cli/constants.mjs +84 -26
- package/lib/cli/init-architecture-flow.mjs +231 -0
- package/lib/cli/init-detection-flow.mjs +123 -0
- package/lib/cli/init-options.mjs +344 -0
- package/lib/cli/init-selection.mjs +100 -0
- package/lib/cli/preflight.mjs +1 -1
- package/lib/cli/profile-packs.mjs +15 -1
- package/lib/cli/project-scaffolder.mjs +18 -154
- package/lib/cli/utils.mjs +16 -12
- package/mcp.json +19 -19
- package/package.json +5 -2
- package/scripts/context-triggered-audit.mjs +18 -18
- package/scripts/documentation-boundary-audit.mjs +92 -5
- package/scripts/forbidden-content-check.mjs +1 -1
- package/scripts/frontend-usability-audit.mjs +21 -28
- package/scripts/governance-weekly-report.mjs +29 -15
- package/scripts/llm-judge.mjs +2 -5
- package/scripts/mcp-server.mjs +389 -5
- package/scripts/release-gate.mjs +121 -145
- package/scripts/sync-thin-adapters.mjs +161 -0
- package/scripts/v3-purge-audit.mjs +231 -0
- package/scripts/validate-evidence-bundle.mjs +1 -1
- package/scripts/validate.mjs +224 -272
- package/.agent-context/blueprints/api-nextjs.md +0 -184
- package/.agent-context/blueprints/aspnet-api.md +0 -247
- package/.agent-context/blueprints/ci-github-actions.md +0 -226
- package/.agent-context/blueprints/ci-gitlab.md +0 -200
- package/.agent-context/blueprints/fastapi-service.md +0 -210
- package/.agent-context/blueprints/go-service.md +0 -217
- package/.agent-context/blueprints/graphql-grpc-api.md +0 -51
- package/.agent-context/blueprints/infrastructure-as-code.md +0 -62
- package/.agent-context/blueprints/kubernetes-manifests.md +0 -76
- package/.agent-context/blueprints/laravel-api.md +0 -233
- package/.agent-context/blueprints/mobile-app.md +0 -91
- package/.agent-context/blueprints/nestjs-logic.md +0 -247
- package/.agent-context/blueprints/observability.md +0 -227
- package/.agent-context/blueprints/spring-boot-api.md +0 -218
- package/.agent-context/profiles/platform.md +0 -13
- package/.agent-context/profiles/regulated.md +0 -13
- package/.agent-context/profiles/startup.md +0 -13
- package/.agent-context/review-checklists/frontend-excellence-rubric.md +0 -73
- package/.agent-context/review-checklists/frontend-skill-parity.md +0 -29
- package/.agent-context/review-checklists/frontend-usability.md +0 -35
- package/.agent-context/review-checklists/marketplace-acceptance.md +0 -60
- package/.agent-context/review-checklists/performance-audit.md +0 -71
- package/.agent-context/review-checklists/release-operations.md +0 -33
- package/.agent-context/review-checklists/security-audit.md +0 -119
- package/.agent-context/skills/README.md +0 -63
- package/.agent-context/skills/backend/README.md +0 -68
- package/.agent-context/skills/backend/architecture.md +0 -361
- package/.agent-context/skills/backend/compatibility-manifest.json +0 -8
- package/.agent-context/skills/backend/data-access.md +0 -231
- package/.agent-context/skills/backend/errors.md +0 -138
- package/.agent-context/skills/backend/validation.md +0 -117
- package/.agent-context/skills/backend.md +0 -29
- package/.agent-context/skills/cli/.evidence/compatibility-manifest.json +0 -5
- package/.agent-context/skills/cli/.evidence/sbom-excerpt.json +0 -10
- package/.agent-context/skills/cli/.evidence/test-report.json +0 -8
- package/.agent-context/skills/cli/CHANGELOG.md +0 -6
- package/.agent-context/skills/cli/README.md +0 -56
- package/.agent-context/skills/cli/compatibility-manifest.json +0 -8
- package/.agent-context/skills/cli/init.md +0 -38
- package/.agent-context/skills/cli/output.md +0 -36
- package/.agent-context/skills/cli/package.json +0 -5
- package/.agent-context/skills/cli/safety-telemetry.md +0 -39
- package/.agent-context/skills/cli/tests/.gitkeep +0 -1
- package/.agent-context/skills/cli/upgrade.md +0 -38
- package/.agent-context/skills/cli.md +0 -32
- package/.agent-context/skills/distribution/.evidence/compatibility-manifest.json +0 -9
- package/.agent-context/skills/distribution/.evidence/sbom-excerpt.json +0 -6
- package/.agent-context/skills/distribution/.evidence/test-report.json +0 -8
- package/.agent-context/skills/distribution/CHANGELOG.md +0 -7
- package/.agent-context/skills/distribution/README.md +0 -27
- package/.agent-context/skills/distribution/compatibility-manifest.json +0 -8
- package/.agent-context/skills/distribution/compatibility.md +0 -32
- package/.agent-context/skills/distribution/package.json +0 -5
- package/.agent-context/skills/distribution/provenance-attestation.md +0 -47
- package/.agent-context/skills/distribution/publish.md +0 -37
- package/.agent-context/skills/distribution/rollback.md +0 -32
- package/.agent-context/skills/distribution/tests/.gitkeep +0 -1
- package/.agent-context/skills/distribution.md +0 -32
- package/.agent-context/skills/frontend/.evidence/compatibility-manifest.json +0 -9
- package/.agent-context/skills/frontend/.evidence/sbom-excerpt.json +0 -6
- package/.agent-context/skills/frontend/.evidence/test-report.json +0 -8
- package/.agent-context/skills/frontend/CHANGELOG.md +0 -7
- package/.agent-context/skills/frontend/README.md +0 -50
- package/.agent-context/skills/frontend/accessibility.md +0 -107
- package/.agent-context/skills/frontend/compatibility-manifest.json +0 -8
- package/.agent-context/skills/frontend/conversion-clarity.md +0 -51
- package/.agent-context/skills/frontend/motion.md +0 -67
- package/.agent-context/skills/frontend/package.json +0 -5
- package/.agent-context/skills/frontend/performance.md +0 -63
- package/.agent-context/skills/frontend/responsive-delivery.md +0 -41
- package/.agent-context/skills/frontend/tests/.gitkeep +0 -1
- package/.agent-context/skills/frontend/ui-architecture.md +0 -128
- package/.agent-context/skills/frontend.md +0 -40
- package/.agent-context/skills/fullstack/.evidence/compatibility-manifest.json +0 -9
- package/.agent-context/skills/fullstack/.evidence/sbom-excerpt.json +0 -6
- package/.agent-context/skills/fullstack/.evidence/test-report.json +0 -8
- package/.agent-context/skills/fullstack/CHANGELOG.md +0 -7
- package/.agent-context/skills/fullstack/README.md +0 -27
- package/.agent-context/skills/fullstack/compatibility-manifest.json +0 -8
- package/.agent-context/skills/fullstack/contracts.md +0 -53
- package/.agent-context/skills/fullstack/end-to-end.md +0 -42
- package/.agent-context/skills/fullstack/feature-slicing.md +0 -65
- package/.agent-context/skills/fullstack/package.json +0 -5
- package/.agent-context/skills/fullstack/release-coordination.md +0 -51
- package/.agent-context/skills/fullstack/tests/.gitkeep +0 -1
- package/.agent-context/skills/fullstack.md +0 -30
- package/.agent-context/skills/index.json +0 -107
- package/.agent-context/skills/review-quality/.evidence/compatibility-manifest.json +0 -9
- package/.agent-context/skills/review-quality/.evidence/sbom-excerpt.json +0 -6
- package/.agent-context/skills/review-quality/.evidence/test-report.json +0 -8
- package/.agent-context/skills/review-quality/CHANGELOG.md +0 -7
- package/.agent-context/skills/review-quality/README.md +0 -27
- package/.agent-context/skills/review-quality/benchmark.md +0 -30
- package/.agent-context/skills/review-quality/compatibility-manifest.json +0 -8
- package/.agent-context/skills/review-quality/package.json +0 -5
- package/.agent-context/skills/review-quality/planning.md +0 -38
- package/.agent-context/skills/review-quality/release-decision.md +0 -49
- package/.agent-context/skills/review-quality/security.md +0 -34
- package/.agent-context/skills/review-quality/tests/.gitkeep +0 -1
- package/.agent-context/skills/review-quality.md +0 -34
- package/.agent-context/stacks/csharp.md +0 -149
- package/.agent-context/stacks/flutter.md +0 -16
- package/.agent-context/stacks/go.md +0 -181
- package/.agent-context/stacks/java.md +0 -135
- package/.agent-context/stacks/php.md +0 -192
- package/.agent-context/stacks/python.md +0 -153
- package/.agent-context/stacks/react-native.md +0 -16
- package/.agent-context/stacks/ruby.md +0 -80
- package/.agent-context/stacks/rust.md +0 -86
- package/.agent-context/stacks/typescript.md +0 -317
- package/.agent-context/state/skill-platform.json +0 -38
- package/lib/cli/skill-selector.mjs +0 -232
- package/lib/cli/templates/api-contract.md.id.tmpl +0 -143
- package/lib/cli/templates/api-contract.md.tmpl +0 -143
- package/lib/cli/templates/architecture-decision-record.md.id.tmpl +0 -106
- package/lib/cli/templates/architecture-decision-record.md.tmpl +0 -145
- package/lib/cli/templates/database-schema.md.id.tmpl +0 -74
- package/lib/cli/templates/database-schema.md.tmpl +0 -74
- package/lib/cli/templates/flow-overview.md.id.tmpl +0 -118
- package/lib/cli/templates/flow-overview.md.tmpl +0 -131
- package/lib/cli/templates/project-brief.md.id.tmpl +0 -55
- package/lib/cli/templates/project-brief.md.tmpl +0 -79
- package/scripts/init-project.ps1 +0 -105
- package/scripts/init-project.sh +0 -131
- package/scripts/skill-tier-policy.mjs +0 -76
- package/scripts/trust-scorer.mjs +0 -119
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
# Error Handling & Recovery
|
|
2
|
-
|
|
3
|
-
**Tier:** ADVANCE | **Source:** awesome-copilot (typed errors) + antigravity (recovery patterns) + minimax (error boundary)
|
|
4
|
-
|
|
5
|
-
## Rule: Never Swallow Errors
|
|
6
|
-
|
|
7
|
-
**WRONG:**
|
|
8
|
-
```javascript
|
|
9
|
-
try {
|
|
10
|
-
const payment = await processPayment();
|
|
11
|
-
} catch (err) {
|
|
12
|
-
console.log('oops'); // <- Error lost, no recovery
|
|
13
|
-
}
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
**CORRECT:**
|
|
17
|
-
```javascript
|
|
18
|
-
try {
|
|
19
|
-
const payment = await processPayment();
|
|
20
|
-
} catch (err) {
|
|
21
|
-
if (err instanceof PaymentDeclinedError) {
|
|
22
|
-
// KNOWN: Card declined, user can try again with different card
|
|
23
|
-
throw err;
|
|
24
|
-
} else if (err instanceof NetworkTimeoutError) {
|
|
25
|
-
// MAYBE TEMPORARY: Retry with exponential backoff
|
|
26
|
-
return await retryWithBackoff(() => processPayment());
|
|
27
|
-
} else {
|
|
28
|
-
// UNKNOWN: Log + alert ops team
|
|
29
|
-
logger.error({ err, context: { customerId, amount } });
|
|
30
|
-
throw new InternalServerError('Payment processing failed');
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## Typed Error Codes
|
|
38
|
-
|
|
39
|
-
Instead of generic "Error", use specific, typed errors:
|
|
40
|
-
|
|
41
|
-
### Node.js + Custom Error Classes
|
|
42
|
-
|
|
43
|
-
```javascript
|
|
44
|
-
class ApplicationError extends Error {
|
|
45
|
-
constructor(code, message, statusCode = 500, details = {}) {
|
|
46
|
-
super(message);
|
|
47
|
-
this.code = code; // Machine-readable
|
|
48
|
-
this.statusCode = statusCode; // HTTP status
|
|
49
|
-
this.details = details;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
class PaymentDeclinedError extends ApplicationError {
|
|
54
|
-
constructor(reason) {
|
|
55
|
-
super('PAYMENT_DECLINED', `Card declined: ${reason}`, 402, { reason });
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// Usage in service:
|
|
60
|
-
if (customer.balance < amount) {
|
|
61
|
-
throw new PaymentDeclinedError('Insufficient funds');
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
// Transport layer catches and responds:
|
|
65
|
-
app.post('/payments/charge', async (req, res) => {
|
|
66
|
-
try {
|
|
67
|
-
const result = await paymentService.charge(req.body);
|
|
68
|
-
res.json(result);
|
|
69
|
-
} catch (err) {
|
|
70
|
-
if (err instanceof ApplicationError) {
|
|
71
|
-
res.status(err.statusCode).json({
|
|
72
|
-
error: err.code,
|
|
73
|
-
message: err.message,
|
|
74
|
-
details: err.details
|
|
75
|
-
});
|
|
76
|
-
} else {
|
|
77
|
-
res.status(500).json({ error: 'INTERNAL_SERVER_ERROR' });
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
---
|
|
84
|
-
|
|
85
|
-
## Correlation IDs (Debug Multi-Service Requests)
|
|
86
|
-
|
|
87
|
-
When requests span multiple services, trace them with correlation IDs:
|
|
88
|
-
|
|
89
|
-
```javascript
|
|
90
|
-
// Transport layer: Generate or receive correlation ID
|
|
91
|
-
app.use((req, res, next) => {
|
|
92
|
-
req.correlationId = req.headers['x-correlation-id'] || generateUUID();
|
|
93
|
-
res.setHeader('x-correlation-id', req.correlationId);
|
|
94
|
-
next();
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
// Service layer: Attach to all logs
|
|
98
|
-
logger.info({
|
|
99
|
-
message: 'Processing payment',
|
|
100
|
-
correlationId: req.correlationId,
|
|
101
|
-
customerId,
|
|
102
|
-
amount
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
// Logs across all services will have same correlationId
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
## Retry Strategy
|
|
111
|
-
|
|
112
|
-
```javascript
|
|
113
|
-
async function retryWithBackoff(fn, maxAttempts = 3) {
|
|
114
|
-
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
115
|
-
try {
|
|
116
|
-
return await fn();
|
|
117
|
-
} catch (err) {
|
|
118
|
-
if (attempt === maxAttempts) throw err;
|
|
119
|
-
if (!(err instanceof NetworkTimeoutError)) throw err;
|
|
120
|
-
|
|
121
|
-
const delay = Math.pow(2, attempt - 1) * 1000; // 1s, 2s, 4s
|
|
122
|
-
await sleep(delay);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
---
|
|
129
|
-
|
|
130
|
-
## Checklist
|
|
131
|
-
|
|
132
|
-
- [ ] All caught errors are typed (not generic `Error`)
|
|
133
|
-
- [ ] All errors have machine-readable code
|
|
134
|
-
- [ ] Production errors logged with context (correlationId, userId)
|
|
135
|
-
- [ ] Retry logic only for transient failures (timeouts, 5xx)
|
|
136
|
-
- [ ] User-level errors have helpful messages (no SQL/stack traces)
|
|
137
|
-
- [ ] Critical errors alert ops (Slack, PagerDuty)
|
|
138
|
-
- Keep retry and rollback behavior explicit.
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
# Input Validation & Parameterized Queries
|
|
2
|
-
|
|
3
|
-
**Tier:** ADVANCE | **Source:** awesome-copilot (boundaries) + antigravity (security halt) + minimax (validation patterns)
|
|
4
|
-
|
|
5
|
-
## Why Validation at Boundaries Matters
|
|
6
|
-
|
|
7
|
-
Rule: **All external input is untrusted.** Validate at API entry point before touching business logic or database.
|
|
8
|
-
|
|
9
|
-
Common vulnerabilities when skipped:
|
|
10
|
-
- SQL injection: Unparameterized queries with user input
|
|
11
|
-
- Type confusion: String input treated as number
|
|
12
|
-
- Business logic bypass: Missing eligibility checks
|
|
13
|
-
- Data corruption: Invalid state transitions
|
|
14
|
-
|
|
15
|
-
**SECURITY HALT:** If you find unvalidated input directly in database queries, stop feature development. Fix first.
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## Layer 1: HTTP Request Validation
|
|
20
|
-
|
|
21
|
-
Validate shape, type, required fields **before** touching service layer.
|
|
22
|
-
|
|
23
|
-
### Node.js + Zod (Type-Safe)
|
|
24
|
-
|
|
25
|
-
```javascript
|
|
26
|
-
import { z } from 'zod';
|
|
27
|
-
|
|
28
|
-
const chargeSchema = z.object({
|
|
29
|
-
amount: z.number().min(50).max(100000),
|
|
30
|
-
customerId: z.string().uuid(),
|
|
31
|
-
cardToken: z.string().min(10).max(1000),
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
app.post('/payments/charge', async (req, res) => {
|
|
35
|
-
// Validate shape + types
|
|
36
|
-
const parsed = chargeSchema.safeParse(req.body);
|
|
37
|
-
if (!parsed.success) {
|
|
38
|
-
return res.status(400).json({
|
|
39
|
-
error: 'Invalid request',
|
|
40
|
-
details: parsed.error.errors
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// Now safe to pass to service
|
|
45
|
-
const result = await paymentService.charge(parsed.data);
|
|
46
|
-
res.json(result);
|
|
47
|
-
});
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### Python + Pydantic
|
|
51
|
-
|
|
52
|
-
```python
|
|
53
|
-
from pydantic import BaseModel, Field
|
|
54
|
-
|
|
55
|
-
class ChargeRequest(BaseModel):
|
|
56
|
-
amount: float = Field(..., ge=50, le=100000)
|
|
57
|
-
customer_id: str = Field(..., min_length=36, max_length=36)
|
|
58
|
-
card_token: str = Field(..., min_length=10, max_length=1000)
|
|
59
|
-
|
|
60
|
-
@app.post("/payments/charge")
|
|
61
|
-
async def charge_payment(req: ChargeRequest):
|
|
62
|
-
result = await payment_service.charge(req.dict())
|
|
63
|
-
return result
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
---
|
|
67
|
-
|
|
68
|
-
## Layer 2: SQL Query Parameterization
|
|
69
|
-
|
|
70
|
-
### WRONG (SQL Injection)
|
|
71
|
-
|
|
72
|
-
```javascript
|
|
73
|
-
const customerId = req.body.customerId;
|
|
74
|
-
const query = `SELECT * FROM customers WHERE id = '${customerId}'`;
|
|
75
|
-
// Input: '; DROP TABLE customers; --'
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### CORRECT (Parameterized)
|
|
79
|
-
|
|
80
|
-
```javascript
|
|
81
|
-
await db.one(
|
|
82
|
-
'SELECT * FROM customers WHERE id = $1',
|
|
83
|
-
[customerId] // Parameterized
|
|
84
|
-
);
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
## Layer 3: Business Logic Validation
|
|
90
|
-
|
|
91
|
-
```javascript
|
|
92
|
-
async charge({ amount, customerId, cardToken }) {
|
|
93
|
-
// Already validated: amount in range, customerId is UUID
|
|
94
|
-
|
|
95
|
-
// Now validate business rules
|
|
96
|
-
const customer = await customerRepo.findById(customerId);
|
|
97
|
-
if (!customer) throw new NotFoundError('Customer');
|
|
98
|
-
if (customer.status !== 'active') throw new BusinessError('Account suspended');
|
|
99
|
-
if (customer.dailyLimit && customer.dailySpent + amount > customer.dailyLimit) {
|
|
100
|
-
throw new BusinessError('Daily limit exceeded');
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
// Safe to proceed
|
|
104
|
-
}
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
|
-
## Checklist
|
|
110
|
-
|
|
111
|
-
- [ ] All route handlers validate request shape (Zod/Pydantic)
|
|
112
|
-
- [ ] All database queries use parameterized statements
|
|
113
|
-
- [ ] All external API responses validated before use
|
|
114
|
-
- [ ] Business rules checked in Service layer
|
|
115
|
-
- [ ] Error messages safe (no SQL leaked to client)
|
|
116
|
-
- [ ] Tests cover invalid inputs
|
|
117
|
-
- Keep validation deterministic and testable.
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# Backend Skill Pack
|
|
2
|
-
|
|
3
|
-
Default tier: `advance`
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
Build backend systems with strict layer separation, typed boundaries, and operational safety.
|
|
7
|
-
|
|
8
|
-
## In Scope
|
|
9
|
-
- Transport, service, repository, and domain separation
|
|
10
|
-
- Validation at boundaries
|
|
11
|
-
- Error handling and observability
|
|
12
|
-
- Data access and transaction safety
|
|
13
|
-
- API and event contract design
|
|
14
|
-
|
|
15
|
-
## Must-Have Checks
|
|
16
|
-
- No business logic in transport layer
|
|
17
|
-
- No HTTP objects in application layer
|
|
18
|
-
- No raw SQL in controllers or services
|
|
19
|
-
- All external input validated before business logic
|
|
20
|
-
- Typed errors and explicit failure paths
|
|
21
|
-
|
|
22
|
-
## Evidence
|
|
23
|
-
- Unit and integration tests
|
|
24
|
-
- API contract docs
|
|
25
|
-
- Validation schemas
|
|
26
|
-
- Release gate output
|
|
27
|
-
|
|
28
|
-
## Fallback
|
|
29
|
-
- Standard mode is allowed only for legacy compatibility and must be flagged in release evidence.
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
# CLI Engineering Skills
|
|
2
|
-
|
|
3
|
-
Default tier: `advance`
|
|
4
|
-
|
|
5
|
-
This domain covers command design, safe mutation workflows, and machine-readable output conventions for automation.
|
|
6
|
-
|
|
7
|
-
## Topics
|
|
8
|
-
- [Init Flow](init.md) - Deterministic project initialization with explicit write plans
|
|
9
|
-
- [Upgrade Flow](upgrade.md) - Safe upgrades with dry-run, rollback, and compatibility checks
|
|
10
|
-
- [Machine-Readable Output](output.md) - Stable JSON output and deterministic exit semantics
|
|
11
|
-
- [Safety and Telemetry](safety-telemetry.md) - Operational signal capture and release-facing CLI governance summaries
|
|
12
|
-
|
|
13
|
-
## Operating Model
|
|
14
|
-
- Use `advance` for normal command work.
|
|
15
|
-
- Escalate to `expert` when commands mutate user state or require migration safety.
|
|
16
|
-
|
|
17
|
-
## Above-Line Additions
|
|
18
|
-
- Mandatory dry-run support for mutating commands.
|
|
19
|
-
- Structured error payloads for CI/CD and bots.
|
|
20
|
-
- Explicit rollback plans for upgrade paths.
|
|
21
|
-
- Plug-and-play init presets for common stacks and blueprints.
|
|
22
|
-
|
|
23
|
-
## Installation and Entry Paths
|
|
24
|
-
|
|
25
|
-
Choose the path that fits your workflow:
|
|
26
|
-
|
|
27
|
-
- `agentic-senior-core launch` for a numbered interactive chooser.
|
|
28
|
-
- `npm install -g @fatidaprilian/agentic-senior-core` for a global command.
|
|
29
|
-
- `npm exec --yes @fatidaprilian/agentic-senior-core init` for a one-off run.
|
|
30
|
-
- `npx @fatidaprilian/agentic-senior-core init` for a package-managed local run.
|
|
31
|
-
- GitHub template for zero-install project bootstrap.
|
|
32
|
-
|
|
33
|
-
## Preset Starts
|
|
34
|
-
|
|
35
|
-
Use presets when you want fewer choices at the start:
|
|
36
|
-
|
|
37
|
-
- `frontend-web` - TypeScript + API Next.js + balanced profile.
|
|
38
|
-
- `backend-api` - Python + FastAPI + balanced profile.
|
|
39
|
-
- `fullstack-product` - TypeScript + API Next.js + balanced profile.
|
|
40
|
-
- `platform-governance` - Go + Go service + strict profile.
|
|
41
|
-
- `mobile-react-native` - React Native + mobile app + balanced profile.
|
|
42
|
-
- `mobile-flutter` - Flutter + mobile app + balanced profile.
|
|
43
|
-
- `observability-platform` - Go + observability + strict profile.
|
|
44
|
-
- `typescript-nestjs-service` - TypeScript + NestJS module blueprint + balanced profile.
|
|
45
|
-
- `java-enterprise-api` - Java + Spring Boot API + strict profile.
|
|
46
|
-
- `dotnet-enterprise-api` - C# + ASP.NET API + strict profile.
|
|
47
|
-
- `php-laravel-api` - PHP + Laravel API + balanced profile.
|
|
48
|
-
- `kubernetes-platform` - Go + Kubernetes manifests + strict profile.
|
|
49
|
-
|
|
50
|
-
Example:
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
agentic-senior-core init --preset frontend-web
|
|
54
|
-
agentic-senior-core init --preset backend-api --ci true
|
|
55
|
-
agentic-senior-core launch
|
|
56
|
-
```
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# Init Flow
|
|
2
|
-
|
|
3
|
-
Tier: ADVANCE
|
|
4
|
-
|
|
5
|
-
Initialization commands must be deterministic, reversible where possible, and explicit about filesystem mutations.
|
|
6
|
-
|
|
7
|
-
## Design Principles
|
|
8
|
-
|
|
9
|
-
- Predictable output for identical input flags.
|
|
10
|
-
- Safe defaults when users omit options.
|
|
11
|
-
- Preflight summary before any file write.
|
|
12
|
-
|
|
13
|
-
## Required Init Sequence
|
|
14
|
-
|
|
15
|
-
1. Validate prerequisites (runtime, permissions, existing files).
|
|
16
|
-
2. Resolve stack/profile/blueprint selection.
|
|
17
|
-
3. Print write plan summary.
|
|
18
|
-
4. Apply scaffold atomically.
|
|
19
|
-
5. Emit machine-readable onboarding report.
|
|
20
|
-
|
|
21
|
-
## Write Safety
|
|
22
|
-
|
|
23
|
-
- Refuse to overwrite existing files without explicit flag.
|
|
24
|
-
- Use idempotent initialization where feasible.
|
|
25
|
-
- Keep generated files grouped by feature intent, not random dump.
|
|
26
|
-
|
|
27
|
-
## Anti-Patterns
|
|
28
|
-
|
|
29
|
-
- Hidden writes without disclosure.
|
|
30
|
-
- Interactive-only flow with no non-interactive equivalent.
|
|
31
|
-
- Ambiguous defaults that vary by environment.
|
|
32
|
-
|
|
33
|
-
## Review Checklist
|
|
34
|
-
|
|
35
|
-
- [ ] Preflight checks are explicit and actionable.
|
|
36
|
-
- [ ] Generated file set is deterministic.
|
|
37
|
-
- [ ] Dry-run preview exists for init planning.
|
|
38
|
-
- [ ] Exit codes distinguish validation vs runtime failures.
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# Machine-Readable Output
|
|
2
|
-
|
|
3
|
-
Tier: ADVANCE
|
|
4
|
-
|
|
5
|
-
CLI output must support both human readability and automation reliability.
|
|
6
|
-
|
|
7
|
-
## Output Contract
|
|
8
|
-
|
|
9
|
-
- Human mode: concise narrative and actionable next steps.
|
|
10
|
-
- JSON mode: deterministic schema, stable field names, and clear status.
|
|
11
|
-
|
|
12
|
-
## JSON Schema Guidelines
|
|
13
|
-
|
|
14
|
-
- Include `version`, `timestamp`, `status`, and `summary`.
|
|
15
|
-
- Include `artifacts` list for produced files.
|
|
16
|
-
- Include `errors` array with machine-readable codes.
|
|
17
|
-
- Avoid embedding plain stack traces in public payloads.
|
|
18
|
-
|
|
19
|
-
## Exit Code Conventions
|
|
20
|
-
|
|
21
|
-
- `0`: success
|
|
22
|
-
- `1`: validation or runtime failure
|
|
23
|
-
- `2`: policy/gate failure
|
|
24
|
-
|
|
25
|
-
## Determinism Rules
|
|
26
|
-
|
|
27
|
-
- Stable key ordering where practical.
|
|
28
|
-
- No random IDs unless explicitly requested.
|
|
29
|
-
- Timestamps in ISO 8601 format.
|
|
30
|
-
|
|
31
|
-
## Review Checklist
|
|
32
|
-
|
|
33
|
-
- [ ] JSON output passes schema validation.
|
|
34
|
-
- [ ] Exit codes match documented behavior.
|
|
35
|
-
- [ ] Error payload includes code and remediation hint.
|
|
36
|
-
- [ ] Human output remains concise and useful.
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# Safety and Telemetry
|
|
2
|
-
|
|
3
|
-
Tier: ADVANCE
|
|
4
|
-
|
|
5
|
-
CLI safety telemetry captures operational signals that help maintainers detect drift, reduce onboarding failures, and enforce release quality.
|
|
6
|
-
|
|
7
|
-
## Signal Categories
|
|
8
|
-
|
|
9
|
-
Capture and review machine-readable CLI signals:
|
|
10
|
-
|
|
11
|
-
- Validation and release-gate status.
|
|
12
|
-
- Preflight failure categories.
|
|
13
|
-
- Rollback trigger frequency.
|
|
14
|
-
- Preset usage distribution across onboarding sessions.
|
|
15
|
-
|
|
16
|
-
## Output Contract
|
|
17
|
-
|
|
18
|
-
Telemetry reports should remain automation-friendly:
|
|
19
|
-
|
|
20
|
-
- Stable JSON shape.
|
|
21
|
-
- ISO timestamps.
|
|
22
|
-
- Explicit status fields.
|
|
23
|
-
- Actionable blocker summary.
|
|
24
|
-
|
|
25
|
-
Human-facing logs can remain concise, but automation payloads should preserve full diagnostic details.
|
|
26
|
-
|
|
27
|
-
## Governance Use Cases
|
|
28
|
-
|
|
29
|
-
- Weekly maintainership report generation.
|
|
30
|
-
- Detecting repeated onboarding failures caused by conflicting local files.
|
|
31
|
-
- Tracking whether preset expansion improves adoption.
|
|
32
|
-
- Confirming rollback operations remain low-frequency and controlled.
|
|
33
|
-
|
|
34
|
-
## Review Checklist
|
|
35
|
-
|
|
36
|
-
- [ ] Safety signals are emitted in machine-readable format.
|
|
37
|
-
- [ ] Preset and failure telemetry are captured consistently.
|
|
38
|
-
- [ ] Operational reports include blocker summaries.
|
|
39
|
-
- [ ] Telemetry output is suitable for CI artifact upload.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# Keep this empty tests directory for V2.0-004 trust-scorer tests
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# Upgrade Flow
|
|
2
|
-
|
|
3
|
-
Tier: ADVANCE
|
|
4
|
-
|
|
5
|
-
Upgrade commands must prioritize compatibility, transparency, and recovery.
|
|
6
|
-
|
|
7
|
-
## Required Controls
|
|
8
|
-
|
|
9
|
-
- Dry-run mode to preview changes.
|
|
10
|
-
- Compatibility checks before mutation.
|
|
11
|
-
- Backup or rollback path for critical files.
|
|
12
|
-
|
|
13
|
-
## Upgrade Sequence
|
|
14
|
-
|
|
15
|
-
1. Read current version and target version.
|
|
16
|
-
2. Evaluate compatibility matrix.
|
|
17
|
-
3. Produce migration plan (files to add/change/remove).
|
|
18
|
-
4. Execute with transactional mindset.
|
|
19
|
-
5. Emit post-upgrade report with changed artifacts.
|
|
20
|
-
|
|
21
|
-
## Failure Handling
|
|
22
|
-
|
|
23
|
-
- On partial failure, rollback modified artifacts or provide deterministic recovery instructions.
|
|
24
|
-
- Never leave silent half-upgraded state.
|
|
25
|
-
- Exit with explicit status code and structured error payload.
|
|
26
|
-
|
|
27
|
-
## Anti-Patterns
|
|
28
|
-
|
|
29
|
-
- In-place mutation without preview.
|
|
30
|
-
- Version bump without migration note.
|
|
31
|
-
- Breaking changes in minor release without contract guard.
|
|
32
|
-
|
|
33
|
-
## Review Checklist
|
|
34
|
-
|
|
35
|
-
- [ ] Dry-run output is complete and stable.
|
|
36
|
-
- [ ] Upgrade report captures all changed files.
|
|
37
|
-
- [ ] Rollback path is tested.
|
|
38
|
-
- [ ] Compatibility failures block mutation.
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# CLI Skill Pack
|
|
2
|
-
|
|
3
|
-
Default tier: `advance`
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
Create smart command-line workflows that guide users efficiently and safely.
|
|
7
|
-
|
|
8
|
-
## In Scope
|
|
9
|
-
- Interactive initialization and upgrade flows
|
|
10
|
-
- Safe defaults and confirmation steps
|
|
11
|
-
- Machine-readable output for automation
|
|
12
|
-
- Validation and self-healing hooks
|
|
13
|
-
- Cross-platform shell behavior
|
|
14
|
-
- Preset ergonomics and operational telemetry outputs
|
|
15
|
-
|
|
16
|
-
## Must-Have Checks
|
|
17
|
-
- Explicit command help and examples
|
|
18
|
-
- Deterministic output format for automation
|
|
19
|
-
- Safe destructive-action guards
|
|
20
|
-
- Validation before mutation
|
|
21
|
-
- Exit codes reflect success and failure clearly
|
|
22
|
-
- Preset catalog remains discoverable and tested in smoke tests
|
|
23
|
-
|
|
24
|
-
## Evidence
|
|
25
|
-
- CLI smoke tests
|
|
26
|
-
- Machine-readable report output
|
|
27
|
-
- Upgrade dry-run output
|
|
28
|
-
- Cross-platform execution notes
|
|
29
|
-
- Weekly governance report references CLI trust tier and release posture
|
|
30
|
-
|
|
31
|
-
## Fallback
|
|
32
|
-
- Standard mode can remain available for compatibility, but advance is the default user experience.
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": "compatibility-manifest-v1",
|
|
3
|
-
"artifactType": "skill-domain-evidence",
|
|
4
|
-
"domain": "distribution",
|
|
5
|
-
"ides": ["cursor", "windsurf", "copilot", "gemini", "claude", "codex", "cline"],
|
|
6
|
-
"nodeMin": "18",
|
|
7
|
-
"platforms": ["windows", "linux", "macos"],
|
|
8
|
-
"validatedAt": "2026-04-11T12:00:00Z"
|
|
9
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# Distribution Engineering Skills
|
|
2
|
-
|
|
3
|
-
Default tier: `expert`
|
|
4
|
-
|
|
5
|
-
This domain governs release packaging, compatibility policy, and rollback readiness.
|
|
6
|
-
|
|
7
|
-
## Topics
|
|
8
|
-
- [Publish Hygiene](publish.md) - Package integrity, provenance, and release evidence
|
|
9
|
-
- [Rollback](rollback.md) - Recovery-first release operations
|
|
10
|
-
- [Compatibility](compatibility.md) - Runtime/tooling support policy and guardrails
|
|
11
|
-
- [Provenance Attestation](provenance-attestation.md) - SBOM linkage, artifact identity, and maintainership traceability
|
|
12
|
-
|
|
13
|
-
## Operating Model
|
|
14
|
-
- Use `expert` as the default distribution tier.
|
|
15
|
-
- Block release if rollback and compatibility guarantees are not verified.
|
|
16
|
-
|
|
17
|
-
## Above-Line Additions
|
|
18
|
-
- Release gates tied to benchmark and compatibility checks.
|
|
19
|
-
- Supply-chain artifacts (SBOM/provenance) as first-class outputs.
|
|
20
|
-
- Explicit rollback drills before critical releases.
|
|
21
|
-
|
|
22
|
-
## Usage Example
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
npm run gate:release
|
|
26
|
-
npm run report:governance-weekly
|
|
27
|
-
```
|