@ryuenn3123/agentic-senior-core 5.8.21 → 5.8.22
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 +1 -1
- package/.agents/plugins/agentic-senior-core/skills/asc-new-project/SKILL.md +5 -6
- package/gemini-extension.json +6 -6
- package/lib/cli/commands/adapter.mjs +21 -13
- package/lib/cli/commands/global.mjs +8 -8
- package/package.json +1 -21
- package/plugin.yaml +1 -1
- package/.claude-plugin/marketplace.json +0 -17
- package/.claude-plugin/plugin.json +0 -17
- package/.clinerules/agentic-senior-core.md +0 -109
- package/.codex-plugin/plugin.json +0 -24
- package/.continue/rules/agentic-senior-core.md +0 -109
- package/.cursor/rules/agentic-senior-core.mdc +0 -114
- package/.devin/rules/agentic-senior-core.md +0 -109
- package/.devin-plugin/plugin.json +0 -13
- package/.github/copilot-instructions.md +0 -109
- package/.github/plugin/marketplace.json +0 -20
- package/.github/plugin/plugin.json +0 -16
- package/.kilocode/rules/agentic-senior-core.md +0 -109
- package/.kiro/steering/agentic-senior-core.md +0 -109
- package/.openclaw/skills/asc/SKILL.md +0 -36
- package/.openclaw/skills/asc-adapter/SKILL.md +0 -43
- package/.openclaw/skills/asc-add-feature/SKILL.md +0 -53
- package/.openclaw/skills/asc-audit/SKILL.md +0 -36
- package/.openclaw/skills/asc-debt/SKILL.md +0 -72
- package/.openclaw/skills/asc-new-project/SKILL.md +0 -62
- package/.openclaw/skills/asc-refactor/SKILL.md +0 -62
- package/.openclaw/skills/asc-reference/SKILL.md +0 -59
- package/.openclaw/skills/asc-review/SKILL.md +0 -63
- package/.opencode/plugins/agentic-senior-core.mjs +0 -31
- package/.openhands/microagents/agentic-senior-core.md +0 -109
- package/.roo/rules/agentic-senior-core.md +0 -109
- package/.windsurf/rules/agentic-senior-core.md +0 -109
- package/.zed/rules/agentic-senior-core.md +0 -109
- package/hooks/copilot-hooks.json +0 -30
- package/hooks/hooks.json +0 -86
- package/hooks/lib/known-duplicates.json +0 -32
- package/hooks/package.json +0 -3
- package/hooks/path-util.cjs +0 -23
- package/hooks/post-edit-enforce.js +0 -234
- package/hooks/pre-tool-dependency-gate.js +0 -155
- package/hooks/session-start.js +0 -36
- package/hooks/subagent-start.js +0 -38
- package/skills/asc/SKILL.md +0 -36
- package/skills/asc-adapter/SKILL.md +0 -43
- package/skills/asc-add-feature/SKILL.md +0 -53
- package/skills/asc-audit/SKILL.md +0 -36
- package/skills/asc-debt/SKILL.md +0 -72
- package/skills/asc-new-project/SKILL.md +0 -62
- package/skills/asc-refactor/SKILL.md +0 -62
- package/skills/asc-reference/SKILL.md +0 -59
- package/skills/asc-review/SKILL.md +0 -63
- /package/{commands → .agents/plugins/agentic-senior-core/commands}/asc-add-feature.md +0 -0
- /package/{commands → .agents/plugins/agentic-senior-core/commands}/asc-add-feature.toml +0 -0
- /package/{commands → .agents/plugins/agentic-senior-core/commands}/asc-audit.md +0 -0
- /package/{commands → .agents/plugins/agentic-senior-core/commands}/asc-audit.toml +0 -0
- /package/{commands → .agents/plugins/agentic-senior-core/commands}/asc-help.md +0 -0
- /package/{commands → .agents/plugins/agentic-senior-core/commands}/asc-help.toml +0 -0
- /package/{commands → .agents/plugins/agentic-senior-core/commands}/asc-new-project.md +0 -0
- /package/{commands → .agents/plugins/agentic-senior-core/commands}/asc-new-project.toml +0 -0
- /package/{commands → .agents/plugins/agentic-senior-core/commands}/asc-refactor.md +0 -0
- /package/{commands → .agents/plugins/agentic-senior-core/commands}/asc-refactor.toml +0 -0
- /package/{commands → .agents/plugins/agentic-senior-core/commands}/asc-review.md +0 -0
- /package/{commands → .agents/plugins/agentic-senior-core/commands}/asc-review.toml +0 -0
|
@@ -8,17 +8,16 @@ description: >
|
|
|
8
8
|
|
|
9
9
|
Structured greenfield workflow. Prevents building before alignment on what to build.
|
|
10
10
|
|
|
11
|
-
Grounded in: Spec-Driven Development (SDD) with scaffolding-spec approach. Core spec documents guide greenfield implementation (`PRD.md`, `Architecture.md`, `
|
|
11
|
+
Grounded in: Spec-Driven Development (SDD) with scaffolding-spec approach. Core spec documents guide greenfield implementation (`PRD.md`, `Architecture.md`, `Schema.md`). Once implemented, the code becomes the primary ground truth, while docs are updated on structural changes.
|
|
12
12
|
|
|
13
|
-
## Gate Mechanism &
|
|
13
|
+
## Gate Mechanism & 3 Spec Document Requirement
|
|
14
14
|
|
|
15
15
|
This workflow nudges the agent to stop at each phase boundary, same enforcement tier as the existing decision ladder — not a hard block. Bypasses are logged to the debt ledger.
|
|
16
16
|
|
|
17
|
-
For greenfield projects (`asc-new-project`), Phase 2 requires creating the **
|
|
17
|
+
For greenfield projects (`asc-new-project`), Phase 2 requires creating the **3 Core SDD Documents** in `docs/` or project root:
|
|
18
18
|
1. `PRD.md` — Product intent, goals, non-goals, and user problems.
|
|
19
19
|
2. `Architecture.md` — System structure, module boundaries, and tech stack choices.
|
|
20
|
-
3. `
|
|
21
|
-
4. `Schema.md` — Data contracts, database entities, API endpoints.
|
|
20
|
+
3. `Schema.md` — Data contracts, database entities, API endpoints.
|
|
22
21
|
|
|
23
22
|
*Note on Rules:* Coding conventions and project constraints are automatically loaded from global plugin rules (`agentic-senior-core.md`) or workspace `AGENTS.md`. No duplicate `docs/Rules.md` file is required.
|
|
24
23
|
|
|
@@ -43,7 +42,7 @@ Format:
|
|
|
43
42
|
## Phase 2: Spec (No Implementation Code)
|
|
44
43
|
|
|
45
44
|
1. On approval of Phase 1, update `workflow-gate.json` phase to `plan`.
|
|
46
|
-
2. Generate the
|
|
45
|
+
2. Generate the 3 core SDD documents from templates (`docs/PRD.md`, `docs/Architecture.md`, `docs/Schema.md`).
|
|
47
46
|
3. Verify exact file naming — check for typos like `Architectyre.md`.
|
|
48
47
|
4. Output specs for review.
|
|
49
48
|
5. **STOP and wait for user approval.** Do not implement code.
|
package/gemini-extension.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentic-senior-core",
|
|
3
|
-
"version": "5.8.
|
|
3
|
+
"version": "5.8.22",
|
|
4
4
|
"description": "Universal AI coding rules. Write code like a staff engineer.",
|
|
5
5
|
"author": "fatidaprilian",
|
|
6
6
|
"license": "MIT",
|
|
7
|
-
"contextFileName": "rules/agentic-senior-core.md",
|
|
8
|
-
"rules": ["rules/"],
|
|
9
|
-
"commands": ["commands/"],
|
|
10
|
-
"skills": ["skills/"],
|
|
11
|
-
"hooks": "
|
|
7
|
+
"contextFileName": ".agents/plugins/agentic-senior-core/rules/agentic-senior-core.md",
|
|
8
|
+
"rules": [".agents/plugins/agentic-senior-core/rules/"],
|
|
9
|
+
"commands": [".agents/plugins/agentic-senior-core/commands/"],
|
|
10
|
+
"skills": [".agents/plugins/agentic-senior-core/skills/"],
|
|
11
|
+
"hooks": ".agents/plugins/agentic-senior-core/hooks.json"
|
|
12
12
|
}
|
|
@@ -10,62 +10,62 @@ const ADAPTER_TARGETS = {
|
|
|
10
10
|
cursor: {
|
|
11
11
|
label: 'Cursor',
|
|
12
12
|
targetPath: '.cursor/rules/agentic-senior-core.mdc',
|
|
13
|
-
sourcePath: '.
|
|
13
|
+
sourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
|
|
14
14
|
},
|
|
15
15
|
windsurf: {
|
|
16
16
|
label: 'Windsurf (legacy)',
|
|
17
17
|
targetPath: '.windsurf/rules/agentic-senior-core.md',
|
|
18
|
-
sourcePath: '.
|
|
18
|
+
sourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
|
|
19
19
|
},
|
|
20
20
|
devin: {
|
|
21
21
|
label: 'Devin Desktop',
|
|
22
22
|
targetPath: '.devin/rules/agentic-senior-core.md',
|
|
23
|
-
sourcePath: '.
|
|
23
|
+
sourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
|
|
24
24
|
},
|
|
25
25
|
cline: {
|
|
26
26
|
label: 'Cline',
|
|
27
27
|
targetPath: '.clinerules/agentic-senior-core.md',
|
|
28
|
-
sourcePath: '.
|
|
28
|
+
sourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
|
|
29
29
|
},
|
|
30
30
|
copilot: {
|
|
31
31
|
label: 'GitHub Copilot',
|
|
32
32
|
targetPath: '.github/copilot-instructions.md',
|
|
33
|
-
sourcePath: '.
|
|
33
|
+
sourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
|
|
34
34
|
},
|
|
35
35
|
kiro: {
|
|
36
36
|
label: 'Kiro',
|
|
37
37
|
targetPath: '.kiro/steering/agentic-senior-core.md',
|
|
38
|
-
sourcePath: '.
|
|
38
|
+
sourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
|
|
39
39
|
},
|
|
40
40
|
continue: {
|
|
41
41
|
label: 'Continue',
|
|
42
42
|
targetPath: '.continue/rules/agentic-senior-core.md',
|
|
43
|
-
sourcePath: '.
|
|
43
|
+
sourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
|
|
44
44
|
},
|
|
45
45
|
zed: {
|
|
46
46
|
label: 'Zed',
|
|
47
47
|
targetPath: '.zed/rules/agentic-senior-core.md',
|
|
48
|
-
sourcePath: '.
|
|
48
|
+
sourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
|
|
49
49
|
},
|
|
50
50
|
aider: {
|
|
51
51
|
label: 'Aider',
|
|
52
52
|
targetPath: 'CONVENTIONS.md',
|
|
53
|
-
sourcePath: '
|
|
53
|
+
sourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
|
|
54
54
|
},
|
|
55
55
|
kilocode: {
|
|
56
56
|
label: 'Kilo Code',
|
|
57
57
|
targetPath: '.kilocode/rules/agentic-senior-core.md',
|
|
58
|
-
sourcePath: '.
|
|
58
|
+
sourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
|
|
59
59
|
},
|
|
60
60
|
roo: {
|
|
61
61
|
label: 'Roo Code',
|
|
62
62
|
targetPath: '.roo/rules/agentic-senior-core.md',
|
|
63
|
-
sourcePath: '.
|
|
63
|
+
sourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
|
|
64
64
|
},
|
|
65
65
|
openhands: {
|
|
66
66
|
label: 'OpenHands',
|
|
67
67
|
targetPath: '.openhands/microagents/agentic-senior-core.md',
|
|
68
|
-
sourcePath: '.
|
|
68
|
+
sourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
|
|
69
69
|
},
|
|
70
70
|
};
|
|
71
71
|
|
|
@@ -95,7 +95,15 @@ async function generateAdapter(targetDirectory, adapterKey) {
|
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
await fs.mkdir(targetDir, { recursive: true });
|
|
98
|
-
|
|
98
|
+
|
|
99
|
+
if (adapterKey === 'copilot') {
|
|
100
|
+
const rulesContent = await fs.readFile(sourcePath, 'utf8');
|
|
101
|
+
const instructionsContent = `---\napplyTo: '**'\n---\n\n${rulesContent}`;
|
|
102
|
+
await fs.writeFile(targetPath, instructionsContent);
|
|
103
|
+
} else {
|
|
104
|
+
await fs.copyFile(sourcePath, targetPath);
|
|
105
|
+
}
|
|
106
|
+
|
|
99
107
|
console.log(` ${adapter.label}: ${adapter.targetPath} ... OK`);
|
|
100
108
|
return true;
|
|
101
109
|
}
|
|
@@ -29,7 +29,7 @@ const GLOBAL_TARGETS = {
|
|
|
29
29
|
label: 'Google Antigravity IDE',
|
|
30
30
|
kind: 'antigravity-ide',
|
|
31
31
|
pluginSourcePath: '.agents/plugins/agentic-senior-core',
|
|
32
|
-
rulesSourcePath: '.agents/rules/agentic-senior-core.md',
|
|
32
|
+
rulesSourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
|
|
33
33
|
pluginTargetPath: () => path.join(HOME, '.gemini', 'config', 'plugins', 'agentic-senior-core'),
|
|
34
34
|
rulesTargetPath: () => path.join(HOME, '.gemini', 'GEMINI.md'),
|
|
35
35
|
targetPath: () => path.join(HOME, '.gemini', 'config', 'plugins', 'agentic-senior-core'),
|
|
@@ -38,49 +38,49 @@ const GLOBAL_TARGETS = {
|
|
|
38
38
|
cline: {
|
|
39
39
|
label: 'Cline',
|
|
40
40
|
kind: 'file',
|
|
41
|
-
sourcePath: '.
|
|
41
|
+
sourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
|
|
42
42
|
targetPath: () => path.join(HOME, 'Documents', 'Cline', 'Rules', 'agentic-senior-core.md'),
|
|
43
43
|
note: 'Toggleable in the Cline rules panel.',
|
|
44
44
|
},
|
|
45
45
|
roo: {
|
|
46
46
|
label: 'Roo Code',
|
|
47
47
|
kind: 'file',
|
|
48
|
-
sourcePath: '.
|
|
48
|
+
sourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
|
|
49
49
|
targetPath: () => path.join(HOME, '.roo', 'rules', 'agentic-senior-core.md'),
|
|
50
50
|
note: 'Roo Code was discontinued in May 2026; kept for existing installs.',
|
|
51
51
|
},
|
|
52
52
|
kilocode: {
|
|
53
53
|
label: 'Kilo Code',
|
|
54
54
|
kind: 'file',
|
|
55
|
-
sourcePath: '.
|
|
55
|
+
sourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
|
|
56
56
|
targetPath: () => path.join(HOME, '.kilocode', 'rules', 'agentic-senior-core.md'),
|
|
57
57
|
note: 'Kilo v7+: prefer adding the file path to the instructions array in ~/.config/kilo/kilo.jsonc (auto-updates with npm).',
|
|
58
58
|
},
|
|
59
59
|
kiro: {
|
|
60
60
|
label: 'Kiro',
|
|
61
61
|
kind: 'file',
|
|
62
|
-
sourcePath: '.
|
|
62
|
+
sourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
|
|
63
63
|
targetPath: () => path.join(HOME, '.kiro', 'steering', 'agentic-senior-core.md'),
|
|
64
64
|
note: 'Global steering has known loading bugs in some Kiro builds; fall back to asc adapter --kiro if rules are not picked up.',
|
|
65
65
|
},
|
|
66
66
|
openhands: {
|
|
67
67
|
label: 'OpenHands',
|
|
68
68
|
kind: 'file',
|
|
69
|
-
sourcePath: '.
|
|
69
|
+
sourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
|
|
70
70
|
targetPath: () => path.join(HOME, '.openhands', 'microagents', 'agentic-senior-core.md'),
|
|
71
71
|
note: 'Works in CLI/headless/dev modes. Docker runs need the directory mounted.',
|
|
72
72
|
},
|
|
73
73
|
windsurf: {
|
|
74
74
|
label: 'Windsurf / Devin Desktop',
|
|
75
75
|
kind: 'guarded-file',
|
|
76
|
-
sourcePath: '.
|
|
76
|
+
sourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
|
|
77
77
|
targetPath: () => path.join(HOME, '.codeium', 'windsurf', 'memories', 'global_rules.md'),
|
|
78
78
|
note: 'Single global file (6,000 char limit). Skipped if you already have your own global_rules.md.',
|
|
79
79
|
},
|
|
80
80
|
copilot: {
|
|
81
81
|
label: 'GitHub Copilot (VS Code)',
|
|
82
82
|
kind: 'copilot-user-instructions',
|
|
83
|
-
sourcePath: '.
|
|
83
|
+
sourcePath: '.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md',
|
|
84
84
|
targetPath: () => path.join(vscodeUserPromptsDirectory(), 'agentic-senior-core.instructions.md'),
|
|
85
85
|
note: 'Installs into the VS Code default profile. Other profiles need their own copy.',
|
|
86
86
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ryuenn3123/agentic-senior-core",
|
|
3
|
-
"version": "5.8.
|
|
3
|
+
"version": "5.8.22",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Agentic Senior Core: Universal AI coding rules and workflows. Write code like a staff engineer, not a junior.",
|
|
6
6
|
"bin": {
|
|
@@ -17,31 +17,11 @@
|
|
|
17
17
|
"lib/cli/commands/status.mjs",
|
|
18
18
|
"lib/cli/commands/mcp.mjs",
|
|
19
19
|
"lib/cli/ascx/",
|
|
20
|
-
".claude-plugin/",
|
|
21
|
-
".codex-plugin/",
|
|
22
|
-
".devin-plugin/",
|
|
23
|
-
".github/plugin/",
|
|
24
|
-
".github/copilot-instructions.md",
|
|
25
20
|
".agents/",
|
|
26
|
-
".openclaw/",
|
|
27
|
-
".opencode/",
|
|
28
|
-
".cursor/rules/",
|
|
29
|
-
".windsurf/rules/",
|
|
30
|
-
".devin/rules/",
|
|
31
|
-
".clinerules/",
|
|
32
|
-
".kiro/steering/",
|
|
33
|
-
".continue/rules/",
|
|
34
|
-
".zed/rules/",
|
|
35
|
-
".kilocode/rules/",
|
|
36
|
-
".roo/rules/",
|
|
37
|
-
".openhands/microagents/",
|
|
38
21
|
"CONVENTIONS.md",
|
|
39
22
|
"gemini-extension.json",
|
|
40
23
|
"plugin.yaml",
|
|
41
24
|
"__init__.py",
|
|
42
|
-
"commands/",
|
|
43
|
-
"hooks/",
|
|
44
|
-
"skills/",
|
|
45
25
|
"scripts/mcp-server.mjs",
|
|
46
26
|
"scripts/mcp-server/",
|
|
47
27
|
"scripts/uninstall.js",
|
package/plugin.yaml
CHANGED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
|
|
3
|
-
"name": "agentic-senior-core",
|
|
4
|
-
"description": "Universal AI coding rules. Write code like a staff engineer.",
|
|
5
|
-
"owner": {
|
|
6
|
-
"name": "fatidaprilian",
|
|
7
|
-
"url": "https://github.com/fatidaprilian"
|
|
8
|
-
},
|
|
9
|
-
"plugins": [
|
|
10
|
-
{
|
|
11
|
-
"name": "agentic-senior-core",
|
|
12
|
-
"description": "Staff-engineer coding standards: security, architecture, testing, API design, database safety, frontend accessibility, infrastructure, resilience.",
|
|
13
|
-
"source": "./",
|
|
14
|
-
"category": "productivity"
|
|
15
|
-
}
|
|
16
|
-
]
|
|
17
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "agentic-senior-core",
|
|
3
|
-
"version": "5.8.21",
|
|
4
|
-
"displayName": "Agentic Senior Core",
|
|
5
|
-
"description": "Universal AI coding rules. Write code like a staff engineer.",
|
|
6
|
-
"author": {
|
|
7
|
-
"name": "fatidaprilian",
|
|
8
|
-
"url": "https://github.com/fatidaprilian"
|
|
9
|
-
},
|
|
10
|
-
"homepage": "https://github.com/fatidaprilian/Agentic-Senior-Core",
|
|
11
|
-
"repository": "https://github.com/fatidaprilian/Agentic-Senior-Core",
|
|
12
|
-
"license": "MIT",
|
|
13
|
-
"keywords": ["coding-standards", "security", "architecture", "quality"],
|
|
14
|
-
"skills": "./skills/",
|
|
15
|
-
"commands": "./commands/",
|
|
16
|
-
"hooks": "./hooks/hooks.json"
|
|
17
|
-
}
|
|
@@ -1,109 +0,0 @@
|
|
|
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
|
-
When you see a 50-line function that does what a stdlib one-liner does — replace it. When asked to add a dependency that duplicates a built-in — push back.
|
|
7
|
-
|
|
8
|
-
Before writing any code, stop at the first step that holds:
|
|
9
|
-
|
|
10
|
-
1. Does this need to be built at all?
|
|
11
|
-
2. Does the codebase already have this? Reuse it.
|
|
12
|
-
3. Does the standard library or a native platform feature cover it? Use it.
|
|
13
|
-
4. Does an already-installed dependency solve it? Use it.
|
|
14
|
-
5. Can this be one straightforward function? Write it.
|
|
15
|
-
6. Only then: write the minimum code that works.
|
|
16
|
-
|
|
17
|
-
## Marking Simplification
|
|
18
|
-
|
|
19
|
-
When you pick the minimal option at step 5 or 6, and it isn't obviously trivial:
|
|
20
|
-
- Leave a one-line comment noting why, and the upgrade trigger if there is a ceiling.
|
|
21
|
-
Example: `// minimal: single global lock — split per-account if throughput becomes an issue`
|
|
22
|
-
- Leave one runnable check (assertion, small test, or `__main__` demo) proving it works.
|
|
23
|
-
Skip only for genuinely trivial one-liners.
|
|
24
|
-
|
|
25
|
-
## Code Quality
|
|
26
|
-
|
|
27
|
-
- Descriptive variable and function names. No cryptic abbreviations.
|
|
28
|
-
- Early returns over deep nesting. Keep the main flow traceable.
|
|
29
|
-
- Three similar lines is better than a premature abstraction.
|
|
30
|
-
- Scope changes to what the task requires. Features, refactors, and abstractions beyond scope need explicit user confirmation.
|
|
31
|
-
- Design for current requirements. Defer speculative extensions until evidence shows near-term need.
|
|
32
|
-
- Delete code that carries no behavior, safety, or test value.
|
|
33
|
-
|
|
34
|
-
## Architecture
|
|
35
|
-
|
|
36
|
-
- Explicit module boundaries. Group by feature or domain.
|
|
37
|
-
- No custom crypto, state management, or routing when standard libraries exist.
|
|
38
|
-
- Controllers handle protocol translation only. Business logic belongs in services.
|
|
39
|
-
- Default to modular monolith unless scale evidence demands microservices.
|
|
40
|
-
|
|
41
|
-
## Security (never skip)
|
|
42
|
-
|
|
43
|
-
- Validate and normalize ALL inputs at trust boundaries.
|
|
44
|
-
- Parameterize all queries. Never interpolate input into SQL or shell commands.
|
|
45
|
-
- Never commit secrets, tokens, or credentials. Inject via environment variables.
|
|
46
|
-
- Enforce resource-level authorization, not just authentication.
|
|
47
|
-
- Error responses and logs must not leak stack traces, internals, or PII.
|
|
48
|
-
- Encode output for user-controlled content to prevent XSS.
|
|
49
|
-
|
|
50
|
-
## Error Handling
|
|
51
|
-
|
|
52
|
-
- Fail fast on invalid input.
|
|
53
|
-
- Handle only errors that can actually occur. Validate at system boundaries where untrusted input enters.
|
|
54
|
-
- Structured error responses with safe details only.
|
|
55
|
-
- Distinguish client errors (4xx) from server errors (5xx).
|
|
56
|
-
- Surface every operational error with context. Empty catch blocks mask production issues.
|
|
57
|
-
|
|
58
|
-
## Testing
|
|
59
|
-
|
|
60
|
-
- Write tests for business logic and boundary failures, not implementation details.
|
|
61
|
-
- Cover happy path, error paths, edge cases.
|
|
62
|
-
- Tests must be fast, isolated, deterministic.
|
|
63
|
-
- Integration tests for critical data paths.
|
|
64
|
-
|
|
65
|
-
## API Design
|
|
66
|
-
|
|
67
|
-
- Bounded list reads: always paginate or set explicit limits.
|
|
68
|
-
- Idempotent for side-effect mutations.
|
|
69
|
-
- Backward-compatible by default. Version breaking changes explicitly.
|
|
70
|
-
- Sync docs in the same commit when changing API or schema.
|
|
71
|
-
|
|
72
|
-
## Database
|
|
73
|
-
|
|
74
|
-
- Use eager loading or batching to eliminate N+1 queries. Paginate all growable datasets.
|
|
75
|
-
- Multi-table mutations run inside transactions.
|
|
76
|
-
- Monetary amounts: integer minor units or exact decimal. Never floats.
|
|
77
|
-
- Schema changes require versioned, reversible migrations.
|
|
78
|
-
|
|
79
|
-
## Frontend
|
|
80
|
-
|
|
81
|
-
- Semantic HTML before custom components.
|
|
82
|
-
- WCAG 2.2 AA accessibility floor.
|
|
83
|
-
- Responsive by default. Handle empty, loading, error, offline states.
|
|
84
|
-
|
|
85
|
-
## Infrastructure
|
|
86
|
-
|
|
87
|
-
- Container configs: multi-stage builds, non-root users, no baked secrets.
|
|
88
|
-
- Configuration from environment, validated at startup.
|
|
89
|
-
- Structured logging with correlation IDs.
|
|
90
|
-
|
|
91
|
-
## Resilience
|
|
92
|
-
|
|
93
|
-
- Every outbound call has a strict timeout.
|
|
94
|
-
- Retries use exponential backoff with jitter. Only retry idempotent operations.
|
|
95
|
-
- Circuit breakers for unhealthy dependencies.
|
|
96
|
-
|
|
97
|
-
## Workflow
|
|
98
|
-
|
|
99
|
-
Recognize the scenario and offer the matching command — user decides
|
|
100
|
-
whether to invoke it. Skip this for trivial edits.
|
|
101
|
-
|
|
102
|
-
- Domain-specific rules (Testing, API Design, Database, Frontend, Infrastructure, Resilience) → `/asc-reference`
|
|
103
|
-
- New project from scratch → `/asc-new-project` (define/spec gate before implementation)
|
|
104
|
-
- Non-trivial feature in an existing codebase → `/asc-add-feature` (research/plan gate before implementation)
|
|
105
|
-
- Refactor spanning multiple files or changing architecture → `/asc-refactor` (classifies scope, gates on high-level changes)
|
|
106
|
-
|
|
107
|
-
## Response Style
|
|
108
|
-
|
|
109
|
-
Lead with what the developer needs to act: the command, file path, code change, or decision point. Format: direct statement, then evidence. Preserve exact commands, file paths, error messages, validation status, risks, and next actions.
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "agentic-senior-core",
|
|
3
|
-
"version": "5.8.21",
|
|
4
|
-
"description": "Universal AI coding rules. Write code like a staff engineer.",
|
|
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
|
-
"skills": "./skills/",
|
|
14
|
-
"hooks": "./hooks/hooks.json",
|
|
15
|
-
"interface": {
|
|
16
|
-
"displayName": "Agentic Senior Core",
|
|
17
|
-
"shortDescription": "Staff-engineer coding standards",
|
|
18
|
-
"longDescription": "Universal engineering rules covering security, architecture, testing, API design, database safety, frontend accessibility, infrastructure, and resilience. Complementary with minimalism plugins.",
|
|
19
|
-
"developerName": "fatidaprilian",
|
|
20
|
-
"category": "Productivity",
|
|
21
|
-
"capabilities": ["Instructions", "Lifecycle hooks"],
|
|
22
|
-
"websiteURL": "https://github.com/fatidaprilian/Agentic-Senior-Core"
|
|
23
|
-
}
|
|
24
|
-
}
|
|
@@ -1,109 +0,0 @@
|
|
|
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
|
-
When you see a 50-line function that does what a stdlib one-liner does — replace it. When asked to add a dependency that duplicates a built-in — push back.
|
|
7
|
-
|
|
8
|
-
Before writing any code, stop at the first step that holds:
|
|
9
|
-
|
|
10
|
-
1. Does this need to be built at all?
|
|
11
|
-
2. Does the codebase already have this? Reuse it.
|
|
12
|
-
3. Does the standard library or a native platform feature cover it? Use it.
|
|
13
|
-
4. Does an already-installed dependency solve it? Use it.
|
|
14
|
-
5. Can this be one straightforward function? Write it.
|
|
15
|
-
6. Only then: write the minimum code that works.
|
|
16
|
-
|
|
17
|
-
## Marking Simplification
|
|
18
|
-
|
|
19
|
-
When you pick the minimal option at step 5 or 6, and it isn't obviously trivial:
|
|
20
|
-
- Leave a one-line comment noting why, and the upgrade trigger if there is a ceiling.
|
|
21
|
-
Example: `// minimal: single global lock — split per-account if throughput becomes an issue`
|
|
22
|
-
- Leave one runnable check (assertion, small test, or `__main__` demo) proving it works.
|
|
23
|
-
Skip only for genuinely trivial one-liners.
|
|
24
|
-
|
|
25
|
-
## Code Quality
|
|
26
|
-
|
|
27
|
-
- Descriptive variable and function names. No cryptic abbreviations.
|
|
28
|
-
- Early returns over deep nesting. Keep the main flow traceable.
|
|
29
|
-
- Three similar lines is better than a premature abstraction.
|
|
30
|
-
- Scope changes to what the task requires. Features, refactors, and abstractions beyond scope need explicit user confirmation.
|
|
31
|
-
- Design for current requirements. Defer speculative extensions until evidence shows near-term need.
|
|
32
|
-
- Delete code that carries no behavior, safety, or test value.
|
|
33
|
-
|
|
34
|
-
## Architecture
|
|
35
|
-
|
|
36
|
-
- Explicit module boundaries. Group by feature or domain.
|
|
37
|
-
- No custom crypto, state management, or routing when standard libraries exist.
|
|
38
|
-
- Controllers handle protocol translation only. Business logic belongs in services.
|
|
39
|
-
- Default to modular monolith unless scale evidence demands microservices.
|
|
40
|
-
|
|
41
|
-
## Security (never skip)
|
|
42
|
-
|
|
43
|
-
- Validate and normalize ALL inputs at trust boundaries.
|
|
44
|
-
- Parameterize all queries. Never interpolate input into SQL or shell commands.
|
|
45
|
-
- Never commit secrets, tokens, or credentials. Inject via environment variables.
|
|
46
|
-
- Enforce resource-level authorization, not just authentication.
|
|
47
|
-
- Error responses and logs must not leak stack traces, internals, or PII.
|
|
48
|
-
- Encode output for user-controlled content to prevent XSS.
|
|
49
|
-
|
|
50
|
-
## Error Handling
|
|
51
|
-
|
|
52
|
-
- Fail fast on invalid input.
|
|
53
|
-
- Handle only errors that can actually occur. Validate at system boundaries where untrusted input enters.
|
|
54
|
-
- Structured error responses with safe details only.
|
|
55
|
-
- Distinguish client errors (4xx) from server errors (5xx).
|
|
56
|
-
- Surface every operational error with context. Empty catch blocks mask production issues.
|
|
57
|
-
|
|
58
|
-
## Testing
|
|
59
|
-
|
|
60
|
-
- Write tests for business logic and boundary failures, not implementation details.
|
|
61
|
-
- Cover happy path, error paths, edge cases.
|
|
62
|
-
- Tests must be fast, isolated, deterministic.
|
|
63
|
-
- Integration tests for critical data paths.
|
|
64
|
-
|
|
65
|
-
## API Design
|
|
66
|
-
|
|
67
|
-
- Bounded list reads: always paginate or set explicit limits.
|
|
68
|
-
- Idempotent for side-effect mutations.
|
|
69
|
-
- Backward-compatible by default. Version breaking changes explicitly.
|
|
70
|
-
- Sync docs in the same commit when changing API or schema.
|
|
71
|
-
|
|
72
|
-
## Database
|
|
73
|
-
|
|
74
|
-
- Use eager loading or batching to eliminate N+1 queries. Paginate all growable datasets.
|
|
75
|
-
- Multi-table mutations run inside transactions.
|
|
76
|
-
- Monetary amounts: integer minor units or exact decimal. Never floats.
|
|
77
|
-
- Schema changes require versioned, reversible migrations.
|
|
78
|
-
|
|
79
|
-
## Frontend
|
|
80
|
-
|
|
81
|
-
- Semantic HTML before custom components.
|
|
82
|
-
- WCAG 2.2 AA accessibility floor.
|
|
83
|
-
- Responsive by default. Handle empty, loading, error, offline states.
|
|
84
|
-
|
|
85
|
-
## Infrastructure
|
|
86
|
-
|
|
87
|
-
- Container configs: multi-stage builds, non-root users, no baked secrets.
|
|
88
|
-
- Configuration from environment, validated at startup.
|
|
89
|
-
- Structured logging with correlation IDs.
|
|
90
|
-
|
|
91
|
-
## Resilience
|
|
92
|
-
|
|
93
|
-
- Every outbound call has a strict timeout.
|
|
94
|
-
- Retries use exponential backoff with jitter. Only retry idempotent operations.
|
|
95
|
-
- Circuit breakers for unhealthy dependencies.
|
|
96
|
-
|
|
97
|
-
## Workflow
|
|
98
|
-
|
|
99
|
-
Recognize the scenario and offer the matching command — user decides
|
|
100
|
-
whether to invoke it. Skip this for trivial edits.
|
|
101
|
-
|
|
102
|
-
- Domain-specific rules (Testing, API Design, Database, Frontend, Infrastructure, Resilience) → `/asc-reference`
|
|
103
|
-
- New project from scratch → `/asc-new-project` (define/spec gate before implementation)
|
|
104
|
-
- Non-trivial feature in an existing codebase → `/asc-add-feature` (research/plan gate before implementation)
|
|
105
|
-
- Refactor spanning multiple files or changing architecture → `/asc-refactor` (classifies scope, gates on high-level changes)
|
|
106
|
-
|
|
107
|
-
## Response Style
|
|
108
|
-
|
|
109
|
-
Lead with what the developer needs to act: the command, file path, code change, or decision point. Format: direct statement, then evidence. Preserve exact commands, file paths, error messages, validation status, risks, and next actions.
|