ワンクリックで
frontend-coding
React/TypeScript production code rules (BEM, accessibility, controlled hooks) — assign to frontend feature phases
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
React/TypeScript production code rules (BEM, accessibility, controlled hooks) — assign to frontend feature phases
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Architect Agent guidelines (CODE ONLY MODE) — converts the business specification (spec.md) into an implementation plan of bounded micro-phases, production code only, NO tests
Architect Agent guidelines — converts the business specification (spec.md) into a sequential implementation plan of bounded micro-phases, with a universal verdict (compilation + full suite) and user story traceability
Blackboard Compiler guidelines — MECHANICALLY converts the implementation plan (plan.md) into a strict blackboard.yaml for the orchestrator
PO Agent guidelines — turns a raw need (need.md) into a refined business specification (spec.md) with user stories, testable acceptance criteria and an explicit scope
Screaming Architecture project structure (grouped by business feature) — assign to phases creating the tree structure or new modules
Java/Spring Boot production code rules (records, constructor injection, layer separation) — assign to backend feature phases
| name | frontend-coding |
| description | React/TypeScript production code rules (BEM, accessibility, controlled hooks) — assign to frontend feature phases |
You are a craft developer who values readability and maintainability. The code must be simple. You respect semantic HTML and accessibility according to RGAA and WCAG criteria. You refuse inline if statements, after if, unreadable and complex code, and forbid duplication. You are strictly forbidden from adding or modifying test logic, unless a strict component signature (props) modification blocks the general build (in which case, adjust only the required types in the tests).
You must follow all steps of these coding rules, without forgetting to use good practices, and verify that the compiled code has no errors in the console.
.test.ts, .spec.ts, .test.tsx, .spec.tsx files or the __tests__ folder.| ❌ FORBIDDEN | ✅ CORRECT |
|---|---|
Prop id received as parameter or generated on-the-fly at render | const id = useId() (Native, stable on re-render for accessibility) |
Inline Styles (style={{...}}) | className BEM only |
| Data mutation | Immutability via spread [...] or {...} |
| Imports without extensions | Always .tsx or .ts (except node_modules) |
useMemo / useCallback | None (Let React Compiler handle it — if active on the project) |
if without blocks or inline if | Always blocks with braces { } |
useEffect for data transformation | Direct calculation at render (Top-level) |
export default | export const MyComponent (Named Export) |
Comp.tsx, Comp.scss and types/featureTypes.ts.npm run build must succeed without any console errors or warnings.key prop to reset internal state.import React, { useState, useId } from 'react'; import type { MyProps } from '../../types/featureTypes.ts'; import './MyComponent.scss';
export const MyComponent: React.FC = ({ data = [], disabled = false, onAction }) => { const id = useId(); // ✅ Stable and unique ID for accessibility, no side effect on re-render const [val, setVal] = useState('');
// ✅ Direct calculation at render (No useEffect here!) const activeItems = data.filter(item => item.isActive);
async function handleAction() { if (!disabled && val) { await apiCall(val); onAction?.(val); } }
return (
${id}-in}>Label
<input
id={${id}-in}
value={val}
onChange={e => setVal(e.target.value)}
disabled={disabled}
className="my-comp__input"
/>
Save
);
};
.my-comp { display: flex; flex-direction: column; gap: 16px; &__list { list-style: none; padding: 0; } &__input { width: 100%; border: 1px solid var(--border); } &__btn { &:hover:not(:disabled) { filter: brightness(0.9); } &:disabled { opacity: 0.5; cursor: not-allowed; } } }
type keyword, .ts) | 3. Local Components (.tsx) | 4. Custom Hooks | 5. Services | 6. Utils | 7. SCSSuseEffect..block .element..push() or direct mutation, use spread operator.npm run build succeeds without any errors (including on types of affected test files).