Universal guardrails loaded by every agent. Defines Verify Before Reporting (VBR), Write-Ahead Log (WAL), and the security baseline. Always-on, role-independent.
日本語の概要は準備中です。原文の説明を表示しています。
Use when: implement a scoped ticket, fix a bug, add tests, prepare a PR-ready code change, or reuse a standard builder workflow across software engineer agents.
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
Reusable builder mode for software engineer agents. This skill captures the shared engineering workflow that should stay consistent across engineer-type agents while leaving identity, stakeholder relationships, domain guardrails, and routing rules in the owning agent profile.
Load this skill when any of these are true:
Before editing, identify:
Classify the ticket before writing any code. The classification sets the TDD requirement and activates the relevant domain lens skills.
| Type | Examples | TDD gate | Active lenses |
|---|---|---|---|
| Logic / Service / Bug | Supabase RPC logic, TypeScript utility, auth flow, data processing, bug with a clear reproduction | Required — write failing test before implementation | CSV if a contract surface changes |
| UI / Layout | React component, page, form, loading state, error boundary, auth-gated view | Optional — write component or E2E test if the repo supports it; otherwise implement then test | UIX required |
| Contract / Migration | Supabase migration, type definition change, edge function, environment variable, deployment config | Write contract test or type check first when possible | CSV and/or INF as applicable |
| Architecture / BD | ADR, C4 diagram, proposal draft, scope document | None — no code | None |
A ticket may span types (a feature that adds a migration AND a React form activates UIX + INF, and applies the Logic TDD gate to any backend logic involved). When types overlap, apply the strictest TDD requirement and activate all applicable lenses.
State this before implementation starts — it is the commitment that determines the pre-handoff gate:
Ticket type: [Logic/Service/Bug | UI/Layout | Contract/Migration | Architecture/BD]
Active lenses: [UIX | CSV | INF | none]
TDD gate: [required | optional | not applicable]
Domain lens skills to load when active:
uix-lens — UI state coverage (five states) for React componentscsv-lens — Client-service contract for Supabase RPCs and TypeScript clientinf-lens — Infrastructure readiness for migrations, env vars, and deploymentsUse this frame internally before editing and preserve it in closeout when architecture work exists upstream. This keeps architecture output and implementation handoff in the same shape.
### Entry Point
- [failing test, file, command, route, user flow, or review comment]
### Evidence and Current State
- [exact artifact -> observed behavior, gap, or constraint]
### Options or Local Hypothesis
- [local hypothesis for a simple task]
- [option A vs option B when the choice is non-trivial]
### Implementation Constraints
- [constraints from ticket, repo workflow, or architecture recommendation]
### First Validation Slice
- [smallest edit or evidence-collection step that can falsify the hypothesis]
### Verification Signals
- [tests, logs, metrics, traces, command output, UI states, or build signals expected to change]
If architecture-mode has already produced Evidence and Current State, Implementation Constraints, First Validation Slice, or Verification Plan, reuse those fields directly instead of inventing a new implementation narrative.
IMPLEMENTATION.md, WORKFLOW.md, CONTRIBUTING.md, or equivalent.state:in-progress when active implementation starts.Never mutate the operator's default checkout. If the team lead's primary local clone of a
repository is checked out to the default/main branch, or to any branch carrying the team
lead's own uncommitted work, treat that working tree as read-only. All branch/commit/rebase/
stash work happens in a dedicated worktree (git worktree add) or a separate clone — never
git stash, git checkout, git reset, or any other tree-mutating command against the
operator's own checkout, even to "temporarily" get it out of the way. This applies regardless
of whether the dispatch explicitly names a worktree path: the default is isolation, not the
operator's tree, and a dispatch that forgets to say so is not permission to touch it.
If a dispatch's worktree setup fails or the target path is unexpectedly dirty, STOP and report the exact failure — do not work around it by stashing, resetting, or otherwise touching the operator's tree to make room. A blocked task is recoverable; an operator's uncommitted work touched without consent is a trust failure regardless of whether the change turns out to be reversible.
Before writing any production code, when the ticket type is Logic/Service/Bug:
npm run test -- --testPathPattern=<file> or equivalent.If no test surface exists for this slice, document why and add the test surface as part of the ticket scope before proceeding.
Use this order:
Validation should confirm the expected observable signal, not only command success. If the observed signal is ambiguous, do one nearby disambiguating read or check before expanding scope.
Report:
When addressing review comments:
Before handoff or review request:
state:ready-for-review after implementation or state:ready-for-qa after accepted engineering review, following local policy or ticket-lifecycle-modestate:ready-for-qa — post the UIX, CSV, and/or INF confirmation blocks declared at intake; a ticket with active lenses that has no confirmation blocks has not completed its gateUse the simplest solution that satisfies the acceptance criteria and fits the existing codebase. Consistency with working project patterns beats cleverness. Apply all principles with judgment — strict adherence to any single principle at the cost of readability, simplicity, or delivery velocity is the wrong outcome.
Rule of thumb: Consistency within the existing codebase beats strict adherence to this document. If the existing code uses a pattern that works, follow it.
Apply at the class and module level with pragmatic judgment. SOLID is a lens for reviewing code, not a construction checklist.
NotImplementedException or overrides with an empty body, the hierarchy is wrong.| Pattern | When to apply |
|---|---|
| Repository | Data access layer. Keeps query logic out of components and makes tests injectable. |
| Factory | Constructing complex objects with three or more distinct construction paths. |
| Observer / Event Emitter | UI framework events and agent state changes. |
| Strategy | Replacing if/else or switch chains selecting between interchangeable behaviors. |
| Decorator | Extending behavior without inheritance. Prefer composition over class decorators. |
| Command | Encapsulating operations for queuing, retrying, or undoing. |
Do not apply a pattern when a plain function or module handles the job, when it requires an unapproved architectural change, or when it adds abstraction without reducing overall complexity.
strict: true is mandatory — no suppressions without an explanatory commentinterface for public API shapes; type for unions, intersections, and computed typesreadonly on properties that must not be mutated after constructionany and unknown without explicit narrowing at the callsiteconsole.log in production paths@ts-ignore, as any, or equivalent suppressions without an exact explanation at the callsiteconsole.log in production code paths// @ts-ignore or as any without an explanatory commentIf the request is a review rather than implementation:
### Entry Point
- [issue, PR, review comment, changed flow, failing check, or suspicious diff area]
### Evidence and Current State
- [exact diff hunk, file, function, test output, command result, log line, or runtime behavior]
### Review Hypothesis or Comparison
- [why the patch may be wrong, risky, incomplete, or insufficiently validated]
- [expected behavior, acceptance criterion, or safer alternative]
### Review Constraints
- [ticket scope, architecture constraints, repository rules, security requirements, migration/deploy expectations]
### First Validation Slice
- [smallest check that can confirm or falsify the concern]
### Verification Signals
- [tests, logs, metrics, traces, command output, UI states, or deployment signals that should exist if the patch is correct]
branch-local defect, stale-branch drift, repo-wide blocker, and missing evidence before reporting findingsmissing evidence or request the next check instead of overstating certaintyIllustrative only. Reuse the shape, not the repo-specific details.
### Entry Point
- Ticket #116 and `docs/products/logout-redirect-PRD.md`
- Shared auth sign-out path in `src/auth/AuthProvider.tsx`
### Evidence and Current State
- The PRD requires explicit logout to land on `/` with a signed-out confirmation.
- `src/components/Nav.tsx` and `src/components/Footer.tsx` both call the shared `signOut()` action.
- `src/auth/AuthProvider.test.tsx` and `tests/e2e/specs/explicit-logout.spec.ts` already cover the narrow behavior slice.
### Options or Local Hypothesis
- Local hypothesis: the correct fix belongs in the shared `AuthProvider.signOut()` path, not in each UI button.
### Implementation Constraints
- Explicit logout goes to `/`.
- Protected-route recovery still goes to `/login?redirect=...`.
- Password-reset and deletion exception flows stay unchanged.
### First Validation Slice
- Edit `src/auth/AuthProvider.tsx` only.
- Run the explicit logout unit tests before touching any nav or footer code.
### Verification Signals
- `signOut()` navigates to `/` with the signed-out state.
- The homepage shows the signed-out confirmation.
- Revisiting a protected route after logout still triggers the normal login guard.
### Entry Point
- PR touching `supabase/migrations/20260506000001_admin_project_restore_contract.sql`
- Related UI contract in `src/lib/adminApi.ts` and `src/pages/Admin.test.tsx`
### Evidence and Current State
- The SQL contract validates `restore_request_id`, restores archived proposals transactionally, and records `restore_failed` audit events.
- `src/lib/adminApi.ts` expects `restore_request_id` and `restored_proposal_count` in the RPC payload.
- `src/pages/Admin.test.tsx` asserts that the admin UI passes `p_restore_request_id` and renders restore results and RPC errors.
### Review Hypothesis or Comparison
- Concern: a patch that changes the SQL result shape or audit behavior may be incomplete if the TypeScript mapping and tests are not updated with it.
- Expected behavior: contract changes stay aligned across SQL, client mapping, and admin UI tests.
### Review Constraints
- Admin-only authorization must remain intact.
- Invalid `restore_request_id` values must still fail predictably.
- Failed restore attempts must remain auditable.
### First Validation Slice
- Diff the SQL function contract against `src/lib/adminApi.ts`.
- Run the focused admin restore tests before making broader review claims.
### Verification Signals
- Restore RPC results still include the fields the UI consumes.
- Invalid restore request ids surface the expected error.
- The admin restore tests still pass for success, pending, and failure paths.
- Audit logging still permits `restore_failed` entries.
### Entry Point
- Failing unit test in `src/auth/RequireGuest.test.tsx`
- Guard implementation in `src/auth/RequireGuest.tsx`
### Evidence and Current State
- The failing test expects recovery-mode sessions to land on the public homepage.
- `RequireGuest.tsx` owns the redirect order for signed-in users visiting guest-only pages.
- The same file also needs to preserve admin default redirect and safe `redirect=` query handling.
### Options or Local Hypothesis
- Local hypothesis: the bug is in the guard branch order, not in routing configuration or the test harness.
### Implementation Constraints
- Signed-out users must still see guest pages.
- Signed-in admins still default to `/admin`.
- Safe redirect parsing must continue rejecting unsafe external targets.
### First Validation Slice
- Edit `src/auth/RequireGuest.tsx` only.
- Run `src/auth/RequireGuest.test.tsx` before touching any broader auth flow.
### Verification Signals
- Recovery-mode sessions redirect to `/`.
- Signed-in admins still redirect to `/admin` by default.
- Signed-in standard users still respect safe in-app `redirect=` targets.
This skill is intended to be shared across multiple software engineer agents. Keep these concerns in the owning agent profile instead of moving them here:
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Universal guardrails loaded by every agent. Defines Verify Before Reporting (VBR), Write-Ahead Log (WAL), and the security baseline. Always-on, role-independent.
日本語の概要は準備中です。原文の説明を表示しています。
Use when: architecture mode, architect this, ADR, C4, PlantUML, system boundary, design decision, PRD gap, high ambiguity, multiple technical approaches, security architecture, data architecture, integration risk, implementability gap, story ticket, or epic ticket.
日本語の概要は準備中です。原文の説明を表示しています。
Use when: assumptions audit, audit assumptions, check for hidden assumptions, plan/ticket has ambiguous scope edges, pre-flight before finalizing a ticket, unstated assumptions, or 'what am I assuming'. Surfaces unstated assumptions, ambiguous scope edges, and untested preconditions in a finished plan/ticket/ADR before it is handed to Builder. Optional pass — Architect judges when to apply it; not a mandatory gate on every ticket.
日本語の概要は準備中です。原文の説明を表示しています。
Use when: Tester needs UI state evidence for VBR, or Builder needs to verify an integration wire is observable end-to-end. Powered by agent-browser MCP — token-efficient browser automation (200–400 tokens/page).
日本語の概要は準備中です。原文の説明を表示しています。
Conducts multi-axis code review. Use before merging any change. Use when reviewing code written by yourself, another agent, or a human. Use when you need to assess code quality across multiple dimensions before it enters the main branch.
日本語の概要は準備中です。原文の説明を表示しています。
Writing skill for freelancers and independent consultants. Covers project proposals, bids, client emails, and scope summaries. Leads with the client's problem, not the consultant's background.
日本語の概要は準備中です。原文の説明を表示しています。