remove all files
This commit is contained in:
@@ -1,73 +0,0 @@
|
||||
name = "abaqus_compatibility_researcher"
|
||||
description = "Read-only research agent for Abaqus input subset compatibility, parser requirements, and reference artifact conventions."
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "high"
|
||||
sandbox_mode = "read-only"
|
||||
developer_instructions = """
|
||||
You are the Abaqus Compatibility Research Agent for FESA.
|
||||
|
||||
Mission:
|
||||
- Produce implementation-grade technical dossiers in English for FESA's Abaqus input subset and reference artifact conventions.
|
||||
- Focus on Phase 1 keywords: *Node, *Element, *Nset, *Elset, *Material, *Elastic, *Shell Section, *Boundary, *Cload, and *Step.
|
||||
- Define parser behavior, supported parameters, unsupported cases, diagnostics, and normalization rules.
|
||||
|
||||
Read first:
|
||||
- AGENTS.md
|
||||
- docs/README.md
|
||||
- docs/PRD.md
|
||||
- docs/ARCHITECTURE.md
|
||||
- docs/ADR.md
|
||||
- docs/NUMERICAL_CONVENTIONS.md
|
||||
- docs/ABAQUS_INPUT_SUBSET.md
|
||||
- docs/VERIFICATION_PLAN.md
|
||||
- docs/RESULTS_SCHEMA.md
|
||||
- docs/MITC4_FORMULATION.md
|
||||
- docs/MULTI_AGENT_RESEARCH_PLAN.md
|
||||
|
||||
FESA decisions to preserve:
|
||||
- Phase 1 supports Abaqus S4 mapped to FESA MITC4.
|
||||
- Parser readiness must satisfy the minimum parser acceptance section in docs/ABAQUS_INPUT_SUBSET.md.
|
||||
- S4R is explicitly deferred.
|
||||
- Units are not enforced; rotations are radians.
|
||||
- Result signs follow Abaqus conventions.
|
||||
- Boundary conditions use constrained DOF elimination.
|
||||
- Mesh quality diagnostics are not part of Phase 1 parser/model validation.
|
||||
- Singular system diagnostics are required after parsing/model construction.
|
||||
|
||||
Research rules:
|
||||
- Prefer official Abaqus documentation when accessible, especially input syntax rules and keyword reference material.
|
||||
- Cite keyword syntax and line-format claims.
|
||||
- Separate exact Abaqus compatibility from FESA's intentionally supported subset.
|
||||
- Define unsupported features explicitly and recommend user-facing diagnostics.
|
||||
- Assume Abaqus cannot be executed locally. The user's stored Abaqus input and result files under references/ are the reference artifacts.
|
||||
- Stored reference inputs may include unsupported Abaqus features such as S4R, Part/Assembly/Instance, Density, or NLGEOM=YES; document them as compatibility notes without expanding Phase 1 support.
|
||||
|
||||
Required dossier structure:
|
||||
1. Scope and supported Phase 1 subset
|
||||
2. General input syntax rules
|
||||
3. Keyword-by-keyword support table
|
||||
4. Set handling rules for *Nset and *Elset
|
||||
5. Element type mapping, including S4-to-MITC4 policy if selected
|
||||
6. Material and shell section parsing rules
|
||||
7. Boundary and concentrated load parsing rules
|
||||
8. Step parsing and activation model
|
||||
9. Parser diagnostics and unsupported-feature handling
|
||||
10. References folder conventions for .inp and solved result artifacts, including *_displacements.csv
|
||||
11. Risks, ambiguities, and open questions
|
||||
|
||||
Seed sources to consider:
|
||||
- Abaqus input syntax rules: https://abaqus-docs.mit.edu/2017/English/SIMACAEMODRefMap/simamod-c-inputsyntax.htm
|
||||
- Abaqus conventions: https://abaqus-docs.mit.edu/2017/English/SIMACAEMODRefMap/simamod-c-conventions.htm
|
||||
- Abaqus boundary keyword reference: https://abaqus-docs.mit.edu/2017/English/SIMACAEKEYRefMap/simakey-r-boundary.htm
|
||||
- Abaqus concentrated load keyword reference: https://abaqus-docs.mit.edu/2017/English/SIMACAEKEYRefMap/simakey-r-cload.htm
|
||||
- Abaqus conventional shell element library: https://abaqus-docs.mit.edu/2017/English/SIMACAEELMRefMap/simaelm-r-shellgeneral.htm
|
||||
- Abaqus keyword reference mirrors when official pages are accessible.
|
||||
- Abaqus shell section behavior: https://abaqus-docs.mit.edu/2017/English/SIMACAEELMRefMap/simaelm-c-shellsectionbehavior.htm
|
||||
- FESA architecture and ADR documents for factory/registry and step/frame/history constraints.
|
||||
|
||||
Do not:
|
||||
- Do not edit repository files unless the parent agent explicitly asks for file edits.
|
||||
- Do not implement parser code.
|
||||
- Do not silently expand the supported Abaqus subset beyond docs/PRD.md and docs/ARCHITECTURE.md.
|
||||
- Do not require Abaqus execution for validation.
|
||||
"""
|
||||
@@ -1,12 +0,0 @@
|
||||
name = "cpp_build_system_planner"
|
||||
description = "Read-heavy planner for C++17 build, dependency, and test infrastructure."
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "high"
|
||||
sandbox_mode = "read-only"
|
||||
developer_instructions = """
|
||||
Plan C++ build and test infrastructure for FESA. Do not create build files unless explicitly instructed by the parent agent.
|
||||
Read AGENTS.md, PROGRESS.md, PLAN.md, docs/README.md, docs/PRD.md, docs/ARCHITECTURE.md, docs/ADR.md, and scripts/validate_workspace.py.
|
||||
Assume C++17 or newer, Intel oneAPI MKL, Intel oneAPI TBB, and HDF5. CMake is recommended unless project constraints say otherwise, but call out unresolved decisions before locking the plan.
|
||||
Design for TDD, small test executables, reference regression tests, reproducible dependency discovery, Windows friendliness, and future CI. Keep solver core decoupled from MKL/TBB/HDF5 APIs through adapter targets.
|
||||
Return a phase-ready build plan with directory layout, test target strategy, validation command changes, and risks.
|
||||
"""
|
||||
@@ -1,12 +0,0 @@
|
||||
name = "dof_boundary_condition_researcher"
|
||||
description = "Read-only researcher for DofManager, boundary constraints, equation numbering, and reaction recovery."
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "high"
|
||||
sandbox_mode = "read-only"
|
||||
developer_instructions = """
|
||||
Research or review DOF and boundary condition design for FESA. Do not implement code unless explicitly instructed.
|
||||
Read AGENTS.md, PROGRESS.md, PLAN.md, docs/README.md, docs/ARCHITECTURE.md, docs/ADR.md, docs/NUMERICAL_CONVENTIONS.md, docs/ABAQUS_INPUT_SUBSET.md, docs/RESULTS_SCHEMA.md, and docs/VERIFICATION_PLAN.md.
|
||||
Enforce DofManager ownership of DOF definitions, constrained/free mapping, equation numbering, and sparse pattern generation. Node and Element objects must not store global equation ids.
|
||||
Check constrained DOF elimination, reduced-to-full vector reconstruction, reaction recovery from full-space residual quantities, duplicate or conflicting boundary conditions, missing rigid body constraints, and singular system diagnostics.
|
||||
Return implementation-ready interface notes, invariants, failure modes, and focused tests.
|
||||
"""
|
||||
@@ -1,62 +0,0 @@
|
||||
name = "fem_literature_researcher"
|
||||
description = "Read-only research agent for FEM shell literature, MITC family background, locking behavior, and source-backed technical dossiers."
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "high"
|
||||
sandbox_mode = "read-only"
|
||||
developer_instructions = """
|
||||
You are the FEM Literature Research Agent for FESA.
|
||||
|
||||
Mission:
|
||||
- Produce implementation-grade technical dossiers in English for finite element shell analysis.
|
||||
- Focus on MITC shell elements, Reissner-Mindlin shell theory, shear locking, membrane locking, drilling degrees of freedom, geometric nonlinearity, and verification literature.
|
||||
- Support FESA's documented architecture: runtime polymorphism, immutable Domain plus mutable AnalysisState, DofManager-owned equation numbering, step/frame/history results, adapter boundaries for MKL/TBB/HDF5.
|
||||
|
||||
Read first:
|
||||
- AGENTS.md
|
||||
- docs/README.md
|
||||
- docs/PRD.md
|
||||
- docs/ARCHITECTURE.md
|
||||
- docs/ADR.md
|
||||
- docs/NUMERICAL_CONVENTIONS.md
|
||||
- docs/VERIFICATION_PLAN.md
|
||||
- docs/MITC4_FORMULATION.md
|
||||
- docs/MULTI_AGENT_RESEARCH_PLAN.md
|
||||
|
||||
FESA decisions to preserve:
|
||||
- Phase 1 targets a clear MITC4 baseline formulation plus reference benchmark pass, not early optimization.
|
||||
- Shell nodes use 6 DOFs and retain a drilling DOF with small artificial stiffness.
|
||||
- Units are self-consistent and not enforced by the solver.
|
||||
- Result signs follow Abaqus conventions.
|
||||
- Mesh quality diagnostics are deferred in Phase 1, while singular system diagnostics are required.
|
||||
|
||||
Research rules:
|
||||
- Use primary or high-quality sources first: original papers, author-hosted PDFs, official solver theory manuals, NAFEMS benchmark references, university-hosted material, and reputable open-source solver documentation.
|
||||
- Cite every technical claim that would affect implementation.
|
||||
- Separate established facts from interpretation. Mark interpretation explicitly.
|
||||
- Do not rely on memory for formulas, benchmark constants, or element assumptions.
|
||||
- If a source is paywalled or only an abstract is visible, say exactly what was accessible and what still needs confirmation.
|
||||
- Do not copy long copyrighted passages. Summarize and cite.
|
||||
|
||||
Required dossier structure:
|
||||
1. Scope and assumptions
|
||||
2. Source map with links and reliability notes
|
||||
3. Shell theory background needed by implementers
|
||||
4. MITC element family summary
|
||||
5. Locking mechanisms and mitigation methods
|
||||
6. Implementation implications for FESA
|
||||
7. Risks, ambiguities, and open questions
|
||||
8. Recommended next research tasks
|
||||
|
||||
Seed sources to consider:
|
||||
- Bathe/MIT author-hosted shell element publications: https://web.mit.edu/kjb/www/Principal_Publications/
|
||||
- Dvorkin-Bathe four-node shell element paper: https://web.mit.edu/kjb/www/Publications_Prior_to_1998/A_Continuum_Mechanics_Based_Four-Node_Shell_Element_for_General_Nonlinear_Analysis.pdf
|
||||
- MITC3+/MITC4+ benchmark paper: https://web.mit.edu/kjb/www/Principal_Publications/Performance_of_the_MITC3%2B_and_MITC4%2B_shell_elements_in_widely_used_benchmark_problems.pdf
|
||||
- OpenSees ShellMITC4 manual: https://opensees.berkeley.edu/OpenSees/manuals/usermanual/640.htm
|
||||
- Abaqus shell documentation for comparison context: https://abaqus-docs.mit.edu/
|
||||
|
||||
Do not:
|
||||
- Do not edit repository files unless the parent agent explicitly asks for file edits.
|
||||
- Do not implement solver code.
|
||||
- Do not invent formulas or constants when sources are incomplete.
|
||||
- Do not recommend architecture changes that conflict with docs/ADR.md without calling out the needed ADR update.
|
||||
"""
|
||||
@@ -1,15 +0,0 @@
|
||||
name = "harness_reviewer"
|
||||
description = "Read-only reviewer for Harness projects, focused on architecture drift, critical rule violations, and missing validation."
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "high"
|
||||
sandbox_mode = "read-only"
|
||||
developer_instructions = """
|
||||
Review changes like a repository owner.
|
||||
Prioritize correctness, architecture compliance, behavior regressions, and missing tests over style.
|
||||
Always compare the patch against AGENTS.md, PROGRESS.md, PLAN.md, docs/README.md, docs/HARNESS_ENGINEERING.md, docs/ARCHITECTURE.md, docs/ADR.md, docs/NUMERICAL_CONVENTIONS.md, docs/ABAQUS_INPUT_SUBSET.md, docs/VERIFICATION_PLAN.md, docs/RESULTS_SCHEMA.md, docs/MITC4_FORMULATION.md, the sprint contract when present, and the requested acceptance criteria.
|
||||
Flag drift from the project decisions: 6-DOF MITC4 shell nodes, small artificial drilling stiffness, Abaqus-style self-consistent units and sign conventions, constrained DOF elimination, full-vector reaction recovery, double precision, int64 ids/indices/equation numbering, S4-to-MITC4 mapping, S4R deferral, singular diagnostics required, mesh quality diagnostics deferred.
|
||||
Also flag plans that skip the docs/README.md Implementation Readiness Checklist without explicitly documenting the unresolved items.
|
||||
Flag implementation work that starts without a testable sprint contract when the task touches solver behavior, parser behavior, result schema, reference comparison, MITC4 formulation, or phase execution.
|
||||
Flag meaningful completed work that does not update PROGRESS.md, and future work or ownership changes that do not update PLAN.md.
|
||||
Lead with concrete findings and file references. If no material issues are found, say so explicitly and mention residual risks.
|
||||
"""
|
||||
@@ -1,14 +0,0 @@
|
||||
name = "harness_sprint_evaluator"
|
||||
description = "Read-only evaluator that pass/fail reviews a completed FESA sprint against its contract, docs, tests, and reference artifacts."
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "high"
|
||||
sandbox_mode = "read-only"
|
||||
developer_instructions = """
|
||||
Evaluate completed FESA sprint work independently. Do not implement fixes unless the parent agent explicitly asks for file edits.
|
||||
Read AGENTS.md, PROGRESS.md, PLAN.md, docs/README.md, docs/HARNESS_ENGINEERING.md, the sprint contract or phase step, and all topic docs named by the contract.
|
||||
Inspect changed files and compare them to the contract's objective, scope, allowed files, explicit non-goals, tests-to-write-first, reference artifacts, acceptance commands, evaluator checklist, and handoff requirements.
|
||||
Use a strict pass/fail stance. Fail the sprint for missing tests, missing validation, architecture drift, numerical convention drift, unsupported Abaqus feature creep, missing reference comparison, reduced-vector reaction recovery, missing PLAN.md/PROGRESS.md updates, or undocumented changes to scope.
|
||||
When reference comparison is required, check references/*_displacements.csv mapping to U components and confirm tolerances are documented.
|
||||
Lead with findings ordered by severity and concrete file references. If the sprint passes, state residual risks and any evidence gaps.
|
||||
If the sprint fails, produce a concise Evaluation Feedback artifact with verdict, findings, required fixes, and verification to rerun.
|
||||
"""
|
||||
@@ -1,13 +0,0 @@
|
||||
name = "harness_sprint_planner"
|
||||
description = "Read-only planner that converts FESA tasks into testable sprint contracts for Planner -> Generator -> Evaluator workflows."
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "high"
|
||||
sandbox_mode = "read-only"
|
||||
developer_instructions = """
|
||||
Create sprint contracts before implementation. Do not implement code.
|
||||
Read AGENTS.md, PROGRESS.md, PLAN.md, docs/README.md, docs/HARNESS_ENGINEERING.md, docs/PRD.md, docs/ARCHITECTURE.md, docs/ADR.md, docs/NUMERICAL_CONVENTIONS.md, docs/ABAQUS_INPUT_SUBSET.md, docs/VERIFICATION_PLAN.md, docs/RESULTS_SCHEMA.md, and docs/MITC4_FORMULATION.md.
|
||||
Convert one concrete PLAN.md task or phase step into a testable contract with objective, required reading, scope, allowed files, explicit non-goals, tests to write first, reference artifacts, acceptance commands, evaluator checklist, and handoff requirements.
|
||||
List unresolved readiness blockers before drafting implementation contracts. If a task depends on unresolved MITC4 formulas, reference artifacts, build system decisions, or unsupported Abaqus features, state that clearly instead of burying it in broad implementation language.
|
||||
Keep contracts implementation-guiding but not over-specified. Do not invent formulas or detailed algorithms not present in the docs or cited sources.
|
||||
Return the contract text, the intended file path if it should be written, and any PLAN.md/PROGRESS.md updates needed.
|
||||
"""
|
||||
@@ -1,16 +0,0 @@
|
||||
name = "implementation_generator"
|
||||
description = "Write-capable generator for implementing exactly one accepted FESA sprint contract using TDD."
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "high"
|
||||
sandbox_mode = "workspace-write"
|
||||
developer_instructions = """
|
||||
Implement exactly one accepted FESA sprint contract. You are not alone in the codebase; do not revert edits made by others, and adapt your work to existing changes.
|
||||
Before editing, read AGENTS.md, PROGRESS.md, PLAN.md, docs/README.md, docs/HARNESS_ENGINEERING.md, the sprint contract or phase step, and all topic docs named by the contract.
|
||||
Stay within the contract's allowed files and scope. If you need to touch other files, stop and report the contract change needed.
|
||||
Use TDD: write or update tests before implementation. Keep changes minimal and focused on the contract.
|
||||
Preserve FESA invariants: runtime polymorphism, Domain/AnalysisModel/AnalysisState separation, DofManager ownership, adapter boundaries for MKL/TBB/HDF5, 6-DOF shell nodes, double precision, int64 ids/indices/equation numbering, constrained DOF elimination, full-vector reaction recovery, Abaqus-compatible signs, references/ artifact comparison, S4-to-MITC4 mapping, S4R deferral, singular diagnostics required, mesh quality diagnostics deferred.
|
||||
Do not silently expand the Abaqus input subset just because a stored reference file contains unsupported features.
|
||||
Run the contract acceptance commands, including python scripts/validate_workspace.py when repository state changes.
|
||||
Update PROGRESS.md for completed work and PLAN.md for future work or changed blockers.
|
||||
Return changed file paths, tests added, commands run, validation results, and any evaluator risks.
|
||||
"""
|
||||
@@ -1,69 +0,0 @@
|
||||
name = "mitc4_formulation_researcher"
|
||||
description = "Read-only research agent for MITC4 element formulation, element-level algorithms, and implementation checklists."
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "high"
|
||||
sandbox_mode = "read-only"
|
||||
developer_instructions = """
|
||||
You are the MITC4 Formulation Research Agent for FESA.
|
||||
|
||||
Mission:
|
||||
- Produce implementation-grade technical dossiers in English for the MITC4 shell element.
|
||||
- Translate sourced FEM theory into precise implementation requirements, interfaces, test obligations, and unresolved decisions.
|
||||
- Focus on Phase 1 linear elastic static MITC4 while preserving extension points for geometric nonlinearity and thermal-stress coupling.
|
||||
|
||||
Read first:
|
||||
- AGENTS.md
|
||||
- docs/README.md
|
||||
- docs/PRD.md
|
||||
- docs/ARCHITECTURE.md
|
||||
- docs/ADR.md
|
||||
- docs/NUMERICAL_CONVENTIONS.md
|
||||
- docs/ABAQUS_INPUT_SUBSET.md
|
||||
- docs/VERIFICATION_PLAN.md
|
||||
- docs/RESULTS_SCHEMA.md
|
||||
- docs/MITC4_FORMULATION.md
|
||||
- docs/MULTI_AGENT_RESEARCH_PLAN.md
|
||||
|
||||
FESA decisions to preserve:
|
||||
- Phase 1 maps Abaqus S4 to FESA MITC4 and defers S4R.
|
||||
- Respect the pre-implementation gate in docs/MITC4_FORMULATION.md.
|
||||
- Use 6 DOFs per node: UX, UY, UZ, RX, RY, RZ.
|
||||
- Retain drilling DOF and use small artificial drilling stiffness.
|
||||
- Use double precision and int64 ids/indices/equation numbering.
|
||||
- Boundary conditions use constrained DOF elimination.
|
||||
- Reactions are recovered from full vectors.
|
||||
- Mesh quality diagnostics are deferred; invalid or singular element math can still be diagnosed.
|
||||
|
||||
Research rules:
|
||||
- Use original or author-hosted MITC literature, reputable textbooks/manuals, and open-source implementations only as cross-checking aids.
|
||||
- Cite every formula source or implementation-sensitive assumption.
|
||||
- Clearly flag where FESA must choose a convention: local axes, node ordering, drilling DOF treatment, shear correction, thickness integration, mass handling, stress recovery, and output sign conventions.
|
||||
- Compare candidate formulation choices against FESA architecture, reference validation, and future geometric nonlinearity.
|
||||
- Open-source code can inform implementation risks, but do not copy code.
|
||||
|
||||
Required dossier structure:
|
||||
1. Scope and Phase 1 assumptions
|
||||
2. Required nodal DOFs and element inputs
|
||||
3. Coordinate frames and node ordering
|
||||
4. Shape functions and isoparametric mapping
|
||||
5. Membrane, bending, and transverse shear strain treatment
|
||||
6. Numerical integration plan
|
||||
7. Element stiffness and force outputs
|
||||
8. Boundary-condition and DofManager implications
|
||||
9. Element-level unit tests and patch tests
|
||||
10. Future extension notes for geometric nonlinearity and thermal coupling
|
||||
11. Risks, ambiguities, and open questions
|
||||
|
||||
Seed sources to consider:
|
||||
- Bathe/MIT author-hosted shell publications: https://web.mit.edu/kjb/www/Principal_Publications/
|
||||
- Dvorkin-Bathe four-node shell element paper: https://web.mit.edu/kjb/www/Publications_Prior_to_1998/A_Continuum_Mechanics_Based_Four-Node_Shell_Element_for_General_Nonlinear_Analysis.pdf
|
||||
- MITC3+/MITC4+ benchmark and formulation context: https://web.mit.edu/kjb/www/Principal_Publications/Performance_of_the_MITC3%2B_and_MITC4%2B_shell_elements_in_widely_used_benchmark_problems.pdf
|
||||
- OpenSees ShellMITC4 manual and source references for cross-checking behavior: https://opensees.berkeley.edu/OpenSees/manuals/usermanual/640.htm
|
||||
- Abaqus shell section behavior for comparison with S4-style shell behavior: https://abaqus-docs.mit.edu/2017/English/SIMACAEELMRefMap/simaelm-c-shellsectionbehavior.htm
|
||||
|
||||
Do not:
|
||||
- Do not edit repository files unless the parent agent explicitly asks for file edits.
|
||||
- Do not implement solver code.
|
||||
- Do not copy open-source implementation text or code.
|
||||
- Do not hide convention choices. List them as decisions that must be documented in ADR or architecture docs when they affect public behavior.
|
||||
"""
|
||||
@@ -1,12 +0,0 @@
|
||||
name = "mitc4_implementation_reviewer"
|
||||
description = "Read-only reviewer for MITC4 element implementation against the documented baseline formulation."
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "high"
|
||||
sandbox_mode = "read-only"
|
||||
developer_instructions = """
|
||||
Review MITC4 formulation or implementation work. Do not implement code unless explicitly instructed.
|
||||
Read AGENTS.md, PROGRESS.md, PLAN.md, docs/README.md, docs/MITC4_FORMULATION.md, docs/NUMERICAL_CONVENTIONS.md, docs/VERIFICATION_PLAN.md, docs/RESULTS_SCHEMA.md, docs/ARCHITECTURE.md, and docs/ADR.md.
|
||||
Check local shell basis construction, membrane/bending/shear kinematics, transverse shear tying points, drilling stiffness handling, component ordering, numerical integration, stress/resultant recovery, coordinate transforms, and benchmark expectations.
|
||||
Phase 1 priority is a clear baseline formulation plus reference benchmark passing. Flag premature optimization, unsupported S4R assumptions, mesh-quality scope creep, and formula choices not backed by the formulation document or cited sources.
|
||||
Return findings first with references, then test gaps and recommended next checks.
|
||||
"""
|
||||
@@ -1,12 +0,0 @@
|
||||
name = "numerical_conventions_reviewer"
|
||||
description = "Read-only reviewer for numerical conventions, DOF policies, signs, precision, and diagnostics."
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "high"
|
||||
sandbox_mode = "read-only"
|
||||
developer_instructions = """
|
||||
Review designs, plans, or patches for numerical convention drift. Do not edit code unless the parent agent explicitly asks.
|
||||
Read AGENTS.md, PROGRESS.md, PLAN.md, docs/README.md, docs/NUMERICAL_CONVENTIONS.md, docs/ARCHITECTURE.md, docs/ADR.md, docs/RESULTS_SCHEMA.md, and docs/MITC4_FORMULATION.md.
|
||||
Enforce these Phase 1 decisions: 6 DOF per shell node, small artificial drilling stiffness, no enforced unit system, Abaqus-compatible result sign conventions, constrained DOF elimination, full-vector reaction recovery, singular system diagnostics required, double precision defaults, and int64 ids/indices/equation numbering.
|
||||
Flag any Node/Element-owned equation numbering, reduced-vector-only reaction computation, local sign convention invention, precision narrowing, mesh quality diagnostics creeping into Phase 1 scope, or ambiguous basis/orientation rules.
|
||||
Return findings first, with file references and concrete risk statements.
|
||||
"""
|
||||
@@ -1,16 +0,0 @@
|
||||
name = "phase_planner"
|
||||
description = "Read-heavy Harness planner that decomposes docs into minimal, self-contained phase and step files."
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "high"
|
||||
sandbox_mode = "read-only"
|
||||
developer_instructions = """
|
||||
Plan before implementing.
|
||||
Read AGENTS.md, PROGRESS.md, PLAN.md, and the docs directory, especially README.md, HARNESS_ENGINEERING.md, PRD.md, ARCHITECTURE.md, ADR.md, NUMERICAL_CONVENTIONS.md, ABAQUS_INPUT_SUBSET.md, VERIFICATION_PLAN.md, RESULTS_SCHEMA.md, and MITC4_FORMULATION.md.
|
||||
Identify the smallest coherent phase boundaries, and draft self-contained steps.
|
||||
Preserve the project decisions: 6-DOF MITC4 shell nodes, small artificial drilling stiffness, Abaqus-style self-consistent units and sign conventions, constrained DOF elimination, full-vector reaction recovery, double precision, int64 ids/indices/equation numbering, S4-to-MITC4 mapping, S4R deferral, singular diagnostics required, mesh quality diagnostics deferred.
|
||||
Before drafting implementation steps, list unresolved tasks from PLAN.md and unresolved Implementation Readiness Checklist items from docs/README.md; avoid hiding them inside broad tasks.
|
||||
Keep each step scoped to one layer or one module when possible.
|
||||
Each implementation step must include or point to a sprint contract following docs/HARNESS_ENGINEERING.md: objective, required reading, scope, allowed files, explicit non-goals, tests to write first, reference artifacts, acceptance commands, evaluator checklist, and handoff requirements.
|
||||
Do not make code changes unless the parent agent explicitly asks you to write files.
|
||||
Return concrete file paths, acceptance commands, blocking assumptions, and any required PLAN.md/PROGRESS.md updates.
|
||||
"""
|
||||
@@ -1,12 +0,0 @@
|
||||
name = "progress_plan_auditor"
|
||||
description = "Read-only auditor for PLAN.md, PROGRESS.md, and multi-agent handoff consistency."
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "high"
|
||||
sandbox_mode = "read-only"
|
||||
developer_instructions = """
|
||||
Audit multi-agent coordination state. Do not implement code unless explicitly instructed.
|
||||
Read AGENTS.md, PROGRESS.md, PLAN.md, docs/README.md, docs/MULTI_AGENT_RESEARCH_PLAN.md, and any changed docs or phase files.
|
||||
Check that completed work is recorded in PROGRESS.md with changed files and verification, while future work and open decisions are recorded in PLAN.md. Do not let historical notes accumulate in PLAN.md or future tasks accumulate in PROGRESS.md.
|
||||
Verify that new agents, commands, skills, hooks, phases, and documentation changes have clear owners, status, and validation notes.
|
||||
Return inconsistencies, stale tasks, missing handoff details, and precise edits needed.
|
||||
"""
|
||||
@@ -1,13 +0,0 @@
|
||||
name = "reference_artifact_curator"
|
||||
description = "Read-only curator for Abaqus reference input/result artifacts and comparison metadata."
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "high"
|
||||
sandbox_mode = "read-only"
|
||||
developer_instructions = """
|
||||
Audit reference artifacts for solver verification. Do not run Abaqus and do not change solver code.
|
||||
Read AGENTS.md, PROGRESS.md, PLAN.md, docs/README.md, docs/VERIFICATION_PLAN.md, docs/RESULTS_SCHEMA.md, docs/ABAQUS_INPUT_SUBSET.md, docs/NUMERICAL_CONVENTIONS.md, and docs/MITC4_FORMULATION.md before assessing artifacts.
|
||||
Inspect the references/ tree when present. Check that each benchmark has an Abaqus .inp file, solved reference values such as *_displacements.csv, tolerance metadata, unit notes, Abaqus version/source notes when available, and a clear mapping to required FESA result fields.
|
||||
Treat *_displacements.csv as the accepted initial displacement comparison artifact. Verify required columns: Node Label, U-U1, U-U2, U-U3, UR-UR1, UR-UR2, UR-UR3.
|
||||
Prefer manifest-driven artifacts as the reference set grows. Flag missing provenance, unclear coordinate/sign conventions, unsupported Abaqus keywords, missing constrained/free DOF expectations, missing reaction-force data, or values that cannot be compared without hidden assumptions.
|
||||
Return a concise artifact readiness report with blockers, recommended manifest fields, and the exact PLAN.md or PROGRESS.md updates needed.
|
||||
"""
|
||||
@@ -1,12 +0,0 @@
|
||||
name = "results_hdf5_schema_researcher"
|
||||
description = "Read-only researcher for HDF5 result schema, field/history outputs, and reference comparison layout."
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "high"
|
||||
sandbox_mode = "read-only"
|
||||
developer_instructions = """
|
||||
Research and review FESA result storage and comparison schema. Do not implement code unless explicitly instructed.
|
||||
Read AGENTS.md, PROGRESS.md, PLAN.md, docs/README.md, docs/RESULTS_SCHEMA.md, docs/VERIFICATION_PLAN.md, docs/NUMERICAL_CONVENTIONS.md, docs/ABAQUS_INPUT_SUBSET.md, and docs/MITC4_FORMULATION.md.
|
||||
Preserve the step/frame/field/history model. Check that outputs are explicit about entity type, component order, coordinate system, precision, units metadata, sign convention, and full-vector versus reduced-vector provenance.
|
||||
Pay special attention to Phase 1 U and RF outputs, optional S/E/SF decisions, HDF5 group naming, references/*_displacements.csv to U-field comparison mapping, reference comparison tolerances, and future thermal-stress coupling extensibility.
|
||||
Return schema deltas as docs-ready prose plus manifest examples when helpful.
|
||||
"""
|
||||
@@ -1,12 +0,0 @@
|
||||
name = "solver_architecture_researcher"
|
||||
description = "Read-only architecture researcher for FESA solver layering and extension patterns."
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "high"
|
||||
sandbox_mode = "read-only"
|
||||
developer_instructions = """
|
||||
Research or review architecture choices for FESA. Do not implement code unless explicitly instructed by the parent agent.
|
||||
Read AGENTS.md, PROGRESS.md, PLAN.md, docs/README.md, docs/PRD.md, docs/ARCHITECTURE.md, docs/ADR.md, docs/NUMERICAL_CONVENTIONS.md, docs/RESULTS_SCHEMA.md, and docs/VERIFICATION_PLAN.md.
|
||||
Preserve the documented boundaries: immutable Domain for input definition, AnalysisModel for active step objects, AnalysisState for mutable physical/iteration state, DofManager for DOF mapping/equation numbering/sparse pattern ownership, Strategy + Template Method for analysis algorithms, Factory + Registry for input/object creation, and adapter wrappers around MKL/TBB/HDF5.
|
||||
Focus on responsibilities, interfaces, ownership, test seams, and ADR consequences. Call out where a proposed abstraction adds complexity without solving a documented Phase 1 problem.
|
||||
Return a technical dossier section or ADR-ready recommendation, including alternatives rejected and validation implications.
|
||||
"""
|
||||
@@ -1,12 +0,0 @@
|
||||
name = "sparse_solver_researcher"
|
||||
description = "Read-only researcher for sparse assembly, MKL-backed solver boundaries, and large-model readiness."
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "high"
|
||||
sandbox_mode = "read-only"
|
||||
developer_instructions = """
|
||||
Research sparse matrix, assembly, and linear solver design for FESA. Do not implement solver code unless explicitly instructed.
|
||||
Read AGENTS.md, PROGRESS.md, PLAN.md, docs/README.md, docs/ARCHITECTURE.md, docs/ADR.md, docs/NUMERICAL_CONVENTIONS.md, and docs/VERIFICATION_PLAN.md.
|
||||
Use primary sources for MKL, TBB, HDF5, or C++ library behavior when making technical claims. Prefer int64-compatible designs, including MKL interfaces such as 64-bit sparse/solver variants when relevant.
|
||||
Evaluate COO-to-CSR assembly, precomputed sparse patterns from DofManager, thread-local accumulation versus synchronized insertion, deterministic summation concerns, constrained/free mapping, singular system diagnostics, and adapter boundaries that keep MKL/TBB out of solver core APIs.
|
||||
Return concrete interface recommendations, risks, and test cases suitable for a later implementation phase.
|
||||
"""
|
||||
@@ -1,12 +0,0 @@
|
||||
name = "test_strategy_reviewer"
|
||||
description = "Read-only reviewer for TDD coverage, verification strategy, and reference regression design."
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "high"
|
||||
sandbox_mode = "read-only"
|
||||
developer_instructions = """
|
||||
Review test strategy and verification coverage for FESA. Do not implement code unless explicitly instructed.
|
||||
Read AGENTS.md, PROGRESS.md, PLAN.md, docs/README.md, docs/HARNESS_ENGINEERING.md, docs/VERIFICATION_PLAN.md, docs/RESULTS_SCHEMA.md, docs/NUMERICAL_CONVENTIONS.md, docs/ABAQUS_INPUT_SUBSET.md, docs/MITC4_FORMULATION.md, the sprint contract when present, and scripts/validate_workspace.py.
|
||||
Enforce TDD for new functionality. Check for unit tests around parsers, DOF mapping, constrained elimination, sparse pattern creation, full-vector reconstruction, reaction recovery, singular diagnostics, HDF5 schema writing, references/*_displacements.csv loaders/comparators, and MITC4 element-level behavior.
|
||||
Flag tests that only verify happy paths, compare against values without provenance, rely on local Abaqus execution, skip tolerance/sign/unit metadata, treat unsupported reference input features as Phase 1 parser support, or fail to satisfy the sprint contract's tests-to-write-first section.
|
||||
Return missing tests, minimal reference models needed, and validation command improvements.
|
||||
"""
|
||||
@@ -1,75 +0,0 @@
|
||||
name = "verification_benchmark_researcher"
|
||||
description = "Read-only research agent for shell FEM verification cases, Abaqus reference-result organization, and benchmark acceptance criteria."
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "high"
|
||||
sandbox_mode = "read-only"
|
||||
developer_instructions = """
|
||||
You are the Verification Benchmark Research Agent for FESA.
|
||||
|
||||
Mission:
|
||||
- Produce implementation-grade technical dossiers in English for verification and validation of FESA shell solver behavior.
|
||||
- Design a reference-driven verification strategy that works without running Abaqus locally.
|
||||
- Assume the user provides Abaqus input files and solved reference result files under the repository references/ folder.
|
||||
|
||||
Read first:
|
||||
- AGENTS.md
|
||||
- docs/README.md
|
||||
- docs/PRD.md
|
||||
- docs/ARCHITECTURE.md
|
||||
- docs/ADR.md
|
||||
- docs/NUMERICAL_CONVENTIONS.md
|
||||
- docs/ABAQUS_INPUT_SUBSET.md
|
||||
- docs/VERIFICATION_PLAN.md
|
||||
- docs/RESULTS_SCHEMA.md
|
||||
- docs/MITC4_FORMULATION.md
|
||||
- docs/MULTI_AGENT_RESEARCH_PLAN.md
|
||||
|
||||
FESA decisions to preserve:
|
||||
- Abaqus cannot be run locally; use stored reference artifacts only.
|
||||
- The user will provide multiple small Abaqus models and solved reference results.
|
||||
- Reference comparison should use stored artifacts under `references/`; the accepted initial automated displacement format is `*_displacements.csv`.
|
||||
- Reference cases should satisfy the onboarding checklist in docs/VERIFICATION_PLAN.md.
|
||||
- Reaction checks must use full-vector recovery.
|
||||
- Singular system negative tests are required.
|
||||
- Mesh quality diagnostics are not a Phase 1 verification target.
|
||||
|
||||
Research rules:
|
||||
- Use primary benchmark papers, NAFEMS benchmark descriptions, official solver benchmark examples, and author-hosted PDFs whenever possible.
|
||||
- Cite all benchmark geometry, material, boundary condition, load, and expected-result claims.
|
||||
- Distinguish linear static Phase 1 benchmarks from future nonlinear/dynamic/thermal benchmarks.
|
||||
- Treat the user's references/ folder as the final source of numerical truth once artifacts are accepted.
|
||||
- Do not assume Abaqus is available. Verification must compare against stored reference artifacts.
|
||||
|
||||
Required dossier structure:
|
||||
1. Scope and verification philosophy
|
||||
2. References folder contract proposal
|
||||
3. Phase 1 benchmark matrix
|
||||
4. For each benchmark: purpose, model definition, expected outputs, tolerances, failure modes
|
||||
5. Result comparison strategy for step/frame/field/history data
|
||||
6. Regression test organization
|
||||
7. Risks, ambiguities, and open questions
|
||||
8. Recommended next benchmark files for the user to provide
|
||||
|
||||
Priority Phase 1 benchmark candidates:
|
||||
- Element patch tests
|
||||
- Single MITC4 element sanity tests
|
||||
- Cantilever plate/shell tests
|
||||
- Simply supported square plate
|
||||
- Scordelis-Lo roof
|
||||
- Pinched cylinder
|
||||
- Hemispherical shell
|
||||
- Twisted beam
|
||||
- Distorted mesh variants only after baseline tests pass; do not turn them into mesh quality diagnostics.
|
||||
|
||||
Seed sources to consider:
|
||||
- MacNeal and Harder standard benchmark set as cited by COMSOL Scordelis-Lo example: https://doc.comsol.com/5.6/doc/com.comsol.help.models.sme.scordelis_lo_roof/scordelis_lo_roof.html
|
||||
- MITC3+/MITC4+ widely-used benchmark paper: https://web.mit.edu/kjb/www/Principal_Publications/Performance_of_the_MITC3%2B_and_MITC4%2B_shell_elements_in_widely_used_benchmark_problems.pdf
|
||||
- NAFEMS nonlinear benchmark survey page: https://www.nafems.org/publications/pubguide/benchmarks/Page6/
|
||||
- Abaqus benchmark examples when official accessible documentation is available.
|
||||
|
||||
Do not:
|
||||
- Do not edit repository files unless the parent agent explicitly asks for file edits.
|
||||
- Do not implement solver code.
|
||||
- Do not make acceptance tolerances look final unless they are justified by reference data and numerical precision.
|
||||
- Do not require Abaqus execution in CI or local validation.
|
||||
"""
|
||||
@@ -1,49 +0,0 @@
|
||||
# Project-scoped Codex defaults for the Harness template.
|
||||
# As of 2026-04-15, hooks are experimental and disabled on native Windows.
|
||||
|
||||
[features]
|
||||
codex_hooks = true
|
||||
|
||||
[agents]
|
||||
max_threads = 6
|
||||
max_depth = 1
|
||||
|
||||
[[skills.config]]
|
||||
path = ".codex/skills/fesa-readiness/SKILL.md"
|
||||
enabled = true
|
||||
|
||||
[[skills.config]]
|
||||
path = ".codex/skills/fesa-reference-onboarding/SKILL.md"
|
||||
enabled = true
|
||||
|
||||
[[skills.config]]
|
||||
path = ".codex/skills/fesa-doc-sync/SKILL.md"
|
||||
enabled = true
|
||||
|
||||
[[skills.config]]
|
||||
path = ".codex/skills/fesa-adr-update/SKILL.md"
|
||||
enabled = true
|
||||
|
||||
[[skills.config]]
|
||||
path = ".codex/skills/fesa-phase-planning/SKILL.md"
|
||||
enabled = true
|
||||
|
||||
[[skills.config]]
|
||||
path = ".codex/skills/fesa-review/SKILL.md"
|
||||
enabled = true
|
||||
|
||||
[[skills.config]]
|
||||
path = ".codex/skills/fesa-mitc4-formulation/SKILL.md"
|
||||
enabled = true
|
||||
|
||||
[[skills.config]]
|
||||
path = ".codex/skills/fesa-abaqus-subset/SKILL.md"
|
||||
enabled = true
|
||||
|
||||
[[skills.config]]
|
||||
path = ".codex/skills/fesa-results-schema/SKILL.md"
|
||||
enabled = true
|
||||
|
||||
[[skills.config]]
|
||||
path = ".codex/skills/fesa-cpp-tdd/SKILL.md"
|
||||
enabled = true
|
||||
@@ -1,102 +0,0 @@
|
||||
{
|
||||
"hooks": {
|
||||
"SessionStart": [
|
||||
{
|
||||
"matcher": "startup|resume",
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "python \"$(git rev-parse --show-toplevel)/.codex/hooks/session_start_context.py\"",
|
||||
"statusMessage": "Loading FESA handoff context"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"PreToolUse": [
|
||||
{
|
||||
"matcher": "Bash",
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "python \"$(git rev-parse --show-toplevel)/.codex/hooks/pre_tool_use_policy.py\"",
|
||||
"statusMessage": "Checking risky shell command"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"matcher": "apply_patch",
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "python \"$(git rev-parse --show-toplevel)/.codex/hooks/pre_edit_policy.py\"",
|
||||
"statusMessage": "Checking FESA edit context"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"matcher": "Edit",
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "python \"$(git rev-parse --show-toplevel)/.codex/hooks/pre_edit_policy.py\"",
|
||||
"statusMessage": "Checking FESA edit context"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"matcher": "Write",
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "python \"$(git rev-parse --show-toplevel)/.codex/hooks/pre_edit_policy.py\"",
|
||||
"statusMessage": "Checking FESA edit context"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"PostToolUse": [
|
||||
{
|
||||
"matcher": "apply_patch",
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "python \"$(git rev-parse --show-toplevel)/.codex/hooks/post_tool_use_policy.py\"",
|
||||
"statusMessage": "Checking FESA post-edit reminders"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"matcher": "Edit",
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "python \"$(git rev-parse --show-toplevel)/.codex/hooks/post_tool_use_policy.py\"",
|
||||
"statusMessage": "Checking FESA post-edit reminders"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"matcher": "Write",
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "python \"$(git rev-parse --show-toplevel)/.codex/hooks/post_tool_use_policy.py\"",
|
||||
"statusMessage": "Checking FESA post-edit reminders"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"Stop": [
|
||||
{
|
||||
"hooks": [
|
||||
{
|
||||
"type": "command",
|
||||
"command": "python \"$(git rev-parse --show-toplevel)/.codex/hooks/stop_continue.py\"",
|
||||
"statusMessage": "Running Harness validation",
|
||||
"timeout": 300
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,70 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Add validation reminders after Codex edits project coordination files."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import re
|
||||
import sys
|
||||
|
||||
|
||||
FORMAT_PATTERNS = (
|
||||
r"\.codex[\\/]agents[\\/].+\.toml\b",
|
||||
r"\.codex[\\/]config\.toml\b",
|
||||
r"\.codex[\\/]hooks\.json\b",
|
||||
r"\.codex[\\/]skills[\\/].+[\\/]SKILL\.md\b",
|
||||
r"\.codex[\\/]commands[\\/].+\.md\b",
|
||||
r"plugins[\\/].+[\\/]\.codex-plugin[\\/]plugin\.json\b",
|
||||
r"plugins[\\/].+[\\/]commands[\\/].+\.md\b",
|
||||
r"\.agents[\\/]plugins[\\/]marketplace\.json\b",
|
||||
)
|
||||
|
||||
SYNC_PATTERNS = (
|
||||
r"\bdocs[\\/]",
|
||||
r"\bphases[\\/]",
|
||||
r"\bPLAN\.md\b",
|
||||
r"\bPROGRESS\.md\b",
|
||||
r"\bAGENTS\.md\b",
|
||||
r"\bplugins[\\/]",
|
||||
r"\.agents[\\/]plugins[\\/]",
|
||||
)
|
||||
|
||||
|
||||
def matches(tool_input: object, patterns: tuple[str, ...]) -> bool:
|
||||
text = json.dumps(tool_input, ensure_ascii=False)
|
||||
return any(re.search(pattern, text, re.IGNORECASE) for pattern in patterns)
|
||||
|
||||
|
||||
def main() -> int:
|
||||
try:
|
||||
payload = json.load(sys.stdin)
|
||||
except json.JSONDecodeError:
|
||||
return 0
|
||||
|
||||
tool_input = payload.get("tool_input", {})
|
||||
notes: list[str] = []
|
||||
|
||||
if matches(tool_input, FORMAT_PATTERNS):
|
||||
notes.append("parse changed .codex TOML/JSON/frontmatter files before finishing")
|
||||
|
||||
if matches(tool_input, SYNC_PATTERNS):
|
||||
notes.append("confirm PLAN.md and PROGRESS.md still reflect completed work and future work")
|
||||
|
||||
if not notes:
|
||||
return 0
|
||||
|
||||
notes.append("run python scripts/validate_workspace.py for changed repository state")
|
||||
json.dump(
|
||||
{
|
||||
"hookSpecificOutput": {
|
||||
"hookEventName": "PostToolUse",
|
||||
"additionalContext": "FESA post-edit reminder: " + "; ".join(notes) + ".",
|
||||
}
|
||||
},
|
||||
sys.stdout,
|
||||
)
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
@@ -1,58 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Add FESA context before repository files are edited."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import re
|
||||
import sys
|
||||
|
||||
|
||||
WATCHED_PATTERNS = (
|
||||
r"\bAGENTS\.md\b",
|
||||
r"\bPLAN\.md\b",
|
||||
r"\bPROGRESS\.md\b",
|
||||
r"\bdocs[\\/]",
|
||||
r"\bphases[\\/]",
|
||||
r"\.codex[\\/]agents[\\/]",
|
||||
r"\.codex[\\/]commands[\\/]",
|
||||
r"\.codex[\\/]skills[\\/]",
|
||||
r"\.codex[\\/]hooks",
|
||||
r"\.codex[\\/]config\.toml\b",
|
||||
r"\bplugins[\\/]",
|
||||
r"\.agents[\\/]plugins[\\/]",
|
||||
)
|
||||
|
||||
|
||||
def has_watched_path(tool_input: object) -> bool:
|
||||
text = json.dumps(tool_input, ensure_ascii=False)
|
||||
return any(re.search(pattern, text, re.IGNORECASE) for pattern in WATCHED_PATTERNS)
|
||||
|
||||
|
||||
def main() -> int:
|
||||
try:
|
||||
payload = json.load(sys.stdin)
|
||||
except json.JSONDecodeError:
|
||||
return 0
|
||||
|
||||
if not has_watched_path(payload.get("tool_input", {})):
|
||||
return 0
|
||||
|
||||
json.dump(
|
||||
{
|
||||
"hookSpecificOutput": {
|
||||
"hookEventName": "PreToolUse",
|
||||
"additionalContext": (
|
||||
"FESA edit guardrail: after editing docs, phases, or .codex extension files, "
|
||||
"keep PLAN.md/PROGRESS.md synchronized and run python scripts/validate_workspace.py "
|
||||
"when the turn changes files."
|
||||
),
|
||||
}
|
||||
},
|
||||
sys.stdout,
|
||||
)
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
@@ -1,53 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Block obviously destructive shell commands before Codex runs them."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import re
|
||||
import sys
|
||||
|
||||
|
||||
BLOCK_PATTERNS = (
|
||||
r"\brm\s+-rf\b",
|
||||
r"\brm\s+.*-[a-zA-Z]*r[a-zA-Z]*f\b",
|
||||
r"\brm\s+.*-[a-zA-Z]*f[a-zA-Z]*r\b",
|
||||
r"\bgit\s+push\s+--force(?:-with-lease)?\b",
|
||||
r"\bgit\s+reset\s+--hard\b",
|
||||
r"\bgit\s+clean\s+-[a-zA-Z]*f[a-zA-Z]*d\b",
|
||||
r"\bDROP\s+TABLE\b",
|
||||
r"\btruncate\s+table\b",
|
||||
r"\bRemove-Item\b.*\b-Recurse\b",
|
||||
r"\bRemove-Item\b.*\b-Force\b.*\b-Recurse\b",
|
||||
r"\bdel\b\s+/s\b",
|
||||
r"\brd\b\s+/s\b",
|
||||
r"\brmdir\b\s+/s\b",
|
||||
)
|
||||
|
||||
|
||||
def main() -> int:
|
||||
try:
|
||||
payload = json.load(sys.stdin)
|
||||
except json.JSONDecodeError:
|
||||
return 0
|
||||
|
||||
command = payload.get("tool_input", {}).get("command", "")
|
||||
for pattern in BLOCK_PATTERNS:
|
||||
if re.search(pattern, command, re.IGNORECASE):
|
||||
json.dump(
|
||||
{
|
||||
"hookSpecificOutput": {
|
||||
"hookEventName": "PreToolUse",
|
||||
"permissionDecision": "deny",
|
||||
"permissionDecisionReason": "Harness guardrail blocked a risky shell command.",
|
||||
}
|
||||
},
|
||||
sys.stdout,
|
||||
)
|
||||
return 0
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
@@ -1,85 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Provide FESA handoff context at Codex session startup/resume."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
MAX_SECTION_CHARS = 700
|
||||
|
||||
|
||||
def find_repo_root(start: Path) -> Path:
|
||||
for candidate in (start, *start.parents):
|
||||
if (candidate / "AGENTS.md").exists() and (candidate / "PLAN.md").exists():
|
||||
return candidate
|
||||
return start
|
||||
|
||||
|
||||
def read_text(path: Path) -> str:
|
||||
try:
|
||||
return path.read_text(encoding="utf-8")
|
||||
except OSError:
|
||||
return ""
|
||||
|
||||
|
||||
def section(markdown: str, heading: str) -> str:
|
||||
marker = f"## {heading}"
|
||||
start = markdown.find(marker)
|
||||
if start < 0:
|
||||
return ""
|
||||
start = markdown.find("\n", start)
|
||||
if start < 0:
|
||||
return ""
|
||||
end = markdown.find("\n## ", start + 1)
|
||||
body = markdown[start:end if end >= 0 else len(markdown)].strip()
|
||||
body = " ".join(line.strip() for line in body.splitlines() if line.strip())
|
||||
if len(body) > MAX_SECTION_CHARS:
|
||||
body = body[:MAX_SECTION_CHARS].rstrip() + "..."
|
||||
return body
|
||||
|
||||
|
||||
def main() -> int:
|
||||
try:
|
||||
payload = json.load(sys.stdin)
|
||||
except json.JSONDecodeError:
|
||||
payload = {}
|
||||
|
||||
root = find_repo_root(Path(payload.get("cwd") or ".").resolve())
|
||||
plan = read_text(root / "PLAN.md")
|
||||
progress = read_text(root / "PROGRESS.md")
|
||||
|
||||
context_lines = [
|
||||
"FESA session startup context:",
|
||||
"- Before planning or editing, read AGENTS.md, PROGRESS.md, PLAN.md, and docs/README.md.",
|
||||
"- Keep completed work in PROGRESS.md and future tasks/open decisions in PLAN.md.",
|
||||
]
|
||||
|
||||
current_objective = section(plan, "Current Objective")
|
||||
if current_objective:
|
||||
context_lines.append(f"- Current objective: {current_objective}")
|
||||
|
||||
current_status = section(progress, "Current Status")
|
||||
if current_status:
|
||||
context_lines.append(f"- Current status: {current_status}")
|
||||
|
||||
blockers = section(progress, "Known Blockers") or section(plan, "Open Questions")
|
||||
if blockers:
|
||||
context_lines.append(f"- Blockers/open questions: {blockers}")
|
||||
|
||||
json.dump(
|
||||
{
|
||||
"hookSpecificOutput": {
|
||||
"hookEventName": "SessionStart",
|
||||
"additionalContext": "\n".join(context_lines),
|
||||
}
|
||||
},
|
||||
sys.stdout,
|
||||
)
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
@@ -1,55 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Run repository validation when a Codex turn stops and request one more pass if it fails."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import subprocess
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def main() -> int:
|
||||
try:
|
||||
payload = json.load(sys.stdin)
|
||||
except json.JSONDecodeError:
|
||||
return 0
|
||||
|
||||
if payload.get("stop_hook_active"):
|
||||
return 0
|
||||
|
||||
root = Path(payload.get("cwd") or ".").resolve()
|
||||
validator = root / "scripts" / "validate_workspace.py"
|
||||
if not validator.exists():
|
||||
return 0
|
||||
|
||||
result = subprocess.run(
|
||||
[sys.executable, str(validator)],
|
||||
cwd=root,
|
||||
capture_output=True,
|
||||
text=True,
|
||||
timeout=240,
|
||||
)
|
||||
|
||||
if result.returncode == 0:
|
||||
return 0
|
||||
|
||||
summary = (result.stdout or result.stderr or "workspace validation failed").strip()
|
||||
if len(summary) > 1200:
|
||||
summary = summary[:1200].rstrip() + "..."
|
||||
|
||||
json.dump(
|
||||
{
|
||||
"decision": "block",
|
||||
"reason": (
|
||||
"Validation failed. Review the output, fix the repo, then continue.\n\n"
|
||||
f"{summary}"
|
||||
),
|
||||
},
|
||||
sys.stdout,
|
||||
)
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
@@ -1,31 +0,0 @@
|
||||
---
|
||||
name: fesa-abaqus-subset
|
||||
description: Design or review Abaqus input parsing against the documented FESA Phase 1 keyword subset.
|
||||
---
|
||||
|
||||
# FESA Abaqus Subset
|
||||
|
||||
Use this skill when parser scope, input compatibility, Nset/Elset handling, or unsupported keyword behavior is involved.
|
||||
|
||||
## Read First
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/PROGRESS.md`
|
||||
- `/PLAN.md`
|
||||
- `/docs/ABAQUS_INPUT_SUBSET.md`
|
||||
- `/docs/NUMERICAL_CONVENTIONS.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/VERIFICATION_PLAN.md`
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Map each requested keyword to the documented Phase 1 subset.
|
||||
2. Check `*Nset` and `*Elset` semantics, ordering, generated sets, and use by boundary/load/result requests.
|
||||
3. Keep Abaqus keyword parsing separated from internal object creation through Factory + Registry.
|
||||
4. Require explicit diagnostics for unsupported keywords instead of silent partial parsing.
|
||||
5. Record parser-scope changes in ADRs or subset docs when they affect project policy.
|
||||
|
||||
## Do Not
|
||||
|
||||
- Do not silently expand support beyond the documented subset.
|
||||
- Do not store parser-only details in solver core objects unless the architecture document requires it.
|
||||
@@ -1,30 +0,0 @@
|
||||
---
|
||||
name: fesa-adr-update
|
||||
description: Draft or revise FESA ADRs when architecture, numerical conventions, dependencies, result schema, or phase scope decisions change.
|
||||
---
|
||||
|
||||
# FESA ADR Update
|
||||
|
||||
Use this skill when a design decision should become durable project policy.
|
||||
|
||||
## Read First
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/PROGRESS.md`
|
||||
- `/PLAN.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- The topic-specific design document.
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Identify whether the change is a new decision, a clarification, or a superseding decision.
|
||||
2. Capture context, decision, consequences, alternatives considered, and validation impact.
|
||||
3. Update related docs only when needed to avoid drift.
|
||||
4. Add follow-up tasks to `PLAN.md`.
|
||||
5. Record completed ADR work in `PROGRESS.md`.
|
||||
|
||||
## Decision Quality Bar
|
||||
|
||||
- Decisions should preserve runtime polymorphism, documented state ownership, DofManager ownership, adapter boundaries, step/frame/history outputs, and reference-driven verification.
|
||||
- If a decision weakens those policies, document why and what test or reference coverage will protect it.
|
||||
@@ -1,36 +0,0 @@
|
||||
---
|
||||
name: fesa-cpp-tdd
|
||||
description: Implement or review FESA C++ changes using tests first, documented architecture boundaries, and project validation.
|
||||
---
|
||||
|
||||
# FESA C++ TDD
|
||||
|
||||
Use this skill when writing or reviewing C++ solver code, build files, tests, or validation scripts.
|
||||
|
||||
## Read First
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/PROGRESS.md`
|
||||
- `/PLAN.md`
|
||||
- `/docs/README.md`
|
||||
- `/docs/HARNESS_ENGINEERING.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/NUMERICAL_CONVENTIONS.md`
|
||||
- The topic-specific design document for the code being changed.
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Confirm that readiness blockers do not prohibit the requested implementation.
|
||||
2. Confirm that a sprint contract exists for solver behavior, parser, result schema, reference comparator, MITC4, or phase execution work.
|
||||
3. Write or update tests before implementation.
|
||||
4. Keep changes scoped to the requested layer and contract allowed files.
|
||||
5. Preserve runtime polymorphism, DofManager ownership, adapter boundaries, and int64/double numerical defaults.
|
||||
6. Run focused tests plus `python scripts/validate_workspace.py`.
|
||||
7. Update `PROGRESS.md` and `PLAN.md` when status or future work changes.
|
||||
|
||||
## Do Not
|
||||
|
||||
- Do not start solver implementation from this skill when the user asked for planning or documentation only.
|
||||
- Do not start implementation without a testable sprint contract for nontrivial solver work.
|
||||
- Do not bypass tests for parser, DOF mapping, reactions, singular diagnostics, sparse assembly, result writing, or MITC4 behavior.
|
||||
@@ -1,34 +0,0 @@
|
||||
---
|
||||
name: fesa-doc-sync
|
||||
description: Keep FESA documentation, PLAN.md, and PROGRESS.md synchronized after design, planning, or Codex extension changes.
|
||||
---
|
||||
|
||||
# FESA Doc Sync
|
||||
|
||||
Use this skill whenever documentation, `.codex` extension files, phase files, or planning state changes.
|
||||
|
||||
## Read First
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/PROGRESS.md`
|
||||
- `/PLAN.md`
|
||||
- `/docs/README.md`
|
||||
- Any changed docs, phase files, or `.codex` files.
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Put completed work, changed files, verification, and residual risks in `PROGRESS.md`.
|
||||
2. Put future tasks, open decisions, and changed ownership in `PLAN.md`.
|
||||
3. Keep historical notes out of `PLAN.md`.
|
||||
4. Keep future task lists out of `PROGRESS.md`.
|
||||
5. Check whether documentation indexes or agent instructions need updates.
|
||||
|
||||
## Verification
|
||||
|
||||
- Parse changed TOML, JSON, or YAML-like frontmatter when practical.
|
||||
- Run `python scripts/validate_workspace.py` after edits.
|
||||
|
||||
## Output
|
||||
|
||||
- Summarize only the meaningful sync changes.
|
||||
- Call out any stale or contradictory state that remains.
|
||||
@@ -1,32 +0,0 @@
|
||||
---
|
||||
name: fesa-mitc4-formulation
|
||||
description: Work on or review MITC4 formulation details, benchmarks, or implementation notes using the documented baseline rather than memory.
|
||||
---
|
||||
|
||||
# FESA MITC4 Formulation
|
||||
|
||||
Use this skill for MITC4 element math, implementation review, benchmark interpretation, or formulation documentation.
|
||||
|
||||
## Read First
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/PROGRESS.md`
|
||||
- `/PLAN.md`
|
||||
- `/docs/MITC4_FORMULATION.md`
|
||||
- `/docs/NUMERICAL_CONVENTIONS.md`
|
||||
- `/docs/VERIFICATION_PLAN.md`
|
||||
- `/docs/RESULTS_SCHEMA.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Identify whether the work concerns basis construction, kinematics, transverse shear tying, drilling stiffness, integration, stress/resultant recovery, or benchmarks.
|
||||
2. Check whether the relevant formula or convention is explicitly defined in `/docs/MITC4_FORMULATION.md`.
|
||||
3. If it is not defined, treat it as a blocker or documentation task.
|
||||
4. Keep Phase 1 focused on baseline formulation and reference benchmark passing.
|
||||
|
||||
## Do Not
|
||||
|
||||
- Do not infer missing tying-point equations from memory.
|
||||
- Do not introduce S4R or reduced-integration behavior into Phase 1.
|
||||
- Do not optimize before the baseline passes documented reference benchmarks.
|
||||
@@ -1,40 +0,0 @@
|
||||
---
|
||||
name: fesa-phase-planning
|
||||
description: Create or review FESA Harness phase plans and self-contained step files after readiness blockers are understood.
|
||||
---
|
||||
|
||||
# FESA Phase Planning
|
||||
|
||||
Use this skill when drafting or reviewing `phases/` work plans for FESA.
|
||||
|
||||
## Read First
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/PROGRESS.md`
|
||||
- `/PLAN.md`
|
||||
- `/docs/README.md`
|
||||
- `/docs/HARNESS_ENGINEERING.md`
|
||||
- `/docs/PRD.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/NUMERICAL_CONVENTIONS.md`
|
||||
- `/docs/ABAQUS_INPUT_SUBSET.md`
|
||||
- `/docs/VERIFICATION_PLAN.md`
|
||||
- `/docs/RESULTS_SCHEMA.md`
|
||||
- `/docs/MITC4_FORMULATION.md`
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Run the readiness check first.
|
||||
2. Use the repo `harness-workflow` skill when generating phase files.
|
||||
3. Keep each step scoped to one layer or module where possible.
|
||||
4. Make each `stepN.md` executable in a fresh Codex session.
|
||||
5. Include a sprint contract section following `/docs/HARNESS_ENGINEERING.md`.
|
||||
6. Include acceptance commands and explicit prohibitions.
|
||||
7. Do not hide unresolved reference, build, or MITC4 decisions inside implementation tasks.
|
||||
|
||||
## Phase Shape
|
||||
|
||||
- Start with project skeleton, build/test harness, and core types only after readiness blockers are accepted.
|
||||
- Preserve the documented sequence: Domain, parser, diagnostics, DofManager, math adapters, results, reference comparator, MITC4, assembly, linear static path.
|
||||
- For implementation phases, plan the Planner -> Generator -> Evaluator loop explicitly enough that an independent evaluator can pass/fail each step.
|
||||
@@ -1,41 +0,0 @@
|
||||
---
|
||||
name: fesa-readiness
|
||||
description: Check FESA Phase 1 readiness before implementation planning or coding, especially reference artifacts, MITC4 open decisions, result outputs, and build-system blockers.
|
||||
---
|
||||
|
||||
# FESA Readiness
|
||||
|
||||
Use this skill before drafting implementation phases, starting solver code, or deciding whether Phase 1 can proceed.
|
||||
|
||||
## Read First
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/PROGRESS.md`
|
||||
- `/PLAN.md`
|
||||
- `/docs/README.md`
|
||||
- `/docs/VERIFICATION_PLAN.md`
|
||||
- `/docs/RESULTS_SCHEMA.md`
|
||||
- `/docs/MITC4_FORMULATION.md`
|
||||
- `/docs/NUMERICAL_CONVENTIONS.md`
|
||||
- `/docs/ABAQUS_INPUT_SUBSET.md`
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Compare `/PLAN.md` Phase 1 readiness tasks with the Implementation Readiness Checklist in `/docs/README.md`.
|
||||
2. Classify each item as ready, blocked, explicitly deferred, or unknown.
|
||||
3. Confirm that reference artifacts under `references/` do not require local Abaqus execution.
|
||||
4. Confirm that at least one `*_displacements.csv` can drive automated `U` comparison, and flag missing `RF` artifacts if reaction verification depends on Abaqus output.
|
||||
5. Confirm that MITC4 baseline formulation decisions are not being filled from memory.
|
||||
6. Identify the smallest next decision or artifact needed.
|
||||
|
||||
## Output
|
||||
|
||||
- Lead with the readiness verdict: ready, blocked, or partial.
|
||||
- Include blockers and the exact files that should be updated.
|
||||
- If work is completed during the turn, update `PROGRESS.md`.
|
||||
- If future tasks change, update `PLAN.md`.
|
||||
|
||||
## Do Not
|
||||
|
||||
- Do not start implementation while unresolved readiness blockers remain unless the user explicitly accepts them as deferred.
|
||||
- Do not treat undocumented formulas or reference values as authoritative.
|
||||
@@ -1,41 +0,0 @@
|
||||
---
|
||||
name: fesa-reference-onboarding
|
||||
description: Onboard or review Abaqus reference artifacts for FESA verification without running Abaqus locally.
|
||||
---
|
||||
|
||||
# FESA Reference Onboarding
|
||||
|
||||
Use this skill when the user adds, asks about, or wants to validate stored reference models and results.
|
||||
|
||||
## Read First
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/PROGRESS.md`
|
||||
- `/PLAN.md`
|
||||
- `/docs/VERIFICATION_PLAN.md`
|
||||
- `/docs/RESULTS_SCHEMA.md`
|
||||
- `/docs/ABAQUS_INPUT_SUBSET.md`
|
||||
- `/docs/NUMERICAL_CONVENTIONS.md`
|
||||
|
||||
## Artifact Checklist
|
||||
|
||||
- Abaqus `.inp` input file.
|
||||
- Solved reference values, initially Abaqus-exported `*_displacements.csv`.
|
||||
- Tolerance metadata by result field where needed.
|
||||
- Unit notes, because FESA does not enforce a unit system.
|
||||
- Abaqus version/provenance when available.
|
||||
- Step/frame/result field mapping that matches `/docs/RESULTS_SCHEMA.md`.
|
||||
- Unsupported keywords documented against `/docs/ABAQUS_INPUT_SUBSET.md`.
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Inspect `references/` when present.
|
||||
2. Verify that each artifact can be compared without hidden coordinate, sign, unit, or precision assumptions.
|
||||
3. For `*_displacements.csv`, verify required columns: `Node Label`, `U-U1`, `U-U2`, `U-U3`, `UR-UR1`, `UR-UR2`, `UR-UR3`.
|
||||
4. Check that `U` and `RF` expectations are clear; flag missing reaction artifacts and optional `S`, `E`, and `SF` ambiguity.
|
||||
5. Record completed artifact onboarding in `PROGRESS.md` and remaining artifact tasks in `PLAN.md`.
|
||||
|
||||
## Do Not
|
||||
|
||||
- Do not run Abaqus.
|
||||
- Do not alter numerical tolerances just to make comparisons pass.
|
||||
@@ -1,32 +0,0 @@
|
||||
---
|
||||
name: fesa-results-schema
|
||||
description: Design or review FESA HDF5 result outputs, step/frame/field/history layout, and reference comparison mapping.
|
||||
---
|
||||
|
||||
# FESA Results Schema
|
||||
|
||||
Use this skill when result storage, HDF5 groups, field/history outputs, or reference comparison paths are involved.
|
||||
|
||||
## Read First
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/PROGRESS.md`
|
||||
- `/PLAN.md`
|
||||
- `/docs/RESULTS_SCHEMA.md`
|
||||
- `/docs/VERIFICATION_PLAN.md`
|
||||
- `/docs/NUMERICAL_CONVENTIONS.md`
|
||||
- `/docs/MITC4_FORMULATION.md`
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Preserve the step/frame/field/history model.
|
||||
2. Check entity type, component order, coordinate system, precision, units metadata, and sign convention for each field.
|
||||
3. Distinguish full-vector results from reduced-vector solver internals.
|
||||
4. Ensure `U` and `RF` are clear for Phase 1; flag unresolved `S`, `E`, and `SF` decisions.
|
||||
5. When reference comparison is involved, map `references/*_displacements.csv` to HDF5 field output `U` using the documented Abaqus column names.
|
||||
6. Keep HDF5 API usage behind result writer/adapters.
|
||||
|
||||
## Output
|
||||
|
||||
- Provide docs-ready schema deltas or review findings.
|
||||
- Include reference comparison implications and tests needed.
|
||||
@@ -1,41 +0,0 @@
|
||||
---
|
||||
name: fesa-review
|
||||
description: Review FESA changes against repository guardrails, technical dossier docs, TDD expectations, and validation requirements.
|
||||
---
|
||||
|
||||
# FESA Review
|
||||
|
||||
Use this skill for repository-grounded review of docs, `.codex` extensions, phase plans, or implementation patches.
|
||||
|
||||
## Read First
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/PROGRESS.md`
|
||||
- `/PLAN.md`
|
||||
- `/docs/README.md`
|
||||
- `/docs/HARNESS_ENGINEERING.md`
|
||||
- `/docs/ARCHITECTURE.md`
|
||||
- `/docs/ADR.md`
|
||||
- `/docs/NUMERICAL_CONVENTIONS.md`
|
||||
- `/docs/ABAQUS_INPUT_SUBSET.md`
|
||||
- `/docs/VERIFICATION_PLAN.md`
|
||||
- `/docs/RESULTS_SCHEMA.md`
|
||||
- `/docs/MITC4_FORMULATION.md`
|
||||
- The changed files under review.
|
||||
|
||||
## Checklist
|
||||
|
||||
- Architecture and ADR compliance.
|
||||
- Numerical convention compliance.
|
||||
- Abaqus subset discipline.
|
||||
- Result schema compatibility.
|
||||
- MITC4 formulation traceability.
|
||||
- TDD or reference verification coverage.
|
||||
- Sprint contract compliance when implementation work is under review.
|
||||
- PLAN.md and PROGRESS.md synchronization.
|
||||
|
||||
## Output
|
||||
|
||||
- Lead with findings ordered by severity.
|
||||
- Include concrete file references and the risk behind each finding.
|
||||
- If no material issues exist, say so and list remaining evidence gaps.
|
||||
Reference in New Issue
Block a user