Files
FESADev/.codex/skills/fesa-feature-definition/SKILL.md
T
2026-06-02 16:58:56 +09:00

113 lines
6.4 KiB
Markdown

---
name: fesa-feature-definition
description: Use when defining or reviewing FESA solver feature requests, requirements, research questions, acceptance criteria, verification matrices, tolerance needs, or downstream handoffs before FEM formulation, I/O definition, reference modeling, implementation, or release.
---
# FESA Feature Definition
## Overview
Use this skill to turn a FESA solver feature request into a verifiable Feature Definition Packet. Define what the solver feature must do, how it will be verified, what research is needed, and what downstream agents need as input.
This skill is shared by Requirement Agent, Research Agent, Coordinator Agent, and Release Agent. It is not a formulation, implementation, reference generation, or release approval workflow.
## Inputs
Read the smallest useful set of these inputs before drafting or reviewing the packet:
- `docs/SOLVER_SKILL_DESIGN.md`
- `docs/SOLVER_AGENT_DESIGN.md`
- `AGENTS.md`
- User feature request or Coordinator handoff
- Existing `docs/requirements/<feature-id>.md`
- Existing `docs/research/<feature-id>-research.md`
- Relevant coordination or release reports when reviewing traceability
## Workflow
1. Feature Intake: assign a stable `feature_id`, summarize the requested capability, and separate user-visible behavior from implementation detail.
2. Solver Context: classify analysis type, element family, DOFs, material model boundary, loads, boundary conditions, units, coordinates, and required result quantities.
3. Requirement Drafting: write singular `shall` requirements. Keep each requirement measurable, necessary, unambiguous, feasible, and traceable.
4. Verification Planning: create a Requirement Verification Matrix that maps each `must` requirement to a verification method, acceptance criterion, compared quantity, artifact need, and tolerance decision.
5. Research Framing: list Research Questions for missing theory, benchmark values, official solver manual details, source quality, or applicability limits.
6. Quality Check: mark unverifiable, ambiguous, or missing decisions as `needs-user-decision`; do not invent values.
7. Downstream Handoff: package only the facts needed by Research, Formulation, I/O Definition, Reference Model, Implementation Planning, Release, or Coordinator agents.
## Output Contract
The primary output is a `Feature Definition Packet`. The default save candidate is `docs/requirements/<feature-id>.md`; Research Agent may later create `docs/research/<feature-id>-research.md`.
Include these sections:
- Metadata: `feature_id`, `title`, `status`, `owner_agent`, `date`, source request
- Feature Summary: purpose and expected solver behavior
- Included Scope: analysis, element, material, load, boundary, I/O, and result scope
- Excluded Scope: explicitly deferred capabilities
- Solver Context: units, coordinate system, DOFs, sign conventions, output quantities
- Requirement Records: one record per `shall` requirement
- Requirement Verification Matrix: requirement id, method, acceptance criterion, artifact, tolerance
- Research Questions: source gaps and benchmark questions for Research Agent
- Reference Artifact Needs: expected `model.inp`, `metadata.json`, and required CSVs
- Tolerance Decisions: known tolerance policies and unresolved tolerance decisions
- Open Issues: `needs-user-decision`, `needs-research`, or `needs-reference-artifacts`
- Downstream Handoff: target agent, required inputs, expected output, stop condition
Requirement record format:
```yaml
id: FESA-REQ-<FEATURE>-###
statement: "The FESA solver shall ..."
category: functional | physics | numerical | input | output | verification | constraint
rationale: "<why this is needed>"
source: user | docs | standard | benchmark | derived
priority: must | should | could
verification_method: test | analysis | inspection | demonstration | reference-comparison
acceptance_criteria: "<measurable pass/fail rule>"
tolerance: "<absolute/relative/norm tolerance or N/A with reason>"
trace_to:
parent_need: "<need id or statement>"
downstream_agents: ["Research Agent", "Formulation Agent"]
status: draft | needs-user-decision | approved
```
## Verification Matrix Rules
- Use `test` for deterministic unit, parser, or integration behavior.
- Use `analysis` for checks proven by calculation, dimensional reasoning, or theoretical derivation.
- Use `inspection` for static documents, schemas, files, and artifact presence.
- Use `demonstration` only when pass/fail can be observed without reference comparison.
- Use `reference-comparison` for stored reference artifact comparisons against displacements, reactions, element internal forces, stresses, and optional strain, energy, or residual quantities.
- If a tolerance is missing, write the tolerance need as an open issue instead of choosing one.
- If a required CSV or `metadata.json` is missing, do not mark the feature definition ready for downstream implementation.
## Boundaries
- Do not finalize FEM formulations.
- Do not write weak forms, shape functions, element matrices, or C++ API decisions as approved requirements.
- Do not implement C++ code.
- Do not create implementation plans beyond downstream handoff notes.
- Do not run Abaqus, Nastran, or any reference solver.
- Do not generate reference CSVs.
- Do not change stored reference artifacts or tolerance policies.
- Do not approve release readiness.
## Quality Gate
Before marking the packet `approved` or ready for a downstream agent, verify:
- Included and excluded scope are explicit.
- Every `must` requirement has a verification method and measurable acceptance criteria.
- Numerical requirements include units, coordinate system, quantity, and tolerance status.
- Reference-comparison requirements name the physical quantities and required artifacts.
- Phrases such as "same as Abaqus", "accurate", or "fast" are converted into measurable criteria or open issues.
- Implementation details are separated from requirements and moved to downstream handoff.
- Open decisions are marked `needs-user-decision` or assigned to a downstream agent.
## Common Mistakes
- Treating "Abaqus-compatible" as a requirement without a supported keyword subset and verification evidence.
- Turning preferred implementation details into `shall` requirements.
- Advancing to formulation when tolerance, unit, coordinate, or output-location decisions are absent.
- Treating a reference artifact request as permission to run Abaqus or create CSVs.
- Declaring release readiness from requirement quality alone.