@ryuenn3123/agentic-senior-core 6.9.0 → 6.11.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/.codex-plugin/plugin.json +1 -1
- package/.agents/plugins/agentic-senior-core/hooks/constants.cjs +6 -7
- package/.agents/plugins/agentic-senior-core/hooks/lib/known-duplicates.json +27 -17
- package/.agents/plugins/agentic-senior-core/hooks/lib/known-stub-patterns.json +29 -0
- package/.agents/plugins/agentic-senior-core/hooks/lib/known-ui-slop-patterns.json +15 -0
- package/.agents/plugins/agentic-senior-core/hooks/post-edit-enforce.js +165 -65
- package/.agents/plugins/agentic-senior-core/hooks/pre-tool-dependency-gate.js +66 -15
- package/.agents/plugins/agentic-senior-core/hooks.json +118 -1
- package/.agents/plugins/agentic-senior-core/plugin.json +1 -1
- package/.agents/plugins/agentic-senior-core/rules/agentic-senior-core.md +45 -72
- package/.agents/plugins/agentic-senior-core/skills/asc/SKILL.md +1 -1
- package/.agents/plugins/agentic-senior-core/skills/asc-adapter/SKILL.md +3 -2
- package/.agents/plugins/agentic-senior-core/skills/asc-add-feature/SKILL.md +7 -7
- package/.agents/plugins/agentic-senior-core/skills/asc-audit/SKILL.md +6 -0
- package/.agents/plugins/agentic-senior-core/skills/asc-bootstrap/SKILL.md +4 -1
- package/.agents/plugins/agentic-senior-core/skills/asc-debt/SKILL.md +16 -6
- package/.agents/plugins/agentic-senior-core/skills/asc-dedup/SKILL.md +2 -1
- package/.agents/plugins/agentic-senior-core/skills/asc-fingerprint/SKILL.md +4 -3
- package/.agents/plugins/agentic-senior-core/skills/asc-learn/SKILL.md +1 -1
- package/.agents/plugins/agentic-senior-core/skills/asc-new-project/SKILL.md +1 -1
- package/.agents/plugins/agentic-senior-core/skills/asc-refactor/SKILL.md +8 -9
- package/.agents/plugins/agentic-senior-core/skills/asc-reference/SKILL.md +4 -10
- package/.agents/plugins/agentic-senior-core/skills/asc-review/SKILL.md +7 -6
- package/README.md +2 -1
- package/gemini-extension.json +1 -1
- package/lib/cli/ascx/runtime.mjs +26 -0
- package/lib/cli/commands/git-hook-generator.mjs +28 -0
- package/package.json +1 -1
- package/plugin.yaml +4 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: asc-debt
|
|
3
3
|
description: >
|
|
4
|
-
Trigger this skill when the user says: "log this debt", "skip this for now", "defer this fix", "note this smell", "track this violation", "add to debt ledger", "we'll fix this later", "accept the shortcut", "I know this is bad but", "just do it for now", "TODO later". Also trigger when an ASC ladder nudge fires and the user accepts the shortcut rather than fixing it — log the deferred violation for later resolution.
|
|
4
|
+
Trigger this skill when the user says: "log this debt", "skip this for now", "defer this fix", "note this smell", "track this violation", "add to debt ledger", "we'll fix this later", "accept the shortcut", "I know this is bad but", "just do it for now", "TODO later", "catat debt", "skip dulu", "nanti aja benerinnya", "tunda perbaikan", "catat ini buat nanti". Also trigger when an ASC ladder nudge fires and the user accepts the shortcut rather than fixing it — log the deferred violation for later resolution. Do NOT trigger for actively resolving or refactoring existing debt items (use asc-refactor instead).
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Debt Ledger
|
|
@@ -12,13 +12,23 @@ Grounded in: Cunningham's technical debt metaphor (1992). Entry format (ladder s
|
|
|
12
12
|
|
|
13
13
|
## Storage
|
|
14
14
|
|
|
15
|
-
Entries persist in `.agent-context/state/debt-ledger.json` via
|
|
15
|
+
Entries persist in `.agent-context/state/debt-ledger.json` (or `.asc/debt-ledger.json`) via standard file read/write operations. The ledger is a JSON array of entry objects.
|
|
16
|
+
|
|
17
|
+
## Stub Convention
|
|
18
|
+
|
|
19
|
+
When introducing a temporary stub during development, mark it explicitly:
|
|
20
|
+
```typescript
|
|
21
|
+
// ASC-STUB: [reason for temporary code] [ASC-DEBT-001]
|
|
22
|
+
```
|
|
23
|
+
(or `# ASC-STUB: [reason] [ASC-DEBT-001]` in Python/Ruby).
|
|
24
|
+
|
|
25
|
+
Every stub marker in source code MUST reference an open debt ID. Unregistered stubs will be blocked by the Git pre-commit runner.
|
|
16
26
|
|
|
17
27
|
## Entry Format
|
|
18
28
|
|
|
19
29
|
```json
|
|
20
30
|
{
|
|
21
|
-
"id": "sequential integer",
|
|
31
|
+
"id": "sequential integer (or ASC-DEBT-xxx)",
|
|
22
32
|
"file": "path/to/file.ts",
|
|
23
33
|
"ladderStep": "3",
|
|
24
34
|
"violation": "Added axios — stdlib fetch covers this",
|
|
@@ -34,14 +44,14 @@ Entries persist in `.agent-context/state/debt-ledger.json` via MCP `state_read`/
|
|
|
34
44
|
|
|
35
45
|
When an enforcement nudge fires and the violation is deferred:
|
|
36
46
|
|
|
37
|
-
1. Read the current ledger
|
|
47
|
+
1. Read the current ledger from `.agent-context/state/debt-ledger.json`. If missing, start with `[]`.
|
|
38
48
|
2. Append a new entry with the next sequential `id`, the file path, ladder step, and a one-line violation summary.
|
|
39
|
-
3. Write the updated ledger
|
|
49
|
+
3. Write the updated ledger back to disk.
|
|
40
50
|
4. Confirm: "Logged to debt ledger: [violation summary]"
|
|
41
51
|
|
|
42
52
|
### List Open Debt
|
|
43
53
|
|
|
44
|
-
1. Read the ledger
|
|
54
|
+
1. Read the ledger.
|
|
45
55
|
2. Filter to entries where `status` is `"open"`.
|
|
46
56
|
3. Display as a table: ID, file, ladder step, violation, age.
|
|
47
57
|
4. If no open entries, say so explicitly.
|
|
@@ -9,7 +9,8 @@ description: >
|
|
|
9
9
|
"isn't this a copy of", "cari kode duplikat", "ini kok sama kayak yang itu",
|
|
10
10
|
"ini udah ada kan". Use for whole-repo or whole-directory duplication
|
|
11
11
|
audits on demand — this is a deep, on-demand scan, distinct from the
|
|
12
|
-
continuous per-edit check already enforced by the dedup-gate hook.
|
|
12
|
+
continuous per-edit check already enforced by the dedup-gate hook. Do NOT
|
|
13
|
+
trigger for general code restructuring or refactoring without duplication/clone audit focus (use asc-refactor instead).
|
|
13
14
|
---
|
|
14
15
|
|
|
15
16
|
# Duplicate Code Audit
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
name: asc-fingerprint
|
|
3
3
|
description: >
|
|
4
4
|
Trigger this skill when the user says: "map this codebase", "what are our conventions",
|
|
5
|
-
"document our patterns", "onboard to this repo", "fingerprint this repository",
|
|
6
|
-
"learn this repository structure"
|
|
7
|
-
|
|
5
|
+
"document our patterns", "onboard to this repo", "fingerprint this repository",
|
|
6
|
+
"learn this repository structure", "petakan codebase", "pelajari struktur repo",
|
|
7
|
+
"apa aturan arsitektur di sini", "kebiasaan coding repo ini apa". Use it before substantial work in an unfamiliar
|
|
8
|
+
repository or when feature research repeatedly rediscovers the same conventions. Do NOT trigger for simple file finding or code searches within single files.
|
|
8
9
|
---
|
|
9
10
|
|
|
10
11
|
# Repository Fingerprinting
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: asc-learn
|
|
3
3
|
description: >
|
|
4
|
-
Trigger this skill when the user says: "learn this preference", "don't do this again", "remember my preference", "log this rule", "add to my design rules", "never use X", "always use Y for UI", "save this preference", "remember this style". Also trigger when mining explicit user corrections from conversation history to update adaptive preferences.
|
|
4
|
+
Trigger this skill when the user says: "learn this preference", "don't do this again", "remember my preference", "log this rule", "add to my design rules", "never use X", "always use Y for UI", "save this preference", "remember this style", "ingat preferensi ini", "jangan lakuin ini lagi", "catat aturan ini", "simpan gaya ini". Also trigger when mining explicit user corrections from conversation history to update adaptive preferences. Do NOT trigger for initial day-one design rule bootstrapping or cold start wizard (use asc-bootstrap instead).
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Adaptive Preference Miner (`asc-learn`)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: asc-new-project
|
|
3
3
|
description: >
|
|
4
|
-
Trigger this skill when the user says: "new project", "start from scratch", "scaffold this", "bootstrap project", "bootstrap repository", "bootstrap new app", "create a new app", "init a project", "set up a new repo", "greenfield", "plan the architecture", "design the system", "build me an app", "start a new codebase", "I want to build", "let's create". Also trigger for any request to create a new codebase, plan a new system architecture, or scaffold a new repository from zero. Do NOT trigger for UI style preference onboarding (use asc-bootstrap instead).
|
|
4
|
+
Trigger this skill when the user says: "new project", "start from scratch", "scaffold this", "bootstrap project", "bootstrap repository", "bootstrap new app", "create a new app", "init a project", "set up a new repo", "greenfield", "plan the architecture", "design the system", "build me an app", "start a new codebase", "I want to build", "let's create", "bikin project baru", "buat aplikasi baru", "scaffold repo baru", "mulai dari awal". Also trigger for any request to create a new codebase, plan a new system architecture, or scaffold a new repository from zero. Do NOT trigger for adding features, routes, or components to an existing codebase (use asc-add-feature instead), or for UI style preference onboarding (use asc-bootstrap instead).
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# New Project Workflow
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: asc-refactor
|
|
3
3
|
description: >
|
|
4
|
-
Trigger this skill when the user says: "refactor this", "clean up this code", "improve this structure", "rewrite this", "extract this into", "reduce duplication", "apply DRY", "apply SOLID", "migrate this", "simplify this module", "split this file", "decompose this", "this is messy", "make this cleaner", "too much coupling", "move this logic". Also trigger for any request to restructure, modernize, or improve code organization without changing behavior.
|
|
4
|
+
Trigger this skill when the user says: "refactor this", "clean up this code", "improve this structure", "rewrite this", "extract this into", "reduce duplication", "apply DRY", "apply SOLID", "migrate this", "simplify this module", "split this file", "decompose this", "this is messy", "make this cleaner", "too much coupling", "move this logic", "rapikan kode ini", "bersihin kodingan", "refactor ini", "perbaiki struktur kodingan". Also trigger for any request to restructure, modernize, or improve code organization without changing behavior. Do NOT trigger for building new features from scratch or greenfield projects (use asc-add-feature or asc-new-project instead).
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Refactor Skill
|
|
@@ -24,17 +24,16 @@ Removing speculative code is the highest-value, lowest-risk refactor type.
|
|
|
24
24
|
After reading the target code, classify the refactor:
|
|
25
25
|
|
|
26
26
|
- **Low-level** (rename, extract method, type safety, dead code removal): proceed after explaining the change. No approval gate needed.
|
|
27
|
-
- **High-level** (move module, change architecture, redesign abstractions, multi-file structural changes): output a plan with specific files and rationale, then **stop and wait for user approval** before implementing.
|
|
28
|
-
|
|
29
|
-
**Known limitation:** The high-level refactor gate is a skill-text instruction — the agent self-classifies and self-stops. Unlike `/asc-add-feature` and `/asc-new-project`, this gate is not backed by the PostToolUse hook or workflow-gate.json. If the agent bypasses the gate, there is no automated nudge.
|
|
27
|
+
- **High-level** (move module, change architecture, redesign abstractions, multi-file structural changes): write `workflow-gate.json` with `{"workflow": "asc-refactor", "phase": "plan"}`, output a plan with specific files and rationale, then **stop and wait for user approval** before implementing.
|
|
30
28
|
|
|
31
29
|
## Before Editing
|
|
32
30
|
|
|
33
|
-
1.
|
|
34
|
-
2.
|
|
35
|
-
3.
|
|
36
|
-
4.
|
|
37
|
-
5. If the change touches
|
|
31
|
+
1. **Verify Baseline**: Run project test runner (`ascx test`, `npm test`, or equivalent). Do not refactor on failing tests.
|
|
32
|
+
2. Read the target code and understand existing patterns.
|
|
33
|
+
3. Identify the smallest relevant scope for the refactor.
|
|
34
|
+
4. Classify the refactor (see above). For high-level refactors, update `workflow-gate.json` to phase `implement` only after user approval.
|
|
35
|
+
5. If the change touches UI, check accessibility and responsive behavior.
|
|
36
|
+
6. If the change touches dependencies, verify current official docs.
|
|
38
37
|
|
|
39
38
|
## Refactor Rules
|
|
40
39
|
|
|
@@ -40,9 +40,10 @@ Grounded in: WCAG 2.2 AA (accessibility), Fowler's Money Pattern (monetary types
|
|
|
40
40
|
## Frontend
|
|
41
41
|
|
|
42
42
|
- Match the project's existing styling paradigm (Tailwind, CSS Modules, Vanilla CSS, styled-components, etc.). Do not introduce a new CSS framework or build tool without explicit user confirmation.
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
43
|
+
- UI Component Reusability: Primitive UI elements (buttons, inputs, cards, dialogs, badges) must have a single source of truth in the shared component directory (`components/` or `ui/`). Never recreate ad-hoc variants or duplicate JSX structures across individual pages. Extend existing components with props or variants instead of cloning.
|
|
44
|
+
- Design Consistency: Consume shared design tokens, CSS variables, or theme configuration for colors, spacing, and border-radius. Do not hardcode arbitrary raw color hexes or inconsistent spacing that causes visual design drift between pages.
|
|
45
|
+
- Data-fetching components must explicitly handle 3 states: loading, error (with user-facing toast/notification and retry option), and data. Never leave an unhandled error state.
|
|
46
|
+
- WCAG 2.2 AA accessibility floor. Responsive by default.
|
|
46
47
|
- No placeholder, lorem, or TODO content in production UI.
|
|
47
48
|
|
|
48
49
|
## Infrastructure
|
|
@@ -59,10 +60,3 @@ Grounded in: WCAG 2.2 AA (accessibility), Fowler's Money Pattern (monetary types
|
|
|
59
60
|
- Circuit breakers for unhealthy dependencies.
|
|
60
61
|
- Graceful degradation on non-critical dependency failure.
|
|
61
62
|
|
|
62
|
-
## Naming
|
|
63
|
-
|
|
64
|
-
- Variables and properties are nouns: `userList`, `pageCount`, not `getUser`.
|
|
65
|
-
- Functions and methods are verbs: `calculateTotal`, `fetchUsers`, not `total`.
|
|
66
|
-
- Booleans prefixed with `is`/`has`/`can`: `isValid`, `hasPermission`.
|
|
67
|
-
- Constants in UPPER_SNAKE_CASE: `MAX_RETRIES`, `API_BASE_URL`.
|
|
68
|
-
- Follow the casing convention of the language and existing codebase. When starting fresh, use the community default for that language.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: asc-review
|
|
3
3
|
description: >
|
|
4
|
-
Trigger this skill when the user says: "review this code", "check this PR", "what's wrong with this", "look at my changes", "critique this", "is this production-ready", "review my pull request", "find bugs", "check for issues", "any problems here", "does this look right", "sanity check this". Also trigger for any request to evaluate code quality, analyze recent commits, or assess production risks in existing code. Also trigger when editing or viewing diff output, PR descriptions, or code review comments. For deep penetration testing, threat modeling, or OWASP compliance audits, use asc-audit instead.
|
|
4
|
+
Trigger this skill when the user says: "review this code", "check this PR", "what's wrong with this", "look at my changes", "critique this", "is this production-ready", "review my pull request", "find bugs", "check for issues", "any problems here", "does this look right", "sanity check this", "review PR ini", "cek kodingan saya", "ada masalah ga di kode ini", "tolong review perubahan ini". Also trigger for any request to evaluate code quality, analyze recent commits, or assess production risks in existing code. Also trigger when editing or viewing diff output, PR descriptions, or code review comments. For deep penetration testing, threat modeling, or OWASP compliance audits, use asc-audit instead.
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Review Skill
|
|
@@ -10,12 +10,13 @@ Production-risk code review. Prioritize findings by severity.
|
|
|
10
10
|
|
|
11
11
|
Grounded in: OWASP Risk Rating Methodology, Google Engineering Practices (code review guide), Clean Architecture (transport vs business layer separation).
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## Review Procedure (Empirical First)
|
|
14
14
|
|
|
15
|
-
1.
|
|
16
|
-
2. For
|
|
17
|
-
3.
|
|
18
|
-
4.
|
|
15
|
+
1. **Establish Scope**: Run `git diff --stat` (or `git status`) to inspect the exact set of changed files and line deltas.
|
|
16
|
+
2. **Test-Change Correlation**: For every modified application source file, check if a corresponding test file was updated. If application logic changed without test updates, flag as Severity 3 ("Missing tests for changed behavior").
|
|
17
|
+
3. **Run Deterministic Checks**: Run the project linter and test suite (`ascx test` / `npm test`). Do not evaluate architectural quality on a failing test suite.
|
|
18
|
+
4. **Security & Invariants Scan**: Check for unverified `ASC-STUB:`, hardcoded credentials, or empty catch blocks in the diff.
|
|
19
|
+
5. **Contract & Hierarchy**: Walk the decision ladder for each new file or dependency: does this need to exist, could the stdlib or an existing dependency handle it?
|
|
19
20
|
|
|
20
21
|
## Finding Priority Order
|
|
21
22
|
|
package/README.md
CHANGED
|
@@ -134,7 +134,8 @@ Supports both `.husky/` (appends without overwriting) and `.git/hooks/` (direct
|
|
|
134
134
|
- **[Installation & Supported Hosts](docs/INSTALLATION.md)** - Setup instructions for Claude Code, Copilot, Antigravity, Cursor, Windsurf, Zed, Aider, and more.
|
|
135
135
|
- **[Configuration Overrides](docs/CONFIGURATION.md)** - How to use `.asc/dedup-config.json` and `.asc/dependency-allowlist.json`.
|
|
136
136
|
- **[Architecture & Philosophy](docs/ARCHITECTURE.md)** - How the hooks work, our engineering principles, and Migration guide from v4.x.
|
|
137
|
-
- **[Benchmarks](benchmarks/RESULTS.md)** - ASC
|
|
137
|
+
- **[Benchmarks](benchmarks/RESULTS.md)** - Directional results (n=1-2 per task, single model): on complex tasks ASC trended toward **~18% less code** and **~12-30% fewer tokens**. Indicative, not statistically conclusive — see the methodology for the planned n>=5 validation.
|
|
138
|
+
- **[Grounding](docs/GROUNDING.md)** - Full verified citations behind every rule.
|
|
138
139
|
|
|
139
140
|
---
|
|
140
141
|
|
package/gemini-extension.json
CHANGED
package/lib/cli/ascx/runtime.mjs
CHANGED
|
@@ -162,6 +162,32 @@ export async function runAscx(commandArguments, options = {}) {
|
|
|
162
162
|
shell: classification.kind === 'unsafe-for-compression',
|
|
163
163
|
});
|
|
164
164
|
|
|
165
|
+
// ASC_CACHE_SAFE=1: near-passthrough mode. PointFive (arXiv:2607.12161, 2,908
|
|
166
|
+
// paired runs) found aggressive output compression can raise total billed cost
|
|
167
|
+
// by breaking prompt-cache locality; only minimal compression was cost-neutral.
|
|
168
|
+
// This mode emits raw output plus the cost-audit footer so billed cost can be
|
|
169
|
+
// compared against default compression without uninstalling ascx.
|
|
170
|
+
if (process.env.ASC_CACHE_SAFE === '1') {
|
|
171
|
+
const footer = buildAscxFooter({
|
|
172
|
+
classification: `${classification.kind} (cache-safe passthrough)`,
|
|
173
|
+
commandText: parsedCommand.commandText,
|
|
174
|
+
compactOutput: capture.stdout,
|
|
175
|
+
exitCode: capture.exitCode,
|
|
176
|
+
filterName: 'none (cache-safe)',
|
|
177
|
+
rawOutput: combineOutput(capture.stdout, capture.stderr),
|
|
178
|
+
rawTeePath: null,
|
|
179
|
+
});
|
|
180
|
+
return {
|
|
181
|
+
stdout: `${capture.stdout}\n\n${footer.text}\n`,
|
|
182
|
+
stderr: capture.stderr,
|
|
183
|
+
exitCode: capture.exitCode,
|
|
184
|
+
parsedCommand,
|
|
185
|
+
classification,
|
|
186
|
+
compressed: false,
|
|
187
|
+
rawTeePath: null,
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
|
|
165
191
|
if (classification.kind !== 'compressible') {
|
|
166
192
|
return {
|
|
167
193
|
stdout: capture.stdout,
|
|
@@ -202,6 +202,33 @@ function checkLargeFiles(stagedFiles, cwd, maxSizeKB) {
|
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
204
|
|
|
205
|
+
function checkStubsAndTodos(stagedFiles, cwd) {
|
|
206
|
+
var STUB_REGEX = /(?:\\/\\/|#|\\/\\*)\\s*ASC-STUB:(?!.*\\b(ASC-DEBT|#\\d+|[A-Z]+-\\d+)\\b)/i;
|
|
207
|
+
var MOCK_SUCCESS_REGEX = /(?:return\\s*\\{\\s*success:\\s*true\\s*\\}|return\\s*True|return\\s*true|return\\s*nil)\\s*;?\\s*(?:\\/\\/|#).*?(mock|fake|stub|placeholder)/i;
|
|
208
|
+
|
|
209
|
+
for (var i = 0; i < stagedFiles.length; i++) {
|
|
210
|
+
var ext = path.extname(stagedFiles[i]).slice(1).toLowerCase();
|
|
211
|
+
if (!SOURCE_EXTENSIONS.has(ext)) continue;
|
|
212
|
+
try {
|
|
213
|
+
var content = fs.readFileSync(path.resolve(cwd, stagedFiles[i]), 'utf8');
|
|
214
|
+
var lines = content.split('\\n');
|
|
215
|
+
for (var l = 0; l < lines.length; l++) {
|
|
216
|
+
var line = lines[l];
|
|
217
|
+
if (STUB_REGEX.test(line)) {
|
|
218
|
+
console.error('\\x1b[31m[ASC Stub Gate]\\x1b[0m Unverified stub detected in ' + stagedFiles[i] + ' line ' + (l + 1) + ': ' + line.trim());
|
|
219
|
+
console.error('\\x1b[33mCommit blocked. Stubs must carry a tracked debt ID: // ASC-STUB: [reason] [ASC-DEBT-xxx]. Use git commit --no-verify to bypass.\\x1b[0m');
|
|
220
|
+
process.exit(1);
|
|
221
|
+
}
|
|
222
|
+
if (MOCK_SUCCESS_REGEX.test(line)) {
|
|
223
|
+
console.error('\\x1b[31m[ASC Fake-Done Gate]\\x1b[0m Simulated success return detected in ' + stagedFiles[i] + ' line ' + (l + 1) + ': ' + line.trim());
|
|
224
|
+
console.error('\\x1b[33mCommit blocked. Never commit hardcoded mock success returns mimicking live integration. Use git commit --no-verify to bypass.\\x1b[0m');
|
|
225
|
+
process.exit(1);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
} catch (_) {}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
|
|
205
232
|
function runJscpdScan(scanCmd, cwd, tmpDir) {
|
|
206
233
|
const binaries = ['bunx jscpd', 'npx jscpd@5', 'npx jscpd'];
|
|
207
234
|
for (let i = 0; i < binaries.length; i++) {
|
|
@@ -318,6 +345,7 @@ function runPreCommitGate() {
|
|
|
318
345
|
checkSecrets(stagedFiles, cwd);
|
|
319
346
|
checkMergeConflictMarkers(stagedFiles, cwd);
|
|
320
347
|
checkLargeFiles(stagedFiles, cwd, config.maxFileSizeKB);
|
|
348
|
+
checkStubsAndTodos(stagedFiles, cwd);
|
|
321
349
|
|
|
322
350
|
// 2. Filter staged files by SOURCE_EXTENSIONS for dedup scan
|
|
323
351
|
const stagedSourceFiles = stagedFiles.filter(f => {
|
package/package.json
CHANGED
package/plugin.yaml
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
name: agentic-senior-core
|
|
2
|
-
version: 6.
|
|
2
|
+
version: 6.11.0
|
|
3
3
|
description: Universal AI coding rules. Write code like a staff engineer.
|
|
4
4
|
author: fatidaprilian
|
|
5
5
|
provides_hooks:
|
|
@@ -12,15 +12,18 @@ provides_commands:
|
|
|
12
12
|
- asc-new-project
|
|
13
13
|
- asc-add-feature
|
|
14
14
|
- asc-adapter
|
|
15
|
+
- asc-dedup
|
|
15
16
|
- asc-help
|
|
16
17
|
provides_skills:
|
|
17
18
|
- asc
|
|
18
19
|
- asc-adapter
|
|
19
20
|
- asc-add-feature
|
|
20
21
|
- asc-audit
|
|
22
|
+
- asc-bootstrap
|
|
21
23
|
- asc-debt
|
|
22
24
|
- asc-dedup
|
|
23
25
|
- asc-fingerprint
|
|
26
|
+
- asc-learn
|
|
24
27
|
- asc-new-project
|
|
25
28
|
- asc-refactor
|
|
26
29
|
- asc-reference
|