opencode-agent-skill 7.7.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/CHANGELOG.md +163 -0
- package/LICENSE +9 -0
- package/README.md +581 -0
- package/bin/ocskill.mjs +975 -0
- package/docs/DETERMINISTIC-TOOLS.md +88 -0
- package/docs/ENGINEERING-DESIGN.md +176 -0
- package/docs/EVALS.md +136 -0
- package/docs/NPM-PUBLISH.md +102 -0
- package/docs/OPENCODE-COMPAT.md +109 -0
- package/docs/RESEARCH-SOURCES.md +37 -0
- package/docs/TRACE-SCHEMA.md +109 -0
- package/docs/V7-INTELLIGENCE-RUNTIME.md +166 -0
- package/evals/live/fixtures/engineering-bench/package.json +1 -0
- package/evals/live/fixtures/engineering-bench/src/api-errors.mjs +3 -0
- package/evals/live/fixtures/engineering-bench/src/authz.mjs +3 -0
- package/evals/live/fixtures/engineering-bench/src/cache-tags.mjs +3 -0
- package/evals/live/fixtures/engineering-bench/src/config.mjs +3 -0
- package/evals/live/fixtures/engineering-bench/src/contract-consumer.mjs +6 -0
- package/evals/live/fixtures/engineering-bench/src/contract-producer.mjs +3 -0
- package/evals/live/fixtures/engineering-bench/src/dedupe.mjs +3 -0
- package/evals/live/fixtures/engineering-bench/src/dependency.mjs +3 -0
- package/evals/live/fixtures/engineering-bench/src/discount.mjs +3 -0
- package/evals/live/fixtures/engineering-bench/src/inventory.mjs +3 -0
- package/evals/live/fixtures/engineering-bench/src/migration.mjs +3 -0
- package/evals/live/fixtures/engineering-bench/src/money.mjs +3 -0
- package/evals/live/fixtures/engineering-bench/src/pagination.mjs +5 -0
- package/evals/live/fixtures/engineering-bench/src/path-safe.mjs +5 -0
- package/evals/live/fixtures/engineering-bench/src/payment.mjs +5 -0
- package/evals/live/fixtures/engineering-bench/src/query-sort.mjs +3 -0
- package/evals/live/fixtures/engineering-bench/src/react-state.mjs +8 -0
- package/evals/live/fixtures/engineering-bench/src/retry.mjs +3 -0
- package/evals/live/fixtures/engineering-bench/src/rn-platform.mjs +3 -0
- package/evals/live/fixtures/engineering-bench/src/upload.mjs +3 -0
- package/evals/live/fixtures/engineering-bench/src/webhook.mjs +3 -0
- package/evals/live/graders/engineering-bench.mjs +239 -0
- package/evals/live/tasks.json +126 -0
- package/evals/long/fixtures/long-horizon/package.json +1 -0
- package/evals/long/fixtures/long-horizon/src/auth.mjs +5 -0
- package/evals/long/fixtures/long-horizon/src/checkout.mjs +9 -0
- package/evals/long/fixtures/long-horizon/src/inventory.mjs +5 -0
- package/evals/long/fixtures/long-horizon/src/money.mjs +3 -0
- package/evals/long/fixtures/long-horizon/src/payment.mjs +7 -0
- package/evals/long/fixtures/long-horizon/src/product-api.mjs +10 -0
- package/evals/long/fixtures/long-horizon/src/product-cache.mjs +3 -0
- package/evals/long/fixtures/long-horizon/src/product-service.mjs +6 -0
- package/evals/long/fixtures/long-horizon/src/product-state.mjs +8 -0
- package/evals/long/fixtures/long-horizon/src/project-api.mjs +9 -0
- package/evals/long/fixtures/long-horizon/src/project-service.mjs +7 -0
- package/evals/long/fixtures/long-horizon/src/user-consumer.mjs +3 -0
- package/evals/long/fixtures/long-horizon/src/user-migration.mjs +7 -0
- package/evals/long/fixtures/long-horizon/src/user-serializer.mjs +3 -0
- package/evals/long/fixtures/long-horizon/src/user-validation.mjs +3 -0
- package/evals/long/graders/long-horizon.mjs +209 -0
- package/evals/long/tasks.json +36 -0
- package/evals/router-triggers.json +1238 -0
- package/evals/routing.json +321 -0
- package/global-config/AGENTS.md +212 -0
- package/global-config/agents/architect.md +38 -0
- package/global-config/agents/codebase-mapper.md +41 -0
- package/global-config/agents/critic.md +37 -0
- package/global-config/agents/debugger.md +36 -0
- package/global-config/agents/executor.md +48 -0
- package/global-config/agents/integration-verifier.md +43 -0
- package/global-config/agents/plan-checker.md +43 -0
- package/global-config/agents/researcher.md +30 -0
- package/global-config/agents/reviewer.md +30 -0
- package/global-config/agents/verifier.md +33 -0
- package/global-config/commands/audit.md +8 -0
- package/global-config/commands/critique.md +8 -0
- package/global-config/commands/debug.md +8 -0
- package/global-config/commands/feature.md +8 -0
- package/global-config/commands/fix.md +8 -0
- package/global-config/commands/plan.md +8 -0
- package/global-config/commands/research.md +8 -0
- package/global-config/commands/resume.md +22 -0
- package/global-config/commands/review.md +8 -0
- package/global-config/commands/run.md +29 -0
- package/global-config/commands/verify.md +8 -0
- package/global-config/plugins/ues-router/capabilities.js +20 -0
- package/global-config/plugins/ues-router/index.js +277 -0
- package/global-config/plugins/ues-router/router.js +74 -0
- package/global-config/plugins/ues-router/safety.js +16 -0
- package/global-config/skills/accessibility/SKILL.md +10 -0
- package/global-config/skills/accessibility/references/workflow.md +17 -0
- package/global-config/skills/api-contract/SKILL.md +12 -0
- package/global-config/skills/api-contract/references/workflow.md +17 -0
- package/global-config/skills/auth-security/SKILL.md +12 -0
- package/global-config/skills/auth-security/references/workflow.md +15 -0
- package/global-config/skills/bug-diagnosis/SKILL.md +28 -0
- package/global-config/skills/change-impact-analysis/SKILL.md +23 -0
- package/global-config/skills/code-review/SKILL.md +19 -0
- package/global-config/skills/context-engineering/SKILL.md +18 -0
- package/global-config/skills/context-engineering/references/large-repo.md +16 -0
- package/global-config/skills/database-engineering/SKILL.md +12 -0
- package/global-config/skills/database-engineering/references/workflow.md +15 -0
- package/global-config/skills/dependency-management/SKILL.md +12 -0
- package/global-config/skills/dependency-management/references/workflow.md +14 -0
- package/global-config/skills/devops-engineering/SKILL.md +10 -0
- package/global-config/skills/devops-engineering/references/workflow.md +11 -0
- package/global-config/skills/django-engineering/SKILL.md +10 -0
- package/global-config/skills/django-engineering/references/workflow.md +11 -0
- package/global-config/skills/documentation-engineering/SKILL.md +10 -0
- package/global-config/skills/documentation-engineering/references/workflow.md +15 -0
- package/global-config/skills/dotnet-engineering/SKILL.md +10 -0
- package/global-config/skills/dotnet-engineering/references/workflow.md +11 -0
- package/global-config/skills/ecommerce-engineering/SKILL.md +10 -0
- package/global-config/skills/ecommerce-engineering/references/workflow.md +17 -0
- package/global-config/skills/engineering-orchestrator/SKILL.md +29 -0
- package/global-config/skills/engineering-orchestrator/references/delegation.md +22 -0
- package/global-config/skills/engineering-orchestrator/references/evaluator-loop.md +18 -0
- package/global-config/skills/engineering-orchestrator/references/long-horizon.md +57 -0
- package/global-config/skills/engineering-orchestrator/references/model-escalation.md +19 -0
- package/global-config/skills/engineering-orchestrator/references/retry-policy.md +12 -0
- package/global-config/skills/engineering-orchestrator/references/routing.md +39 -0
- package/global-config/skills/engineering-orchestrator/references/verification-matrix.md +18 -0
- package/global-config/skills/fastapi-engineering/SKILL.md +10 -0
- package/global-config/skills/fastapi-engineering/references/workflow.md +13 -0
- package/global-config/skills/file-upload-engineering/SKILL.md +10 -0
- package/global-config/skills/file-upload-engineering/references/workflow.md +17 -0
- package/global-config/skills/flutter-engineering/SKILL.md +10 -0
- package/global-config/skills/flutter-engineering/references/workflow.md +13 -0
- package/global-config/skills/git-safety/SKILL.md +10 -0
- package/global-config/skills/git-safety/references/workflow.md +15 -0
- package/global-config/skills/implementation-engineer/SKILL.md +10 -0
- package/global-config/skills/implementation-engineer/references/workflow.md +14 -0
- package/global-config/skills/java-spring-engineering/SKILL.md +10 -0
- package/global-config/skills/java-spring-engineering/references/workflow.md +13 -0
- package/global-config/skills/long-task-state/SKILL.md +28 -0
- package/global-config/skills/long-task-state/references/context-ledger.md +27 -0
- package/global-config/skills/long-task-state/templates/STATE.md +48 -0
- package/global-config/skills/nestjs-engineering/SKILL.md +10 -0
- package/global-config/skills/nestjs-engineering/references/workflow.md +11 -0
- package/global-config/skills/nextjs-engineering/SKILL.md +12 -0
- package/global-config/skills/nextjs-engineering/references/workflow.md +15 -0
- package/global-config/skills/nodejs-engineering/SKILL.md +12 -0
- package/global-config/skills/nodejs-engineering/references/workflow.md +11 -0
- package/global-config/skills/payment-engineering/SKILL.md +12 -0
- package/global-config/skills/payment-engineering/references/workflow.md +19 -0
- package/global-config/skills/performance-engineering/SKILL.md +10 -0
- package/global-config/skills/performance-engineering/references/workflow.md +17 -0
- package/global-config/skills/python-engineering/SKILL.md +10 -0
- package/global-config/skills/python-engineering/references/workflow.md +11 -0
- package/global-config/skills/react-engineering/SKILL.md +14 -0
- package/global-config/skills/react-engineering/references/workflow.md +16 -0
- package/global-config/skills/react-native-engineering/SKILL.md +14 -0
- package/global-config/skills/react-native-engineering/references/workflow.md +16 -0
- package/global-config/skills/repo-explorer/SKILL.md +17 -0
- package/global-config/skills/research-verification/SKILL.md +18 -0
- package/global-config/skills/research-verification/references/source-hierarchy.md +12 -0
- package/global-config/skills/rest-api-design/SKILL.md +10 -0
- package/global-config/skills/rest-api-design/references/workflow.md +18 -0
- package/global-config/skills/software-architect/SKILL.md +10 -0
- package/global-config/skills/software-architect/references/workflow.md +18 -0
- package/global-config/skills/task-planner/SKILL.md +21 -0
- package/global-config/skills/task-planner/references/plan-schema.md +56 -0
- package/global-config/skills/test-driven-development/SKILL.md +22 -0
- package/global-config/skills/test-driven-development/references/writing-good-tests.md +21 -0
- package/global-config/skills/test-verification/SKILL.md +20 -0
- package/global-config/skills/ui-ux-engineering/SKILL.md +10 -0
- package/global-config/skills/ui-ux-engineering/references/workflow.md +17 -0
- package/global-config/skills/web-security-review/SKILL.md +10 -0
- package/global-config/skills/web-security-review/references/workflow.md +22 -0
- package/lib/context-manifest.mjs +101 -0
- package/lib/control-center.mjs +148 -0
- package/lib/eval-auth.mjs +21 -0
- package/lib/eval-report.mjs +72 -0
- package/lib/eval-telemetry.mjs +155 -0
- package/lib/evidence-receipt.mjs +50 -0
- package/lib/hermes-bridge.mjs +28 -0
- package/lib/ids.mjs +21 -0
- package/lib/installer.mjs +636 -0
- package/lib/learning-engine.mjs +161 -0
- package/lib/model-config.mjs +88 -0
- package/lib/model-policy.mjs +71 -0
- package/lib/opencode-compat.mjs +86 -0
- package/lib/orchestrator-policy.mjs +35 -0
- package/lib/process-runner.mjs +117 -0
- package/lib/repo-graph.mjs +135 -0
- package/lib/repo-inspect.mjs +264 -0
- package/lib/review-scope.mjs +98 -0
- package/lib/router-config.mjs +40 -0
- package/lib/task-engine.mjs +777 -0
- package/lib/task-graph.mjs +262 -0
- package/lib/update-resolver.mjs +43 -0
- package/lib/verification-plan.mjs +52 -0
- package/lib/version.mjs +47 -0
- package/lib/workspace-snapshot.mjs +45 -0
- package/lib/worktree-sandbox.mjs +59 -0
- package/package.json +69 -0
- package/scripts/check-working-tree.mjs +2 -0
- package/scripts/collect-evidence.mjs +2 -0
- package/scripts/control-center.mjs +37 -0
- package/scripts/detect-stack.mjs +2 -0
- package/scripts/detect-test-commands.mjs +2 -0
- package/scripts/eval-live.mjs +437 -0
- package/scripts/eval-report.mjs +49 -0
- package/scripts/eval-router.mjs +45 -0
- package/scripts/eval-skills.mjs +71 -0
- package/scripts/impact-map.mjs +4 -0
- package/scripts/install.mjs +61 -0
- package/scripts/repo-map.mjs +2 -0
- package/scripts/smoke-packed-install.mjs +326 -0
- package/scripts/syntax-check.mjs +35 -0
- package/scripts/uninstall.mjs +21 -0
- package/scripts/validate-live-suite.mjs +65 -0
- package/scripts/validate.mjs +133 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# NestJS workflow
|
|
2
|
+
|
|
3
|
+
Map module ownership before adding providers. Trace controller -> DTO/pipe -> guard/policy -> service/domain -> repository/external I/O -> response/interceptor.
|
|
4
|
+
|
|
5
|
+
Keep providers in the narrowest module that owns them and export only intentional public dependencies. Avoid circular-module workarounds until the ownership problem is understood.
|
|
6
|
+
|
|
7
|
+
Use DTO validation/transformation consistently and distinguish transport validation from business invariants. Enforce resource authorization in guards/policies or service logic that every entry point reaches.
|
|
8
|
+
|
|
9
|
+
For async providers, close connections/listeners on shutdown and handle rejected promises explicitly. Preserve exception filters, response envelopes and OpenAPI decorators where they define a contract.
|
|
10
|
+
|
|
11
|
+
Verification should include unit/integration tests around the changed provider path, validation and unauthorized cases, module compilation/bootstrap and contract/OpenAPI checks when endpoints change.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nextjs-engineering
|
|
3
|
+
description: Work on Next.js apps with version-aware App/Pages Router boundaries, server/client components, routes/actions, caching, data fetching, metadata, images, and deployment behavior.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Next.js Engineering
|
|
7
|
+
|
|
8
|
+
Detect Next.js version, App vs Pages Router, runtime target, package manager, deployment adapter, and existing data/cache conventions before changing code.
|
|
9
|
+
|
|
10
|
+
Preserve server/client boundaries. Do not spread `use client` to bypass architecture problems. Treat caching/revalidation, route handlers/server actions, environment exposure, cookies/headers, metadata, static generation, image behavior, and edge/node runtime differences as explicit contracts.
|
|
11
|
+
|
|
12
|
+
Read [workflow.md](references/workflow.md) for version-sensitive routing/data rules, cache diagnosis, security boundaries, and verification.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Next.js workflow
|
|
2
|
+
|
|
3
|
+
Start from the route/layout/page or handler involved and identify:
|
|
4
|
+
- router type and exact Next.js version
|
|
5
|
+
- server vs client component ownership
|
|
6
|
+
- data source and cache/revalidation semantics
|
|
7
|
+
- runtime: node, edge, static/prerendered
|
|
8
|
+
- auth/session/cookie boundary
|
|
9
|
+
- deployment-specific constraints
|
|
10
|
+
|
|
11
|
+
For App Router changes, keep secrets and privileged data on the server, serialize only client-safe props, and avoid importing server-only modules into client graphs. For route handlers/actions, verify validation, authorization, error/status behavior and cache invalidation after mutations.
|
|
12
|
+
|
|
13
|
+
For stale-data bugs, inspect fetch/cache options, tags/paths, dynamic APIs, mutation invalidation and hosting behavior before adding forced-dynamic/no-store globally.
|
|
14
|
+
|
|
15
|
+
Verification should include the affected route behavior plus Next build/type checks. For cache/auth changes, test both fresh and repeated requests and unauthorized/expired cases where applicable.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nodejs-engineering
|
|
3
|
+
description: Work on Node.js services and tooling with version-aware modules, async behavior, validation, APIs, files/processes, lifecycle, logging, and tests.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Node.js Engineering
|
|
7
|
+
|
|
8
|
+
Detect Node version, ESM/CommonJS mode, package manager, framework, test runner, runtime/deployment model, and repository error conventions.
|
|
9
|
+
|
|
10
|
+
Trace async failures through promise ownership and lifecycle rather than swallowing them. Validate external input at boundaries, clean up resources, preserve cancellation/shutdown behavior where relevant, and use safe filesystem/process APIs.
|
|
11
|
+
|
|
12
|
+
Read [workflow.md](references/workflow.md) for async/error propagation, streams/processes, module boundaries, lifecycle and verification.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Node.js workflow
|
|
2
|
+
|
|
3
|
+
Establish runtime constraints from package.json engines, lockfile, tsconfig/module settings and deployment files.
|
|
4
|
+
|
|
5
|
+
For services, trace request/job -> validation -> business logic -> I/O -> response/ack. Check rejected promises, missing awaits, double responses, timers/listeners, pool/socket/file cleanup, backpressure for streams, and graceful shutdown for owned resources.
|
|
6
|
+
|
|
7
|
+
For subprocess/filesystem code, avoid shell interpolation when argument arrays work; validate paths and ownership; distinguish ENOENT/permission/data errors rather than broad catch-and-ignore.
|
|
8
|
+
|
|
9
|
+
For ESM/CJS issues, inspect package type, file extensions, tsconfig output and dependency export maps before changing imports broadly.
|
|
10
|
+
|
|
11
|
+
Verification should reproduce the original runtime path, then run focused tests plus repository-native typecheck/lint/build. For lifecycle/concurrency changes, test failure and shutdown/cleanup paths rather than only the happy path.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: payment-engineering
|
|
3
|
+
description: Implement and review payments as high-integrity state machines with trusted amounts, provider webhooks, idempotency, retries, reconciliation, and order/payment separation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Payment Engineering
|
|
7
|
+
|
|
8
|
+
Never trust client-calculated amount or a browser redirect as proof of payment. Model payment and order state transitions explicitly and assume provider events can be duplicated, delayed, retried, or arrive out of order.
|
|
9
|
+
|
|
10
|
+
Verify server-side pricing, webhook authenticity, idempotency keys/event identity, atomic state transitions, retry behavior, refund/cancel paths, reconciliation and secret isolation.
|
|
11
|
+
|
|
12
|
+
Read [workflow.md](references/workflow.md) for state-machine invariants, webhook handling, idempotency, failure injection and verification.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Payment engineering workflow
|
|
2
|
+
|
|
3
|
+
Map order state and payment state separately. Define which transitions are legal and which source is authoritative.
|
|
4
|
+
|
|
5
|
+
For checkout:
|
|
6
|
+
- calculate currency/amount server-side from trusted product/order data
|
|
7
|
+
- bind provider intent/session to internal order/customer identifiers
|
|
8
|
+
- make creation/retry idempotent
|
|
9
|
+
|
|
10
|
+
For webhooks:
|
|
11
|
+
- verify provider signature using the raw/request representation required by the provider
|
|
12
|
+
- persist or otherwise deduplicate event identity
|
|
13
|
+
- handle duplicates and out-of-order delivery
|
|
14
|
+
- make state transitions conditional/atomic
|
|
15
|
+
- return retryable vs terminal responses intentionally
|
|
16
|
+
|
|
17
|
+
Never mark paid from a client success URL alone.
|
|
18
|
+
|
|
19
|
+
Verification should include success, decline/failure, duplicate webhook, out-of-order event, retry after timeout, wrong signature, amount mismatch and already-finalized order as applicable. For production-sensitive changes, include reconciliation/rollback strategy.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: performance-engineering
|
|
3
|
+
description: Diagnose and improve performance using evidence: rendering, database, network, memory, caching, bundles, concurrency, and hot paths.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Performance Engineering
|
|
7
|
+
|
|
8
|
+
Measure or inspect before optimizing. Look for repeated calls, N+1 queries, unnecessary rerenders, unbounded data, blocking work, oversized assets/bundles, missing useful caching and resource leaks. Prefer low-risk changes with measurable or strongly evidenced impact. Avoid premature micro-optimization.
|
|
9
|
+
|
|
10
|
+
Read [workflow.md](references/workflow.md) when the task reaches domain-specific behavior, compatibility, failure, or verification boundaries.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Performance engineering workflow
|
|
2
|
+
|
|
3
|
+
Define the user-visible or system metric first: latency percentile, throughput, CPU, memory, query count, bundle size, startup time or render frequency.
|
|
4
|
+
|
|
5
|
+
Measure a representative baseline before changing code when practical. Find the dominant cost rather than optimizing a convenient line.
|
|
6
|
+
|
|
7
|
+
Investigate by layer:
|
|
8
|
+
- repeated network/database calls and N+1 patterns
|
|
9
|
+
- blocking I/O or serialized independent work
|
|
10
|
+
- excessive allocations, retained listeners/resources and unbounded caches
|
|
11
|
+
- unnecessary rerenders/recomputation
|
|
12
|
+
- oversized payloads/assets/bundles
|
|
13
|
+
- missing indexes or cache keys derived from actual access patterns
|
|
14
|
+
|
|
15
|
+
Preserve correctness under concurrency and failure; faster incorrect behavior is not an improvement.
|
|
16
|
+
|
|
17
|
+
Verification should compare before/after under comparable inputs, repeat noisy measurements, include correctness regression checks and disclose when only static evidence—not runtime measurement—supports the expected improvement.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: python-engineering
|
|
3
|
+
description: Work on Python apps/services using project packaging, typing, async, tests, linting, environments, and framework conventions.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Python Engineering
|
|
7
|
+
|
|
8
|
+
Detect Python version, packaging/environment tool, formatter/linter, tests and framework. Follow typing/style conventions, avoid mutable defaults, handle async/sync boundaries, use context managers, avoid silently catching broad exceptions, and minimize dependency changes.
|
|
9
|
+
|
|
10
|
+
Read [workflow.md](references/workflow.md) when the task reaches domain-specific behavior, compatibility, failure, or verification boundaries.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Python engineering workflow
|
|
2
|
+
|
|
3
|
+
Establish Python version, environment/package manager, project layout, typing mode, formatter/linter and test runner.
|
|
4
|
+
|
|
5
|
+
Respect import/package boundaries and avoid changing environment tooling incidentally. Keep public types and validation explicit where the codebase uses them.
|
|
6
|
+
|
|
7
|
+
For async code, do not call blocking I/O in the event loop; manage task cancellation and resource cleanup. For sync code, use context managers for files/connections and avoid broad exception swallowing.
|
|
8
|
+
|
|
9
|
+
Watch mutable defaults, timezone-naive datetimes, implicit text/bytes conversions, iterator exhaustion and shared global state. Prefer standard-library solutions when a dependency adds little value.
|
|
10
|
+
|
|
11
|
+
Verification should use the project interpreter/environment, focused tests, type checking/linting when configured, and the actual runtime path for packaging/CLI/import changes.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: react-engineering
|
|
3
|
+
description: Work on React apps using existing component, hooks, state, routing, data fetching, forms, performance, and testing conventions while preserving rendering and state invariants.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# React Engineering
|
|
7
|
+
|
|
8
|
+
Detect React/framework version and the repository's component, state, routing, form, data-fetching, styling, and test conventions before editing.
|
|
9
|
+
|
|
10
|
+
Prefer render-time derivation over duplicated state. Use effects for synchronization with external systems, not as a default data-flow mechanism. Preserve stable identity, ownership boundaries, controlled/uncontrolled form semantics, loading/empty/error states, and accessibility.
|
|
11
|
+
|
|
12
|
+
Before performance changes, identify the actual render/data hot path rather than adding memoization mechanically.
|
|
13
|
+
|
|
14
|
+
Read [workflow.md](references/workflow.md) for state/effect diagnosis, async race checks, rendering invariants, forms, and verification.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# React workflow
|
|
2
|
+
|
|
3
|
+
Trace data ownership before editing: source -> transformation -> component props/state -> event -> mutation/refetch.
|
|
4
|
+
|
|
5
|
+
Check:
|
|
6
|
+
- whether state can be derived during render instead of synchronized by effect
|
|
7
|
+
- effect dependencies, cleanup, stale closures, request races and unmounted updates
|
|
8
|
+
- list keys based on stable identity rather than index when ordering can change
|
|
9
|
+
- controlled form values, validation timing, submit/error/loading states
|
|
10
|
+
- context/store selectors that cause broad rerenders
|
|
11
|
+
- server/cache state kept in the repository's existing data library instead of duplicated locally
|
|
12
|
+
- Suspense/error-boundary/framework behavior only when already supported by the stack
|
|
13
|
+
|
|
14
|
+
For regressions, find the nearest working component with the same pattern and compare ownership/lifecycle differences.
|
|
15
|
+
|
|
16
|
+
Verification should exercise user-visible behavior with the repository's component/integration tests where available, then typecheck/lint/build according to blast radius. Do not treat a successful render or TypeScript compile as proof that interaction/state timing is correct.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: react-native-engineering
|
|
3
|
+
description: Work on React Native/Expo apps: components, hooks, navigation, styling, APIs, native modules, Android/iOS build failures, platform behavior, and performance with version-aware verification.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# React Native Engineering
|
|
7
|
+
|
|
8
|
+
Detect React Native version, Expo vs bare workflow, JS/TS, package manager, navigation/state/data libraries, Hermes/native structure, and the target platforms before changing code.
|
|
9
|
+
|
|
10
|
+
Preserve existing component, styling, navigation, and state conventions. Treat Android/iOS build failures as compatibility problems first: inspect JDK, Gradle, AGP, Kotlin, SDK, CocoaPods/Xcode, Expo/RN versions and the exact failing task before cache deletion or dependency churn.
|
|
11
|
+
|
|
12
|
+
For UI/data behavior, handle loading/empty/error/success states, lifecycle cleanup, keyboard/safe-area/platform differences, list identity, and accessibility. Avoid effects for derived state and avoid JS-thread work that belongs off the hot path.
|
|
13
|
+
|
|
14
|
+
Read [workflow.md](references/workflow.md) for build-diagnosis order, platform invariants, performance checks, and verification.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# React Native workflow
|
|
2
|
+
|
|
3
|
+
## Establish the stack
|
|
4
|
+
Read package.json, RN/Expo config, Android Gradle files, iOS Podfile/project metadata when relevant, and the nearest working screen/native integration. Record exact RN/Expo, React, navigation, JDK/Gradle/AGP/Kotlin or Xcode/CocoaPods versions implicated by the task.
|
|
5
|
+
|
|
6
|
+
## Behavior changes
|
|
7
|
+
Trace screen -> state/data hook -> API/storage -> navigation/native boundary. Check stale async updates, effect cleanup, focus lifecycle, repeated requests, stable FlatList keys, keyboard/safe-area behavior, image sizing/caching, and platform-specific branches.
|
|
8
|
+
|
|
9
|
+
## Android failures
|
|
10
|
+
Use the first failing Gradle task and compatibility matrix evidence. Distinguish Java/JDK, Gradle wrapper, AGP, Kotlin, Android SDK/build-tools, CMake/NDK and native-module errors. Do not start with cache clearing.
|
|
11
|
+
|
|
12
|
+
## iOS failures
|
|
13
|
+
Separate JS/Metro issues from Pods, deployment target, Xcode toolchain, signing, native-module, and simulator/device architecture failures.
|
|
14
|
+
|
|
15
|
+
## Verification
|
|
16
|
+
Prefer the original reproduction plus project-native lint/typecheck/tests. For native changes, verify the affected Android/iOS build path. For UI regressions, exercise the interaction on the target platform or the strongest available component/device test. Recheck both platforms when shared code touches platform-sensitive APIs.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: repo-explorer
|
|
3
|
+
description: Inspect unfamiliar repositories efficiently before changes by locating instructions, stack, entry points, nearest analogues, dependencies, data flow, tests, and conventions without inventing structure.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Repo Explorer
|
|
7
|
+
|
|
8
|
+
Read applicable instructions and manifests first. If `ocskill` is available, `ocskill inspect` can establish stack/package-manager/test-command facts before targeted source reads.
|
|
9
|
+
|
|
10
|
+
Then:
|
|
11
|
+
1. locate the task's exact entry point, symbol, route, error, or configuration
|
|
12
|
+
2. find the nearest working analogue in the same repository
|
|
13
|
+
3. trace direct imports, callers, and data flow only as far as needed
|
|
14
|
+
4. identify tests, fixtures, build scripts, generated-code rules, and package boundaries
|
|
15
|
+
5. note repository conventions and risky assumptions before editing
|
|
16
|
+
|
|
17
|
+
Prefer exact search, shallow tree views, and relevant line ranges over recursive dumps. If the repository is large, load `ues-context-engineering`. Do not invent paths, framework behavior, or architecture that can be verified.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: research-verification
|
|
3
|
+
description: Verify current external APIs, packages, versions, framework behavior, security guidance, and documentation with primary sources before coding when repository evidence is insufficient.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Research Verification
|
|
7
|
+
|
|
8
|
+
Use this when an answer depends on information that may have changed outside the repository.
|
|
9
|
+
|
|
10
|
+
1. State the concrete uncertainty: API signature, package existence/version, compatibility, deprecation, platform behavior, security guidance, or release behavior.
|
|
11
|
+
2. Check repository-pinned versions and local types/docs first.
|
|
12
|
+
3. Prefer current primary sources: official documentation, package registry, release notes/changelog, or upstream source.
|
|
13
|
+
4. Confirm that documentation matches the version actually used by the repository.
|
|
14
|
+
5. Distinguish verified facts from inference. If primary evidence is unavailable, say so.
|
|
15
|
+
6. Never invent package names or versions. Before adding a new dependency, verify that it exists and is appropriate.
|
|
16
|
+
7. Record only the findings needed for the implementation; do not flood the coding context with unrelated research.
|
|
17
|
+
|
|
18
|
+
Read [source-hierarchy.md](references/source-hierarchy.md) when sources disagree.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Source hierarchy
|
|
2
|
+
|
|
3
|
+
For changing technical facts, prefer evidence in this order:
|
|
4
|
+
|
|
5
|
+
1. repository lockfiles, generated types, vendored API surfaces, and exact runtime errors for what the project currently uses
|
|
6
|
+
2. official documentation for the matching version
|
|
7
|
+
3. official registry metadata, release notes, changelog, migration guide
|
|
8
|
+
4. upstream source/tests for behavior not documented elsewhere
|
|
9
|
+
5. high-quality secondary material
|
|
10
|
+
6. community discussion for experience reports, clearly labeled as such
|
|
11
|
+
|
|
12
|
+
When sources disagree, check dates and versions before deciding they conflict. Do not silently apply documentation for a newer or older major version to the current project.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rest-api-design
|
|
3
|
+
description: Design/review REST APIs: resources, methods, status codes, pagination, validation, errors, versioning, and idempotency.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Rest Api Design
|
|
7
|
+
|
|
8
|
+
Prefer the existing API style. Check HTTP semantics, stable contracts, validation, consistent errors, pagination/filter/sort, idempotency for retryable writes, compatibility/versioning and resource-level authorization. Avoid changing established style without strong reason.
|
|
9
|
+
|
|
10
|
+
Read [workflow.md](references/workflow.md) when the task reaches domain-specific behavior, compatibility, failure, or verification boundaries.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# REST API design workflow
|
|
2
|
+
|
|
3
|
+
Start from existing repository conventions and the consumer contract.
|
|
4
|
+
|
|
5
|
+
Model resources and operations first, then choose method/path/status semantics. Distinguish create vs replace vs partial update and make retryable writes idempotent when duplicate execution is unsafe.
|
|
6
|
+
|
|
7
|
+
Define:
|
|
8
|
+
- request validation and unknown-field policy
|
|
9
|
+
- success and error schemas
|
|
10
|
+
- pagination/filter/sort semantics and stable ordering
|
|
11
|
+
- null vs missing field behavior
|
|
12
|
+
- resource-level authorization
|
|
13
|
+
- concurrency/precondition behavior where lost updates matter
|
|
14
|
+
- versioning/deprecation strategy for breaking changes
|
|
15
|
+
|
|
16
|
+
Avoid exposing persistence layout directly when it makes compatibility brittle.
|
|
17
|
+
|
|
18
|
+
Verification should cover representative success, malformed input, unauthorized/not-found distinction where appropriate, pagination boundaries, duplicate/retry behavior and at least one real consumer or contract test for public changes.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: software-architect
|
|
3
|
+
description: Design boundaries, modules, data flow, interfaces, migrations, and tradeoffs for non-trivial changes without unnecessary rewrites.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Software Architect
|
|
7
|
+
|
|
8
|
+
Evaluate current architecture, ownership boundaries, state/data flow, API contracts, persistence, failure behavior, compatibility, testability and rollout needs. Prefer incremental designs that fit existing code. Document tradeoffs briefly; avoid abstraction for its own sake.
|
|
9
|
+
|
|
10
|
+
Read [workflow.md](references/workflow.md) when the task reaches domain-specific behavior, compatibility, failure, or verification boundaries.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Software architecture workflow
|
|
2
|
+
|
|
3
|
+
Architecture work starts with constraints, not preferred patterns.
|
|
4
|
+
|
|
5
|
+
Map:
|
|
6
|
+
- entry points and responsibility ownership
|
|
7
|
+
- data/control flow and state ownership
|
|
8
|
+
- public/internal contracts
|
|
9
|
+
- persistence and external side effects
|
|
10
|
+
- failure boundaries, retries and observability
|
|
11
|
+
- deployment/migration compatibility
|
|
12
|
+
- existing extension seams and nearest working analogues
|
|
13
|
+
|
|
14
|
+
Evaluate options by change surface, coupling, reversibility, operational risk, testability and fit with current code. Prefer an incremental seam over a rewrite when both satisfy the requirement.
|
|
15
|
+
|
|
16
|
+
Call out assumptions that require repository or production evidence. Do not introduce a service, queue, abstraction layer or generic framework solely for theoretical future scale.
|
|
17
|
+
|
|
18
|
+
A useful architecture recommendation includes the smallest viable direction, material rejected alternatives, rollout/rollback concerns and concrete verification needed before declaring the design safe.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: task-planner
|
|
3
|
+
description: Create an executable, file-aware plan for multi-file, architectural, ambiguous, migration, or risky coding work with acceptance criteria, dependencies, risks, and verification.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Task Planner
|
|
7
|
+
|
|
8
|
+
Build the plan from repository evidence, not generic architecture guesses.
|
|
9
|
+
|
|
10
|
+
Include:
|
|
11
|
+
- required outcome and observable acceptance criteria
|
|
12
|
+
- relevant existing files, interfaces, and the nearest working analogue
|
|
13
|
+
- ordered implementation steps with real dependencies
|
|
14
|
+
- compatibility, migration, and rollback concerns where applicable
|
|
15
|
+
- explicit verification for each risky boundary
|
|
16
|
+
- user decisions or destructive actions that require approval
|
|
17
|
+
|
|
18
|
+
Keep steps small enough to verify but large enough to be meaningful. Separate required work from optional cleanup. Re-plan when new evidence invalidates an assumption rather than forcing execution through a stale plan.
|
|
19
|
+
|
|
20
|
+
For persistent long-horizon execution, emit a machine-checkable `PLAN.json` and read [plan-schema.md](references/plan-schema.md). Validate it with `ocskill task-graph` and an independent `ues-plan-checker` before any executor edits files.
|
|
21
|
+
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# UES PLAN.json schema
|
|
2
|
+
|
|
3
|
+
A long-horizon plan is machine-checkable JSON:
|
|
4
|
+
|
|
5
|
+
```json
|
|
6
|
+
{
|
|
7
|
+
"schemaVersion": 1,
|
|
8
|
+
"goal": "Observable engineering outcome",
|
|
9
|
+
"tasks": [
|
|
10
|
+
{
|
|
11
|
+
"id": "T1",
|
|
12
|
+
"title": "Short task title",
|
|
13
|
+
"summary": "What changes and why",
|
|
14
|
+
"files": {
|
|
15
|
+
"create": [],
|
|
16
|
+
"modify": ["src/example.ts"],
|
|
17
|
+
"test": ["test/example.test.ts"]
|
|
18
|
+
},
|
|
19
|
+
"dependsOn": [],
|
|
20
|
+
"acceptance": [
|
|
21
|
+
"Specific externally observable behavior"
|
|
22
|
+
],
|
|
23
|
+
"verification": [
|
|
24
|
+
"npm test -- example"
|
|
25
|
+
],
|
|
26
|
+
"risk": "medium"
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Valid risk values are `low`, `medium`, `high`, and `critical`.
|
|
33
|
+
|
|
34
|
+
## Task boundaries
|
|
35
|
+
|
|
36
|
+
Each task should:
|
|
37
|
+
- produce an independently reviewable behavior or contract;
|
|
38
|
+
- name files/interfaces precisely enough for a fresh executor;
|
|
39
|
+
- carry its own verification;
|
|
40
|
+
- depend only on tasks whose outputs it consumes.
|
|
41
|
+
|
|
42
|
+
Avoid plans where every task touches the same central file; those cannot safely execute in parallel.
|
|
43
|
+
|
|
44
|
+
## Acceptance quality
|
|
45
|
+
|
|
46
|
+
Acceptance criteria describe behavior, not implementation steps. Prefer:
|
|
47
|
+
- "Duplicate webhook delivery cannot create a second charge"
|
|
48
|
+
|
|
49
|
+
over:
|
|
50
|
+
- "Add an idempotency check".
|
|
51
|
+
|
|
52
|
+
## Verification quality
|
|
53
|
+
|
|
54
|
+
Verification must be concrete enough for another agent to run. High-risk tasks need negative cases and compatibility evidence where applicable.
|
|
55
|
+
|
|
56
|
+
Before execution run `ocskill task-graph PLAN.json` and an independent `ues-plan-checker`.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-driven-development
|
|
3
|
+
description: Use a pragmatic red-green-refactor loop for behavior changes and bug fixes when the repository has a practical test harness or a focused regression test can reasonably be added.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Test-Driven Development
|
|
7
|
+
|
|
8
|
+
Prefer behavior-first tests when they will provide durable evidence.
|
|
9
|
+
|
|
10
|
+
1. Define one observable behavior or regression.
|
|
11
|
+
2. Write the smallest test that would fail if the desired behavior is absent.
|
|
12
|
+
3. Run it and confirm it fails for the intended reason, not because the test is broken.
|
|
13
|
+
4. Implement the minimum coherent production change.
|
|
14
|
+
5. Re-run the focused test until green.
|
|
15
|
+
6. Run adjacent regression checks.
|
|
16
|
+
7. Refactor only while tests stay green.
|
|
17
|
+
|
|
18
|
+
Do not test implementation trivia merely to satisfy the ritual. Avoid mocks when real behavior is cheap and stable to exercise.
|
|
19
|
+
|
|
20
|
+
TDD may be inappropriate for generated files, documentation/config-only changes, throwaway prototypes, or repositories with no practical harness. In those cases, use the strongest realistic verification instead and state the limitation.
|
|
21
|
+
|
|
22
|
+
Read [writing-good-tests.md](references/writing-good-tests.md) when adding or changing tests.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Writing useful tests
|
|
2
|
+
|
|
3
|
+
A useful test protects an observable behavior.
|
|
4
|
+
|
|
5
|
+
Before writing it, answer:
|
|
6
|
+
- what production change would make this test fail?
|
|
7
|
+
- does the assertion come from the requirement/contract rather than copying the implementation?
|
|
8
|
+
- can the test exercise real code instead of only a mock?
|
|
9
|
+
- is one behavior being tested clearly?
|
|
10
|
+
|
|
11
|
+
Prefer:
|
|
12
|
+
- stable public behavior over private implementation details
|
|
13
|
+
- small deterministic fixtures
|
|
14
|
+
- explicit edge cases that caused the bug
|
|
15
|
+
- failure messages that explain the violated behavior
|
|
16
|
+
|
|
17
|
+
Avoid:
|
|
18
|
+
- assertions that only check text/source presence when runtime behavior matters
|
|
19
|
+
- mocks that reproduce the implementation's own mistake
|
|
20
|
+
- snapshots for logic that deserves explicit assertions
|
|
21
|
+
- tests that pass before the behavior exists without explaining why
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-verification
|
|
3
|
+
description: Prove engineering claims with fresh project-native tests, type checks, lint, builds, reproductions, contract checks, and final-diff inspection; never report success from expectation alone.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Test Verification
|
|
7
|
+
|
|
8
|
+
Verification must match the claim.
|
|
9
|
+
|
|
10
|
+
1. Identify the observable acceptance criterion or original failure.
|
|
11
|
+
2. Choose the narrowest project-native check that proves it.
|
|
12
|
+
3. Run the check fresh and read the actual output and exit status.
|
|
13
|
+
4. Expand verification based on blast radius: adjacent tests, typecheck, lint, affected build, integration or contract checks, or the full suite when justified.
|
|
14
|
+
5. Re-test the original behavior, not only compilation.
|
|
15
|
+
6. Inspect the final diff and working tree for accidental changes.
|
|
16
|
+
7. Report passed, failed, and not-run checks separately.
|
|
17
|
+
|
|
18
|
+
For bug regressions, a strong test demonstrates that it can fail when the fix is absent where practical. For configuration or migration changes, verify the resulting behavior or state rather than only syntax.
|
|
19
|
+
|
|
20
|
+
Do not weaken valid tests, hide warnings that indicate real failure, or claim "done", "fixed", "passes", "builds", or "deployed" without fresh evidence.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ui-ux-engineering
|
|
3
|
+
description: Improve production UI/UX: hierarchy, responsive layout, components, forms, states, accessibility, realistic content, and design consistency.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Ui Ux Engineering
|
|
7
|
+
|
|
8
|
+
Inspect the existing design system first. Check hierarchy, responsive behavior, spacing/typography, forms/validation, loading/empty/error/success states, keyboard/focus basics, image fallbacks, overflow/long text and component reuse. Use common interaction patterns without pixel-copying proprietary products.
|
|
9
|
+
|
|
10
|
+
Read [workflow.md](references/workflow.md) when the task reaches domain-specific behavior, compatibility, failure, or verification boundaries.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# UI/UX engineering workflow
|
|
2
|
+
|
|
3
|
+
Start from the existing design system, component primitives and real user flow.
|
|
4
|
+
|
|
5
|
+
Check the complete state model:
|
|
6
|
+
- default, hover/focus/pressed/disabled
|
|
7
|
+
- loading, empty, validation error, server error and success
|
|
8
|
+
- long text, missing images/data and slow network
|
|
9
|
+
- narrow/mobile, large viewport and zoom/text scaling
|
|
10
|
+
|
|
11
|
+
Preserve visual hierarchy through spacing, typography and grouping before adding decoration. Reuse components/tokens instead of creating near-duplicates.
|
|
12
|
+
|
|
13
|
+
Forms need clear labels, inline actionable errors, submission state and prevention of accidental duplicate actions. Navigation and dialogs should preserve focus and back/escape expectations.
|
|
14
|
+
|
|
15
|
+
For data-heavy UI, design pagination/filter/sort and stale/loading transitions deliberately.
|
|
16
|
+
|
|
17
|
+
Verification should exercise the actual interaction at representative breakpoints, keyboard/focus behavior, overflow/long-content cases and accessibility checks where relevant—not only compare a static screenshot.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: web-security-review
|
|
3
|
+
description: Review web applications for reachable, evidence-backed security risks including injection, XSS, broken access control, CSRF, SSRF, traversal, unsafe uploads, secrets, deserialization, and dangerous execution.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Web Security Review
|
|
7
|
+
|
|
8
|
+
Prioritize exploitability and concrete data/control flow. Start from attacker-controlled inputs and trace them to sensitive sinks or authorization decisions. Do not report a vulnerability from a risky-looking function name alone.
|
|
9
|
+
|
|
10
|
+
Read [workflow.md](references/workflow.md) for source-to-sink analysis, access-control review, SSRF/upload/path checks, false-positive discipline and security verification.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Web security review workflow
|
|
2
|
+
|
|
3
|
+
For each candidate issue identify:
|
|
4
|
+
1. attacker-controlled source
|
|
5
|
+
2. transformations/validation
|
|
6
|
+
3. sensitive sink or authorization decision
|
|
7
|
+
4. preconditions and reachable path
|
|
8
|
+
5. concrete impact
|
|
9
|
+
6. existing mitigation that may break the exploit chain
|
|
10
|
+
|
|
11
|
+
High-value checks:
|
|
12
|
+
- SQL/command/template injection
|
|
13
|
+
- stored/reflected/DOM XSS with actual escaping context
|
|
14
|
+
- broken object/function-level authorization and tenant isolation
|
|
15
|
+
- CSRF for credential-bearing browser requests where applicable
|
|
16
|
+
- SSRF including redirect/DNS/private-network controls
|
|
17
|
+
- path traversal and archive extraction
|
|
18
|
+
- upload type/content/storage/execution controls
|
|
19
|
+
- secret/token leakage
|
|
20
|
+
- unsafe deserialization or dynamic code execution
|
|
21
|
+
|
|
22
|
+
Separate confirmed findings from hardening opportunities. Verification should use safe tests that demonstrate the violated security invariant without harming external systems. Recheck negative authorization and malicious-input cases after a fix.
|