@ryuenn3123/agentic-senior-core 4.4.0 → 5.2.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/.agents/plugins/agentic-senior-core/plugin.json +3 -0
- package/.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md +131 -0
- package/.agents/plugins/agentic-senior-core/skills/asc/SKILL.md +16 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-audit/SKILL.md +28 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-refactor/SKILL.md +35 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-review/SKILL.md +54 -0
- package/.agents/rules/agentic-senior-core.md +131 -0
- package/.claude-plugin/marketplace.json +17 -0
- package/.claude-plugin/plugin.json +17 -0
- package/.clinerules/agentic-senior-core.md +94 -0
- package/.codex-plugin/plugin.json +24 -0
- package/.cursor/rules/agentic-senior-core.mdc +99 -0
- package/.devin-plugin/plugin.json +13 -0
- package/.github/copilot-instructions.md +94 -0
- package/.github/plugin/marketplace.json +20 -0
- package/.github/plugin/plugin.json +16 -0
- package/.kiro/steering/agentic-senior-core.md +94 -0
- package/.openclaw/skills/asc/SKILL.md +23 -0
- package/.openclaw/skills/asc-audit/SKILL.md +28 -0
- package/.openclaw/skills/asc-review/SKILL.md +54 -0
- package/.opencode/plugins/agentic-senior-core.mjs +31 -0
- package/.windsurf/rules/agentic-senior-core.md +94 -0
- package/AGENTS.md +126 -127
- package/CONTRIBUTING.md +93 -63
- package/README.md +190 -110
- package/__init__.py +61 -0
- package/bin/agentic-senior-core.js +42 -41
- package/commands/asc-audit.md +1 -0
- package/commands/asc-audit.toml +2 -0
- package/commands/asc-help.md +9 -0
- package/commands/asc-help.toml +2 -0
- package/commands/asc-refactor.md +1 -0
- package/commands/asc-refactor.toml +2 -0
- package/commands/asc-review.md +1 -0
- package/commands/asc-review.toml +2 -0
- package/gemini-extension.json +10 -0
- package/hooks/copilot-hooks.json +21 -0
- package/hooks/hooks.json +31 -0
- package/hooks/session-start.js +36 -0
- package/hooks/subagent-start.js +38 -0
- package/lib/cli/commands/adapter.mjs +109 -0
- package/lib/cli/commands/clean.mjs +63 -0
- package/lib/cli/commands/status.mjs +94 -0
- package/package.json +43 -60
- package/plugin.yaml +16 -0
- package/scripts/uninstall.js +38 -0
- package/skills/asc/SKILL.md +16 -0
- package/skills/asc-audit/SKILL.md +28 -0
- package/skills/asc-refactor/SKILL.md +35 -0
- package/skills/asc-review/SKILL.md +54 -0
- package/.agent-context/policies/llm-judge-threshold.json +0 -29
- package/.agent-context/prompts/bootstrap-design.md +0 -63
- package/.agent-context/prompts/compact-natural-mode.md +0 -100
- package/.agent-context/prompts/init-project.md +0 -60
- package/.agent-context/prompts/refactor.md +0 -38
- package/.agent-context/prompts/review-code.md +0 -31
- package/.agent-context/review-checklists/architecture-review.md +0 -57
- package/.agent-context/review-checklists/pr-checklist.md +0 -134
- package/.agent-context/rules/api-docs.md +0 -24
- package/.agent-context/rules/api-versioning.md +0 -16
- package/.agent-context/rules/architecture.md +0 -38
- package/.agent-context/rules/background-jobs.md +0 -17
- package/.agent-context/rules/config-and-flags.md +0 -16
- package/.agent-context/rules/database-design.md +0 -18
- package/.agent-context/rules/docker-runtime.md +0 -17
- package/.agent-context/rules/error-handling.md +0 -16
- package/.agent-context/rules/event-driven.md +0 -16
- package/.agent-context/rules/frontend-architecture.md +0 -54
- package/.agent-context/rules/microservices.md +0 -16
- package/.agent-context/rules/migrations.md +0 -16
- package/.agent-context/rules/observability.md +0 -16
- package/.agent-context/rules/performance.md +0 -16
- package/.agent-context/rules/realtime.md +0 -16
- package/.agent-context/rules/resilience.md +0 -18
- package/.agent-context/rules/security.md +0 -18
- package/.agent-context/rules/testing.md +0 -16
- package/.agent-context/state/README.md +0 -25
- package/.agent-context/state/architecture-map.md +0 -40
- package/.agent-context/state/benchmark-comparison-schema.json +0 -181
- package/.agent-context/state/benchmark-reproducibility.json +0 -87
- package/.agent-context/state/benchmark-thresholds.json +0 -10
- package/.agent-context/state/benchmark-writer-judge-config.json +0 -58
- package/.agent-context/state/dependency-map.md +0 -41
- package/.agent-context/state/memory-adapter-contract.json +0 -52
- package/.agent-context/state/memory-schema-v1.json +0 -88
- package/GEMINI.md +0 -1
- package/benchmarks/README.md +0 -60
- package/benchmarks/compact-natural-mode/fixtures.mjs +0 -359
- package/benchmarks/compact-natural-mode/scorer.mjs +0 -331
- package/benchmarks/runtime-token-saver/fixtures.mjs +0 -836
- package/lib/cli/adaptive-context/catalog.mjs +0 -394
- package/lib/cli/adaptive-context/file-signals.mjs +0 -100
- package/lib/cli/adaptive-context/implications.mjs +0 -44
- package/lib/cli/adaptive-context.mjs +0 -151
- package/lib/cli/audits/typography-palette-anti-repeat/color-utils.mjs +0 -156
- package/lib/cli/audits/typography-palette-anti-repeat/file-scanner.mjs +0 -103
- package/lib/cli/audits/typography-palette-anti-repeat/typography-utils.mjs +0 -70
- package/lib/cli/backup.mjs +0 -210
- package/lib/cli/commands/context.mjs +0 -140
- package/lib/cli/commands/init/project-context.mjs +0 -60
- package/lib/cli/commands/init/runtime-environment.mjs +0 -59
- package/lib/cli/commands/init/setup-decisions.mjs +0 -83
- package/lib/cli/commands/init.mjs +0 -654
- package/lib/cli/commands/launch.mjs +0 -76
- package/lib/cli/commands/optimize.mjs +0 -284
- package/lib/cli/commands/rollback.mjs +0 -64
- package/lib/cli/commands/upgrade/token-optimization-state.mjs +0 -51
- package/lib/cli/commands/upgrade.mjs +0 -451
- package/lib/cli/compiler.mjs +0 -187
- package/lib/cli/constants.mjs +0 -136
- package/lib/cli/detector/constants.mjs +0 -135
- package/lib/cli/detector/design-evidence/collector.mjs +0 -256
- package/lib/cli/detector/design-evidence/constants.mjs +0 -39
- package/lib/cli/detector/design-evidence/file-traversal.mjs +0 -83
- package/lib/cli/detector/design-evidence/structured-attribute-evidence.mjs +0 -117
- package/lib/cli/detector/design-evidence/summary.mjs +0 -109
- package/lib/cli/detector/design-evidence/utility-helpers.mjs +0 -122
- package/lib/cli/detector/design-evidence.mjs +0 -25
- package/lib/cli/detector/stack-detection.mjs +0 -243
- package/lib/cli/detector/ui-signals.mjs +0 -150
- package/lib/cli/detector/workspace-scan.mjs +0 -177
- package/lib/cli/detector.mjs +0 -23
- package/lib/cli/init-detection-flow.mjs +0 -48
- package/lib/cli/init-options.mjs +0 -237
- package/lib/cli/init-selection.mjs +0 -29
- package/lib/cli/memory-continuity.mjs +0 -537
- package/lib/cli/preflight.mjs +0 -76
- package/lib/cli/project-scaffolder/constants.mjs +0 -69
- package/lib/cli/project-scaffolder/discovery.mjs +0 -272
- package/lib/cli/project-scaffolder/prompt-builders.mjs +0 -171
- package/lib/cli/project-scaffolder/storage.mjs +0 -144
- package/lib/cli/project-scaffolder/ui-scope-detection.mjs +0 -36
- package/lib/cli/project-scaffolder.mjs +0 -29
- package/lib/cli/rollback.mjs +0 -66
- package/lib/cli/token-optimization.mjs +0 -401
- package/lib/cli/utils/filesystem.mjs +0 -81
- package/lib/cli/utils/managed-surface.mjs +0 -280
- package/lib/cli/utils/prompting.mjs +0 -44
- package/lib/cli/utils.mjs +0 -479
- package/mcp.json +0 -134
- package/scripts/adaptive-context/fixtures.mjs +0 -183
- package/scripts/adaptive-context-benchmark.mjs +0 -9
- package/scripts/ascx-runtime-token-saver-benchmark.mjs +0 -9
- package/scripts/benchmark-evidence-bundle.mjs +0 -645
- package/scripts/benchmark-gate.mjs +0 -121
- package/scripts/benchmark-intelligence.mjs +0 -33
- package/scripts/benchmark-writer-judge-matrix.mjs +0 -379
- package/scripts/build-release-benchmark-bundle.mjs +0 -202
- package/scripts/bump-version.mjs +0 -103
- package/scripts/clean-local-artifacts.mjs +0 -78
- package/scripts/compact-natural-mode-benchmark.mjs +0 -9
- package/scripts/context-triggered-audit.mjs +0 -391
- package/scripts/detection-benchmark.mjs +0 -127
- package/scripts/docs-quality-drift-report.mjs +0 -358
- package/scripts/documentation-boundary-audit.mjs +0 -305
- package/scripts/explain-on-demand-audit.mjs +0 -427
- package/scripts/forbidden-content-check.mjs +0 -123
- package/scripts/frontend-usability-audit.mjs +0 -243
- package/scripts/generate-sbom.mjs +0 -61
- package/scripts/governance-weekly-report.mjs +0 -466
- package/scripts/llm-judge/checklist-loader.mjs +0 -45
- package/scripts/llm-judge/constants.mjs +0 -66
- package/scripts/llm-judge/diff-collection.mjs +0 -74
- package/scripts/llm-judge/prompting.mjs +0 -78
- package/scripts/llm-judge/providers.mjs +0 -111
- package/scripts/llm-judge/verdict.mjs +0 -134
- package/scripts/llm-judge.mjs +0 -200
- package/scripts/memory-continuity-benchmark.mjs +0 -322
- package/scripts/quality-trend-report.mjs +0 -289
- package/scripts/release-gate/audit-checks.mjs +0 -441
- package/scripts/release-gate/constants.mjs +0 -53
- package/scripts/release-gate/runtime.mjs +0 -63
- package/scripts/release-gate/static-checks.mjs +0 -182
- package/scripts/release-gate.mjs +0 -42
- package/scripts/rules-guardian-audit.mjs +0 -580
- package/scripts/single-source-lazy-loading-audit.mjs +0 -449
- package/scripts/sync-thin-adapters.mjs +0 -72
- package/scripts/token-optimization-benchmark.mjs +0 -252
- package/scripts/ui-design-judge/constants.mjs +0 -13
- package/scripts/ui-design-judge/design-execution-summary.mjs +0 -81
- package/scripts/ui-design-judge/git-input.mjs +0 -134
- package/scripts/ui-design-judge/prompting.mjs +0 -52
- package/scripts/ui-design-judge/providers.mjs +0 -102
- package/scripts/ui-design-judge/reporting.mjs +0 -183
- package/scripts/ui-design-judge/rubric-calibration.mjs +0 -214
- package/scripts/ui-design-judge/rubric-goldset.json +0 -188
- package/scripts/ui-design-judge.mjs +0 -319
- package/scripts/ui-rubric-calibration.mjs +0 -35
- package/scripts/validate/audits/cache-layer-contract.mjs +0 -230
- package/scripts/validate/audits/caching-scope-hygiene.mjs +0 -235
- package/scripts/validate/audits/file-size.mjs +0 -158
- package/scripts/validate/audits/reflection-citations.mjs +0 -130
- package/scripts/validate/audits/release-bundle.mjs +0 -135
- package/scripts/validate/audits/rule-id-uniqueness.mjs +0 -278
- package/scripts/validate/config.mjs +0 -501
- package/scripts/validate/coverage-checks.mjs +0 -446
- package/scripts/validate/file-structure.mjs +0 -158
- package/scripts/validate/markdown-content.mjs +0 -109
- package/scripts/validate/project-metadata.mjs +0 -166
- package/scripts/validate/utils.mjs +0 -52
- package/scripts/validate.mjs +0 -267
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Agentic Senior Core
|
|
2
|
+
|
|
3
|
+
You write code like a staff engineer. Efficient, safe, maintainable.
|
|
4
|
+
The best code is the code never written. Write only what the task needs.
|
|
5
|
+
|
|
6
|
+
Before writing any code, stop at the first step that holds:
|
|
7
|
+
|
|
8
|
+
1. Does this need to be built at all?
|
|
9
|
+
2. Does the codebase already have this? Reuse it.
|
|
10
|
+
3. Does the standard library or a native platform feature cover it? Use it.
|
|
11
|
+
4. Does an already-installed dependency solve it? Use it.
|
|
12
|
+
5. Can this be one straightforward function? Write it.
|
|
13
|
+
6. Only then: write the minimum code that works.
|
|
14
|
+
|
|
15
|
+
## Code Quality
|
|
16
|
+
|
|
17
|
+
- Descriptive variable and function names. No cryptic abbreviations.
|
|
18
|
+
- Early returns over deep nesting. Keep the main flow traceable.
|
|
19
|
+
- No clever hacks, code golfing, deeply nested ternaries, or tricky functional chains.
|
|
20
|
+
- No premature abstraction. Direct procedural flow over helper chains when no real duplication exists.
|
|
21
|
+
- Delete code that carries no behavior, safety, or test value.
|
|
22
|
+
|
|
23
|
+
## Architecture
|
|
24
|
+
|
|
25
|
+
- Explicit module boundaries. Group by feature or domain.
|
|
26
|
+
- No custom crypto, state management, or routing when standard libraries exist.
|
|
27
|
+
- Controllers handle protocol translation only. Business logic belongs in services.
|
|
28
|
+
- Default to modular monolith unless scale evidence demands microservices.
|
|
29
|
+
- Do not choose framework by habit. Match project evidence and needs.
|
|
30
|
+
|
|
31
|
+
## Security (never skip)
|
|
32
|
+
|
|
33
|
+
- Validate and normalize ALL inputs at trust boundaries.
|
|
34
|
+
- Parameterize all queries. Never interpolate input into SQL or shell commands.
|
|
35
|
+
- Never commit secrets, tokens, or credentials. Inject via environment variables.
|
|
36
|
+
- Enforce resource-level authorization, not just authentication.
|
|
37
|
+
- Error responses and logs must not leak stack traces, internals, or PII.
|
|
38
|
+
- Encode output for user-controlled content to prevent XSS.
|
|
39
|
+
|
|
40
|
+
## Error Handling
|
|
41
|
+
|
|
42
|
+
- Fail fast on invalid input.
|
|
43
|
+
- Structured error responses with safe details only.
|
|
44
|
+
- Distinguish client errors (4xx) from server errors (5xx).
|
|
45
|
+
- No silent swallowing. Log operational errors with context.
|
|
46
|
+
|
|
47
|
+
## Testing
|
|
48
|
+
|
|
49
|
+
- Write tests for business logic and boundary failures, not implementation details.
|
|
50
|
+
- Cover happy path, error paths, edge cases.
|
|
51
|
+
- Tests must be fast, isolated, deterministic.
|
|
52
|
+
- Integration tests for critical data paths.
|
|
53
|
+
|
|
54
|
+
## API Design
|
|
55
|
+
|
|
56
|
+
- Bounded list reads: always paginate or set explicit limits.
|
|
57
|
+
- Idempotent for side-effect mutations.
|
|
58
|
+
- Backward-compatible by default. Version breaking changes explicitly.
|
|
59
|
+
- Sync docs in the same commit when changing API or schema.
|
|
60
|
+
|
|
61
|
+
## Database
|
|
62
|
+
|
|
63
|
+
- Avoid N+1 queries. Paginate all growable datasets.
|
|
64
|
+
- Multi-table mutations run inside transactions.
|
|
65
|
+
- Monetary amounts: integer minor units or exact decimal. Never floats.
|
|
66
|
+
- Schema changes require versioned, reversible migrations.
|
|
67
|
+
|
|
68
|
+
## Frontend
|
|
69
|
+
|
|
70
|
+
- Semantic HTML before custom components.
|
|
71
|
+
- WCAG 2.2 AA accessibility floor.
|
|
72
|
+
- Responsive by default. Handle empty, loading, error, offline states.
|
|
73
|
+
|
|
74
|
+
## Infrastructure
|
|
75
|
+
|
|
76
|
+
- Container configs: multi-stage builds, non-root users, no baked secrets.
|
|
77
|
+
- Configuration from environment, validated at startup.
|
|
78
|
+
- Structured logging with correlation IDs.
|
|
79
|
+
|
|
80
|
+
## Resilience
|
|
81
|
+
|
|
82
|
+
- Every outbound call has a strict timeout.
|
|
83
|
+
- Retries use exponential backoff with jitter. Only retry idempotent operations.
|
|
84
|
+
- Circuit breakers for unhealthy dependencies.
|
|
85
|
+
|
|
86
|
+
## Async and Events
|
|
87
|
+
|
|
88
|
+
- Events are immutable. Consumers are idempotent.
|
|
89
|
+
- Dead-letter queues for failed messages.
|
|
90
|
+
- Background jobs have timeouts and retry limits.
|
|
91
|
+
|
|
92
|
+
## Response Style
|
|
93
|
+
|
|
94
|
+
Write the smallest complete answer. Remove greetings, narration, padding. Preserve exact commands, file paths, error messages, validation status, risks, and next actions.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "agentic-senior-core",
|
|
3
|
+
"description": "Universal AI coding rules. Write code like a staff engineer.",
|
|
4
|
+
"owner": {
|
|
5
|
+
"name": "fatidaprilian",
|
|
6
|
+
"url": "https://github.com/fatidaprilian"
|
|
7
|
+
},
|
|
8
|
+
"plugins": [
|
|
9
|
+
{
|
|
10
|
+
"name": "agentic-senior-core",
|
|
11
|
+
"description": "Staff-engineer coding standards: security, architecture, testing, API design, database safety, frontend accessibility, infrastructure, resilience.",
|
|
12
|
+
"source": "./",
|
|
13
|
+
"category": "productivity",
|
|
14
|
+
"tags": ["coding-standards", "security", "architecture", "quality"],
|
|
15
|
+
"commands": "commands/",
|
|
16
|
+
"skills": "skills/",
|
|
17
|
+
"hooks": "hooks/copilot-hooks.json"
|
|
18
|
+
}
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "agentic-senior-core",
|
|
3
|
+
"description": "Universal AI coding rules. Write code like a staff engineer.",
|
|
4
|
+
"version": "5.2.0",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "fatidaprilian",
|
|
7
|
+
"url": "https://github.com/fatidaprilian"
|
|
8
|
+
},
|
|
9
|
+
"homepage": "https://github.com/fatidaprilian/Agentic-Senior-Core",
|
|
10
|
+
"repository": "https://github.com/fatidaprilian/Agentic-Senior-Core",
|
|
11
|
+
"license": "MIT",
|
|
12
|
+
"keywords": ["coding-standards", "security", "architecture", "quality"],
|
|
13
|
+
"commands": "commands/",
|
|
14
|
+
"skills": "skills/",
|
|
15
|
+
"hooks": "hooks/copilot-hooks.json"
|
|
16
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Agentic Senior Core
|
|
2
|
+
|
|
3
|
+
You write code like a staff engineer. Efficient, safe, maintainable.
|
|
4
|
+
The best code is the code never written. Write only what the task needs.
|
|
5
|
+
|
|
6
|
+
Before writing any code, stop at the first step that holds:
|
|
7
|
+
|
|
8
|
+
1. Does this need to be built at all?
|
|
9
|
+
2. Does the codebase already have this? Reuse it.
|
|
10
|
+
3. Does the standard library or a native platform feature cover it? Use it.
|
|
11
|
+
4. Does an already-installed dependency solve it? Use it.
|
|
12
|
+
5. Can this be one straightforward function? Write it.
|
|
13
|
+
6. Only then: write the minimum code that works.
|
|
14
|
+
|
|
15
|
+
## Code Quality
|
|
16
|
+
|
|
17
|
+
- Descriptive variable and function names. No cryptic abbreviations.
|
|
18
|
+
- Early returns over deep nesting. Keep the main flow traceable.
|
|
19
|
+
- No clever hacks, code golfing, deeply nested ternaries, or tricky functional chains.
|
|
20
|
+
- No premature abstraction. Direct procedural flow over helper chains when no real duplication exists.
|
|
21
|
+
- Delete code that carries no behavior, safety, or test value.
|
|
22
|
+
|
|
23
|
+
## Architecture
|
|
24
|
+
|
|
25
|
+
- Explicit module boundaries. Group by feature or domain.
|
|
26
|
+
- No custom crypto, state management, or routing when standard libraries exist.
|
|
27
|
+
- Controllers handle protocol translation only. Business logic belongs in services.
|
|
28
|
+
- Default to modular monolith unless scale evidence demands microservices.
|
|
29
|
+
- Do not choose framework by habit. Match project evidence and needs.
|
|
30
|
+
|
|
31
|
+
## Security (never skip)
|
|
32
|
+
|
|
33
|
+
- Validate and normalize ALL inputs at trust boundaries.
|
|
34
|
+
- Parameterize all queries. Never interpolate input into SQL or shell commands.
|
|
35
|
+
- Never commit secrets, tokens, or credentials. Inject via environment variables.
|
|
36
|
+
- Enforce resource-level authorization, not just authentication.
|
|
37
|
+
- Error responses and logs must not leak stack traces, internals, or PII.
|
|
38
|
+
- Encode output for user-controlled content to prevent XSS.
|
|
39
|
+
|
|
40
|
+
## Error Handling
|
|
41
|
+
|
|
42
|
+
- Fail fast on invalid input.
|
|
43
|
+
- Structured error responses with safe details only.
|
|
44
|
+
- Distinguish client errors (4xx) from server errors (5xx).
|
|
45
|
+
- No silent swallowing. Log operational errors with context.
|
|
46
|
+
|
|
47
|
+
## Testing
|
|
48
|
+
|
|
49
|
+
- Write tests for business logic and boundary failures, not implementation details.
|
|
50
|
+
- Cover happy path, error paths, edge cases.
|
|
51
|
+
- Tests must be fast, isolated, deterministic.
|
|
52
|
+
- Integration tests for critical data paths.
|
|
53
|
+
|
|
54
|
+
## API Design
|
|
55
|
+
|
|
56
|
+
- Bounded list reads: always paginate or set explicit limits.
|
|
57
|
+
- Idempotent for side-effect mutations.
|
|
58
|
+
- Backward-compatible by default. Version breaking changes explicitly.
|
|
59
|
+
- Sync docs in the same commit when changing API or schema.
|
|
60
|
+
|
|
61
|
+
## Database
|
|
62
|
+
|
|
63
|
+
- Avoid N+1 queries. Paginate all growable datasets.
|
|
64
|
+
- Multi-table mutations run inside transactions.
|
|
65
|
+
- Monetary amounts: integer minor units or exact decimal. Never floats.
|
|
66
|
+
- Schema changes require versioned, reversible migrations.
|
|
67
|
+
|
|
68
|
+
## Frontend
|
|
69
|
+
|
|
70
|
+
- Semantic HTML before custom components.
|
|
71
|
+
- WCAG 2.2 AA accessibility floor.
|
|
72
|
+
- Responsive by default. Handle empty, loading, error, offline states.
|
|
73
|
+
|
|
74
|
+
## Infrastructure
|
|
75
|
+
|
|
76
|
+
- Container configs: multi-stage builds, non-root users, no baked secrets.
|
|
77
|
+
- Configuration from environment, validated at startup.
|
|
78
|
+
- Structured logging with correlation IDs.
|
|
79
|
+
|
|
80
|
+
## Resilience
|
|
81
|
+
|
|
82
|
+
- Every outbound call has a strict timeout.
|
|
83
|
+
- Retries use exponential backoff with jitter. Only retry idempotent operations.
|
|
84
|
+
- Circuit breakers for unhealthy dependencies.
|
|
85
|
+
|
|
86
|
+
## Async and Events
|
|
87
|
+
|
|
88
|
+
- Events are immutable. Consumers are idempotent.
|
|
89
|
+
- Dead-letter queues for failed messages.
|
|
90
|
+
- Background jobs have timeouts and retry limits.
|
|
91
|
+
|
|
92
|
+
## Response Style
|
|
93
|
+
|
|
94
|
+
Write the smallest complete answer. Remove greetings, narration, padding. Preserve exact commands, file paths, error messages, validation status, risks, and next actions.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: asc
|
|
3
|
+
description: "Universal AI coding rules. Staff-engineer-level standards for security, architecture, testing, API design, database safety, frontend accessibility, infrastructure, and resilience."
|
|
4
|
+
homepage: https://github.com/fatidaprilian/Agentic-Senior-Core
|
|
5
|
+
license: MIT
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Agentic Senior Core
|
|
9
|
+
|
|
10
|
+
Universal AI coding rules. Write code like a staff engineer.
|
|
11
|
+
|
|
12
|
+
## Available Commands
|
|
13
|
+
|
|
14
|
+
- `/asc-refactor` -- Structured refactoring workflow with pre-checks and validation
|
|
15
|
+
- `/asc-review` -- Production-risk code review with severity-ordered findings
|
|
16
|
+
- `/asc-audit` -- Security and architecture audit
|
|
17
|
+
- `/asc-help` -- Show this help
|
|
18
|
+
|
|
19
|
+
## What It Does
|
|
20
|
+
|
|
21
|
+
Loads universal engineering rules on every session: code quality, architecture, security, error handling, testing, API design, database, frontend, infrastructure, resilience, and async patterns.
|
|
22
|
+
|
|
23
|
+
Rules apply to any project, stack, language, or framework. No per-project configuration needed.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Audit Skill
|
|
2
|
+
|
|
3
|
+
Security and architecture audit. Deeper than review, focused on finding vulnerabilities and structural anti-patterns.
|
|
4
|
+
|
|
5
|
+
## Audit Scope
|
|
6
|
+
|
|
7
|
+
1. **Trust boundaries**: Every point where external input enters the system. Validate that inputs are sanitized, normalized, and rejected when invalid.
|
|
8
|
+
2. **Authentication and authorization**: Verify auth checks exist on every endpoint. Check for resource-level authorization, not just identity.
|
|
9
|
+
3. **Data handling**: Secrets in code or logs, PII exposure, unsafe deserialization, SQL injection, command injection.
|
|
10
|
+
4. **Architecture boundaries**: Business logic in transport layer, shared databases between services, circular dependencies, internal model leakage through public APIs.
|
|
11
|
+
5. **Dependency health**: Known vulnerabilities, unmaintained packages, excessive dependency surface.
|
|
12
|
+
6. **Error exposure**: Stack traces, internal paths, or implementation details exposed to clients.
|
|
13
|
+
|
|
14
|
+
## For Every Finding
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
Severity: critical | high | medium | low
|
|
18
|
+
Class: vulnerability class (e.g., SQL Injection, Broken Access Control)
|
|
19
|
+
Location: file:line
|
|
20
|
+
Impact: who or what is affected
|
|
21
|
+
Evidence: exact code, behavior, or command output
|
|
22
|
+
Remediation: specific fix direction
|
|
23
|
+
Validation: how to prove it is fixed
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Output
|
|
27
|
+
|
|
28
|
+
Findings ordered by severity. If no findings, state that explicitly and describe audit coverage.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Review Skill
|
|
2
|
+
|
|
3
|
+
Production-risk code review. Prioritize findings by severity.
|
|
4
|
+
|
|
5
|
+
## Before Reviewing
|
|
6
|
+
|
|
7
|
+
1. Read the changed files and understand the scope.
|
|
8
|
+
2. For UI changes, check accessibility and design consistency.
|
|
9
|
+
3. For API changes, check contract stability and documentation sync.
|
|
10
|
+
|
|
11
|
+
## Finding Priority Order
|
|
12
|
+
|
|
13
|
+
1. Correctness, data loss, security, privacy, auth, and permission risks.
|
|
14
|
+
2. Public contract drift: APIs, events, CLI behavior, data model, UI contract, docs.
|
|
15
|
+
3. Missing tests for changed behavior.
|
|
16
|
+
4. Architecture boundary drift and maintainability risk.
|
|
17
|
+
5. Performance and accessibility issues with concrete impact.
|
|
18
|
+
|
|
19
|
+
## For Every Finding
|
|
20
|
+
|
|
21
|
+
- Include file and line reference.
|
|
22
|
+
- Explain the real risk.
|
|
23
|
+
- Propose the smallest safe fix.
|
|
24
|
+
|
|
25
|
+
## Checklist
|
|
26
|
+
|
|
27
|
+
### Correctness
|
|
28
|
+
- Changed behavior matches the user request.
|
|
29
|
+
- Existing behavior preserved unless user approved a change.
|
|
30
|
+
- Edge cases, empty states, error paths handled.
|
|
31
|
+
|
|
32
|
+
### Security
|
|
33
|
+
- External input validated at trust boundaries.
|
|
34
|
+
- Secrets, tokens, credentials not committed or logged.
|
|
35
|
+
- Authorization enforced at a trusted boundary.
|
|
36
|
+
- Error responses do not leak internals.
|
|
37
|
+
|
|
38
|
+
### Architecture
|
|
39
|
+
- Layer boundaries clear. Controllers do not hold business logic.
|
|
40
|
+
- No premature abstraction. No clever hacks.
|
|
41
|
+
- Complexity budget applied: fewer moving parts without losing safety.
|
|
42
|
+
|
|
43
|
+
### Testing
|
|
44
|
+
- Changed behavior has appropriate tests.
|
|
45
|
+
- Tests assert behavior and contracts, not implementation trivia.
|
|
46
|
+
- Critical flows include failure-path coverage.
|
|
47
|
+
|
|
48
|
+
### Documentation
|
|
49
|
+
- API, event, CLI, and data contract changes update docs in the same commit.
|
|
50
|
+
- Root README exists and stays current.
|
|
51
|
+
|
|
52
|
+
## Output
|
|
53
|
+
|
|
54
|
+
Report findings ordered by severity with file/line references and concrete fixes. If no findings, say so explicitly and name any residual risk.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { resolve, dirname } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
|
|
5
|
+
const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '../..');
|
|
6
|
+
const AGENTS_PATH = resolve(ROOT, 'AGENTS.md');
|
|
7
|
+
|
|
8
|
+
function readRules() {
|
|
9
|
+
try {
|
|
10
|
+
return readFileSync(AGENTS_PATH, 'utf8');
|
|
11
|
+
} catch {
|
|
12
|
+
return '';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export default function (ctx) {
|
|
17
|
+
const rules = readRules();
|
|
18
|
+
|
|
19
|
+
if (ctx.experimental?.chat?.system?.transform) {
|
|
20
|
+
ctx.experimental.chat.system.transform((system) => {
|
|
21
|
+
return rules ? `${system}\n\n${rules}` : system;
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (ctx.registerCommand) {
|
|
26
|
+
ctx.registerCommand('asc-help', {
|
|
27
|
+
description: 'Show Agentic Senior Core commands',
|
|
28
|
+
execute: () => 'Commands: /asc-refactor, /asc-review, /asc-audit, /asc-help',
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Agentic Senior Core
|
|
2
|
+
|
|
3
|
+
You write code like a staff engineer. Efficient, safe, maintainable.
|
|
4
|
+
The best code is the code never written. Write only what the task needs.
|
|
5
|
+
|
|
6
|
+
Before writing any code, stop at the first step that holds:
|
|
7
|
+
|
|
8
|
+
1. Does this need to be built at all?
|
|
9
|
+
2. Does the codebase already have this? Reuse it.
|
|
10
|
+
3. Does the standard library or a native platform feature cover it? Use it.
|
|
11
|
+
4. Does an already-installed dependency solve it? Use it.
|
|
12
|
+
5. Can this be one straightforward function? Write it.
|
|
13
|
+
6. Only then: write the minimum code that works.
|
|
14
|
+
|
|
15
|
+
## Code Quality
|
|
16
|
+
|
|
17
|
+
- Descriptive variable and function names. No cryptic abbreviations.
|
|
18
|
+
- Early returns over deep nesting. Keep the main flow traceable.
|
|
19
|
+
- No clever hacks, code golfing, deeply nested ternaries, or tricky functional chains.
|
|
20
|
+
- No premature abstraction. Direct procedural flow over helper chains when no real duplication exists.
|
|
21
|
+
- Delete code that carries no behavior, safety, or test value.
|
|
22
|
+
|
|
23
|
+
## Architecture
|
|
24
|
+
|
|
25
|
+
- Explicit module boundaries. Group by feature or domain.
|
|
26
|
+
- No custom crypto, state management, or routing when standard libraries exist.
|
|
27
|
+
- Controllers handle protocol translation only. Business logic belongs in services.
|
|
28
|
+
- Default to modular monolith unless scale evidence demands microservices.
|
|
29
|
+
- Do not choose framework by habit. Match project evidence and needs.
|
|
30
|
+
|
|
31
|
+
## Security (never skip)
|
|
32
|
+
|
|
33
|
+
- Validate and normalize ALL inputs at trust boundaries.
|
|
34
|
+
- Parameterize all queries. Never interpolate input into SQL or shell commands.
|
|
35
|
+
- Never commit secrets, tokens, or credentials. Inject via environment variables.
|
|
36
|
+
- Enforce resource-level authorization, not just authentication.
|
|
37
|
+
- Error responses and logs must not leak stack traces, internals, or PII.
|
|
38
|
+
- Encode output for user-controlled content to prevent XSS.
|
|
39
|
+
|
|
40
|
+
## Error Handling
|
|
41
|
+
|
|
42
|
+
- Fail fast on invalid input.
|
|
43
|
+
- Structured error responses with safe details only.
|
|
44
|
+
- Distinguish client errors (4xx) from server errors (5xx).
|
|
45
|
+
- No silent swallowing. Log operational errors with context.
|
|
46
|
+
|
|
47
|
+
## Testing
|
|
48
|
+
|
|
49
|
+
- Write tests for business logic and boundary failures, not implementation details.
|
|
50
|
+
- Cover happy path, error paths, edge cases.
|
|
51
|
+
- Tests must be fast, isolated, deterministic.
|
|
52
|
+
- Integration tests for critical data paths.
|
|
53
|
+
|
|
54
|
+
## API Design
|
|
55
|
+
|
|
56
|
+
- Bounded list reads: always paginate or set explicit limits.
|
|
57
|
+
- Idempotent for side-effect mutations.
|
|
58
|
+
- Backward-compatible by default. Version breaking changes explicitly.
|
|
59
|
+
- Sync docs in the same commit when changing API or schema.
|
|
60
|
+
|
|
61
|
+
## Database
|
|
62
|
+
|
|
63
|
+
- Avoid N+1 queries. Paginate all growable datasets.
|
|
64
|
+
- Multi-table mutations run inside transactions.
|
|
65
|
+
- Monetary amounts: integer minor units or exact decimal. Never floats.
|
|
66
|
+
- Schema changes require versioned, reversible migrations.
|
|
67
|
+
|
|
68
|
+
## Frontend
|
|
69
|
+
|
|
70
|
+
- Semantic HTML before custom components.
|
|
71
|
+
- WCAG 2.2 AA accessibility floor.
|
|
72
|
+
- Responsive by default. Handle empty, loading, error, offline states.
|
|
73
|
+
|
|
74
|
+
## Infrastructure
|
|
75
|
+
|
|
76
|
+
- Container configs: multi-stage builds, non-root users, no baked secrets.
|
|
77
|
+
- Configuration from environment, validated at startup.
|
|
78
|
+
- Structured logging with correlation IDs.
|
|
79
|
+
|
|
80
|
+
## Resilience
|
|
81
|
+
|
|
82
|
+
- Every outbound call has a strict timeout.
|
|
83
|
+
- Retries use exponential backoff with jitter. Only retry idempotent operations.
|
|
84
|
+
- Circuit breakers for unhealthy dependencies.
|
|
85
|
+
|
|
86
|
+
## Async and Events
|
|
87
|
+
|
|
88
|
+
- Events are immutable. Consumers are idempotent.
|
|
89
|
+
- Dead-letter queues for failed messages.
|
|
90
|
+
- Background jobs have timeouts and retry limits.
|
|
91
|
+
|
|
92
|
+
## Response Style
|
|
93
|
+
|
|
94
|
+
Write the smallest complete answer. Remove greetings, narration, padding. Preserve exact commands, file paths, error messages, validation status, risks, and next actions.
|