@agentyx/core 0.1.1 → 0.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/README.md +28 -47
- package/dist/index.d.mts +247 -152
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +377 -214
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/schema/agentyx.schema.json +11 -7
- package/skills/angular-architecture/SKILL.md +29 -0
- package/skills/angular-modern/SKILL.md +12 -30
- package/skills/angular-signals/SKILL.md +23 -0
- package/skills/angular-testing/SKILL.md +24 -0
- package/skills/api-design/SKILL.md +29 -0
- package/skills/brainstorming/SKILL.md +12 -0
- package/skills/code-quality/SKILL.md +28 -0
- package/skills/code-review/SKILL.md +23 -0
- package/skills/concise-output/SKILL.md +24 -0
- package/skills/context-efficient-development/SKILL.md +24 -0
- package/skills/engineering-principles/SKILL.md +34 -0
- package/skills/focused-verification/SKILL.md +22 -0
- package/skills/parallel-work/SKILL.md +12 -0
- package/skills/requesting-code-review/SKILL.md +13 -0
- package/skills/subagent-driven-development/SKILL.md +13 -0
- package/skills/targeted-exploration/SKILL.md +24 -0
- package/skills/typescript-modeling/SKILL.md +23 -0
- package/skills/typescript-modern/SKILL.md +15 -27
- package/skills/typescript-strict/SKILL.md +23 -0
- package/skills/worktree-workflow/SKILL.md +12 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brainstorming
|
|
3
|
+
description: Clarify ambiguous feature work before committing to an implementation path.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Brainstorming
|
|
7
|
+
|
|
8
|
+
Use this before substantial ambiguous design work, not for obvious small edits.
|
|
9
|
+
|
|
10
|
+
Clarify the objective, constraints, users, architecture implications, alternatives, and acceptance
|
|
11
|
+
criteria. Ask only the questions that change the implementation. Once the shape is clear, summarize
|
|
12
|
+
the chosen direction and the tradeoffs that matter.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-quality
|
|
3
|
+
description: Keep code clear, local, and purposeful while changing existing systems.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Code quality
|
|
7
|
+
|
|
8
|
+
Write code that is easy to inspect and hard to misuse.
|
|
9
|
+
|
|
10
|
+
## Local fit
|
|
11
|
+
|
|
12
|
+
Match naming, structure, and error-handling style already used nearby. A change should look like it
|
|
13
|
+
belongs in the module that owns it.
|
|
14
|
+
|
|
15
|
+
## Purposeful units
|
|
16
|
+
|
|
17
|
+
Keep functions and modules small enough to understand, but do not split code just to create layers.
|
|
18
|
+
Each helper should name a useful idea or remove meaningful repetition.
|
|
19
|
+
|
|
20
|
+
## Noise
|
|
21
|
+
|
|
22
|
+
Delete dead code. Avoid speculative options, unused parameters, and exports nobody needs. Comments
|
|
23
|
+
should explain why a choice exists, not restate what the code says.
|
|
24
|
+
|
|
25
|
+
## Errors
|
|
26
|
+
|
|
27
|
+
Handle errors where useful context exists. Preserve the original cause when it helps debugging, and
|
|
28
|
+
return or throw errors with messages a caller can act on.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-review
|
|
3
|
+
description: Review meaningful changes for correctness, regressions, security, tests, and complexity.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Code review
|
|
7
|
+
|
|
8
|
+
Review the behavior first, then the shape.
|
|
9
|
+
|
|
10
|
+
## Pass
|
|
11
|
+
|
|
12
|
+
Check requirement compliance, correctness, regressions, security and privacy risks, test coverage,
|
|
13
|
+
API compatibility, and unnecessary complexity. Use file and line references when reporting issues.
|
|
14
|
+
|
|
15
|
+
## Evidence
|
|
16
|
+
|
|
17
|
+
Ground findings in code paths, observable behavior, or missing checks. Separate definite bugs from
|
|
18
|
+
questions and assumptions.
|
|
19
|
+
|
|
20
|
+
## Output
|
|
21
|
+
|
|
22
|
+
Lead with actionable findings ordered by severity. Keep summaries secondary, and say clearly when
|
|
23
|
+
you found no issues.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: concise-output
|
|
3
|
+
description: Communicate technical progress and results compactly without losing important details.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Concise output
|
|
7
|
+
|
|
8
|
+
Prefer compact professional communication.
|
|
9
|
+
|
|
10
|
+
## Keep
|
|
11
|
+
|
|
12
|
+
Keep commands, paths, failing errors, user-visible behavior changes, decisions that affect risk, and
|
|
13
|
+
important assumptions. Be explicit for security issues, destructive actions, ambiguous instructions,
|
|
14
|
+
and complex failures.
|
|
15
|
+
|
|
16
|
+
## Cut
|
|
17
|
+
|
|
18
|
+
Remove filler, obvious narration, repeated summaries, and progress logs that do not change the
|
|
19
|
+
user's understanding. Do not restate the same status in multiple ways.
|
|
20
|
+
|
|
21
|
+
## Reports
|
|
22
|
+
|
|
23
|
+
Final reports should say what changed, what was verified, and what remains unverified. Use bullets
|
|
24
|
+
only when they make scanning easier.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: context-efficient-development
|
|
3
|
+
description: Develop with targeted discovery, narrow iteration, and complete verification.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Context-efficient development
|
|
7
|
+
|
|
8
|
+
Save context by doing the right work in the right order.
|
|
9
|
+
|
|
10
|
+
## Discovery
|
|
11
|
+
|
|
12
|
+
Start with targeted search, then read the relevant symbol or range, then the containing module when
|
|
13
|
+
ownership is unclear. Open whole files when needed, not by reflex. Avoid rereading code whose role
|
|
14
|
+
is already understood.
|
|
15
|
+
|
|
16
|
+
## Iteration
|
|
17
|
+
|
|
18
|
+
Run the smallest useful command while shaping a change: one test file, one package check, one build
|
|
19
|
+
step. Expand only when the touched surface grows.
|
|
20
|
+
|
|
21
|
+
## Completion
|
|
22
|
+
|
|
23
|
+
Before calling work complete, run the project’s required full verification for the affected surface.
|
|
24
|
+
Efficiency reduces waste; it does not reduce correctness.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: engineering-principles
|
|
3
|
+
description: Apply maintainable software-engineering judgment to non-trivial code changes.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Engineering principles
|
|
7
|
+
|
|
8
|
+
Use these principles as judgment, not ceremony.
|
|
9
|
+
|
|
10
|
+
## Shape
|
|
11
|
+
|
|
12
|
+
Prefer simple designs with explicit responsibilities. Keep related decisions close together, and
|
|
13
|
+
separate code only when the boundary is real: different reasons to change, different lifetimes, or
|
|
14
|
+
different owners.
|
|
15
|
+
|
|
16
|
+
Favor composition when it keeps behavior visible. Inheritance, frameworks, service containers, and
|
|
17
|
+
factories earn their place only when they remove concrete complexity.
|
|
18
|
+
|
|
19
|
+
## Coupling
|
|
20
|
+
|
|
21
|
+
Minimize what modules need to know about each other. Pass the smallest data a collaborator needs,
|
|
22
|
+
return predictable results, and avoid leaking storage, transport, UI, or provider details through
|
|
23
|
+
domain APIs.
|
|
24
|
+
|
|
25
|
+
## Correctness
|
|
26
|
+
|
|
27
|
+
Make invalid states difficult to represent. Use schemas, discriminants, required fields, and
|
|
28
|
+
exhaustive checks where they clarify the model. Fail explicitly when input is invalid instead of
|
|
29
|
+
silently repairing it.
|
|
30
|
+
|
|
31
|
+
## Maintainability
|
|
32
|
+
|
|
33
|
+
Optimize for the next person reading the code. A small amount of duplication can be cheaper than an
|
|
34
|
+
abstraction that hides the important difference.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: focused-verification
|
|
3
|
+
description: Choose narrow checks while iterating and full required gates before completion.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Focused verification
|
|
7
|
+
|
|
8
|
+
Match checks to risk and phase.
|
|
9
|
+
|
|
10
|
+
## During iteration
|
|
11
|
+
|
|
12
|
+
Run the smallest check that can fail for the code you just changed. Prefer a focused test, typecheck
|
|
13
|
+
for one package, or a direct command that exercises the behavior.
|
|
14
|
+
|
|
15
|
+
## Before completion
|
|
16
|
+
|
|
17
|
+
Run the repository or product gate required for the touched surface. Include manual checks for CLI
|
|
18
|
+
output, generated files, migrations, or UI behavior that automated tests do not cover.
|
|
19
|
+
|
|
20
|
+
## Reporting
|
|
21
|
+
|
|
22
|
+
Report the exact checks you ran. If a check fails or cannot be run, say that plainly with the reason.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: parallel-work
|
|
3
|
+
description: Split independent coding-agent work safely when tasks do not overlap.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Parallel work
|
|
7
|
+
|
|
8
|
+
Use parallel work only for independent tasks with clear boundaries.
|
|
9
|
+
|
|
10
|
+
Define each task's files, inputs, expected output, and verification. Avoid parallel edits to the
|
|
11
|
+
same files or closely coupled behavior. Integrate deliberately: review outputs, reconcile conflicts,
|
|
12
|
+
run the shared checks, and keep the parent agent responsible for the final result.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: requesting-code-review
|
|
3
|
+
description: Request independent review after meaningful implementation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Requesting code review
|
|
7
|
+
|
|
8
|
+
Ask for review when a change affects behavior, public APIs, security, data integrity, or several
|
|
9
|
+
modules.
|
|
10
|
+
|
|
11
|
+
Provide the requirement, changed files, verification performed, and known risks. Ask the reviewer to
|
|
12
|
+
focus on requirement compliance, correctness, regressions, tests, security, and unnecessary
|
|
13
|
+
complexity. Treat findings as inputs to resolve, not as a substitute for your own judgment.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: subagent-driven-development
|
|
3
|
+
description: Coordinate scoped subagent work when the current provider supports it.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Subagent-driven development
|
|
7
|
+
|
|
8
|
+
Use subagents when the task benefits from independent investigation, implementation, or review and
|
|
9
|
+
the current provider supports them.
|
|
10
|
+
|
|
11
|
+
Give each subagent a narrow objective, relevant context, boundaries, and expected output. Do not
|
|
12
|
+
spawn agents for trivial work. Prefer fresh-context reviewers for meaningful changes. The parent
|
|
13
|
+
agent remains responsible for integration, verification, and the final answer.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: targeted-exploration
|
|
3
|
+
description: Explore codebases through search, relevant ranges, and module ownership.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Targeted exploration
|
|
7
|
+
|
|
8
|
+
Explore from signal to context.
|
|
9
|
+
|
|
10
|
+
## Flow
|
|
11
|
+
|
|
12
|
+
Search for the name, command, schema, error, or behavior. Read the relevant symbol or range. Then
|
|
13
|
+
read nearby callers or tests. Open the whole file when the range does not reveal ownership or
|
|
14
|
+
invariants.
|
|
15
|
+
|
|
16
|
+
## Search
|
|
17
|
+
|
|
18
|
+
Prefer structural or code-aware search when available. Use text search for identifiers and output
|
|
19
|
+
strings. Avoid dumping unrelated files into context.
|
|
20
|
+
|
|
21
|
+
## Stop condition
|
|
22
|
+
|
|
23
|
+
Stop exploring when you can name the owning module, the expected behavior, the likely change, and
|
|
24
|
+
the checks that will verify it.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: typescript-modeling
|
|
3
|
+
description: Model TypeScript domains with unions, readonly data, satisfies, and useful generics.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# TypeScript modeling
|
|
7
|
+
|
|
8
|
+
Use the type system to express relationships that matter at runtime.
|
|
9
|
+
|
|
10
|
+
## Shapes
|
|
11
|
+
|
|
12
|
+
Choose `type` or `interface` for local semantics and ecosystem fit, not dogma. Use discriminated
|
|
13
|
+
unions for variants and exhaustive switches where missing cases would be a bug.
|
|
14
|
+
|
|
15
|
+
## Contracts
|
|
16
|
+
|
|
17
|
+
Annotate exported APIs and external boundaries. Let inference handle obvious locals. Use `satisfies`
|
|
18
|
+
when a value should be checked against a contract without widening away useful literal information.
|
|
19
|
+
|
|
20
|
+
## Mutability and generics
|
|
21
|
+
|
|
22
|
+
Mark data `readonly` when mutation is not part of the contract. Use generics only when they express
|
|
23
|
+
a real relationship between inputs and outputs; avoid type puzzles that make maintenance harder.
|
|
@@ -1,41 +1,29 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: typescript-modern
|
|
3
|
-
description:
|
|
3
|
+
description: Use current TypeScript module, syntax, import, and async patterns.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Modern TypeScript
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Use current platform and language features without making code clever.
|
|
9
9
|
|
|
10
|
-
##
|
|
10
|
+
## Modules
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
result.
|
|
12
|
+
Prefer ESM. Use type-only imports and exports when a symbol is erased at runtime. Keep module
|
|
13
|
+
boundaries explicit and avoid circular dependencies.
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
data enters. Let inference handle everything else; restating an obvious type is noise that drifts
|
|
18
|
-
out of date.
|
|
15
|
+
## Syntax
|
|
19
16
|
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
Use modern syntax when it clarifies intent: optional chaining, nullish coalescing, object
|
|
18
|
+
destructuring, `const`, `for...of`, and `async`/`await`. Avoid transpiler-era patterns when the
|
|
19
|
+
runtime supports the native feature.
|
|
22
20
|
|
|
23
|
-
##
|
|
21
|
+
## Platform
|
|
24
22
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
`switch` is exhaustive.
|
|
23
|
+
Prefer native platform APIs where they are stable and already available in the project runtime. Do
|
|
24
|
+
not add a dependency for behavior the platform provides clearly.
|
|
28
25
|
|
|
29
|
-
|
|
30
|
-
union instead of two booleans, `readonly` on data that is not meant to change.
|
|
26
|
+
## Async
|
|
31
27
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
## Modules and APIs
|
|
36
|
-
|
|
37
|
-
Use ESM. Export the smallest surface callers need and keep helpers module-private — every export is
|
|
38
|
-
a contract you have to keep.
|
|
39
|
-
|
|
40
|
-
Prefer plain functions and plain objects. Classes earn their place when there is real state or
|
|
41
|
-
identity; factories, containers, and single-implementation interfaces usually do not.
|
|
28
|
+
Use `async`/`await` for sequential asynchronous flow and `Promise.all` for independent work. Handle
|
|
29
|
+
rejections at boundaries with useful context.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: typescript-strict
|
|
3
|
+
description: Use TypeScript strictness, narrowing, and validation for safe boundaries.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# TypeScript strictness
|
|
7
|
+
|
|
8
|
+
Keep strict mode valuable by treating escapes as design decisions.
|
|
9
|
+
|
|
10
|
+
## Unknown data
|
|
11
|
+
|
|
12
|
+
Use `unknown` for untrusted values, then narrow with control flow, discriminants, predicates, or a
|
|
13
|
+
schema validator. Validate external input at the boundary before it enters domain code.
|
|
14
|
+
|
|
15
|
+
## Avoid unsafe escapes
|
|
16
|
+
|
|
17
|
+
Avoid `any`, unsafe casts, and non-null assertions. If a value can be absent, model that possibility
|
|
18
|
+
and handle it. Prefer checks that prove the value exists over assertions that silence the compiler.
|
|
19
|
+
|
|
20
|
+
## Optional semantics
|
|
21
|
+
|
|
22
|
+
When exact optional behavior matters, distinguish an omitted property from a property whose value is
|
|
23
|
+
`undefined`. Do not use optional fields as a substitute for a clear variant model.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: worktree-workflow
|
|
3
|
+
description: Use git worktrees for isolated parallel implementation when the work warrants it.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Worktree workflow
|
|
7
|
+
|
|
8
|
+
Use worktrees when isolation reduces risk for parallel or experimental implementation.
|
|
9
|
+
|
|
10
|
+
Check repository status before creating one. Use deterministic branch and directory names tied to
|
|
11
|
+
the task. Keep user changes safe: never overwrite or clean files you do not own. After integration,
|
|
12
|
+
remove temporary worktrees only when their work is preserved and no uncommitted changes remain.
|