| name | gf-project |
| description | Manages .gateflow/project.yaml for project-specific configuration. Auto-detects project settings or prompts user for board, HDL, and target. Used internally by other skills — not typically invoked directly.
|
| user-invocable | false |
GF Project — Project Context Management
Project File Location
.gateflow/project.yaml in the project root.
Schema
name: my-project
top_module: top
hdl: systemverilog
target:
board: null
device: null
clock_freq: null
sources: []
constraints: null
ip_blocks: []
Auto-Detection
When this skill is invoked, it:
- Checks if
.gateflow/project.yaml exists
- If not, creates it with defaults by scanning:
- HDL: check file extensions in project (
.sv = systemverilog, .v = verilog, .vhd = vhdl)
- Sources: glob for
**/*.sv, **/*.v, **/*.vhd
- Top module: find modules not instantiated by others
- If board is not set and user mentions a board, update it
Usage by Other Skills
Any skill that needs project context should:
cat .gateflow/project.yaml 2>/dev/null
If the file doesn't exist, invoke this skill to create it.
Board Memory
When a user mentions a board name in natural language (e.g., "I'm using an Arty A7"),
persist it to .gateflow/project.yaml under target.board. Do not ask again unless
the user switches boards or starts a new project.
Board memory is per-project, not global. Different projects target different boards.
GATEFLOW-RESULT Format
---GATEFLOW-RESULT---
STATUS: CREATED | UPDATED | VALID | INVALID | ERROR
PROJECT: <name>
FILE: .gateflow/project.yaml
BOARD: <board or null>
HDL: systemverilog | verilog | vhdl
TOP_MODULE: <module>
SOURCES: <count>
DETAILS: <summary>
---END-GATEFLOW-RESULT---
Extended Schema
simulation:
tool: verilator
timeout: 100000
trace_format: fst
defines: []
synthesis:
tool: yosys
target_family: null
optimization: area
verification:
formal_engine: sby
formal_depth: 50
coverage_goal: 90
lint_tool: verilator
Project Templates
iCE40 FPGA
name: my-project
top_module: top
hdl: systemverilog
target: {board: icebreaker, device: ice40up5k-sg48, clock_freq: 12MHz}
simulation: {tool: verilator, trace_format: fst}
synthesis: {tool: yosys, target_family: ice40, optimization: area}
Simulation Only
name: sim-project
top_module: top
hdl: systemverilog
target: {board: null}
simulation: {tool: verilator, timeout: 500000, trace_format: fst, defines: [SIMULATION, DEBUG]}
synthesis: {tool: null}
Health Check
| Check | Pass Condition |
|---|
| Schema valid | name, top_module, hdl exist |
| Sources exist | All listed files found |
| Top module found | grep for module <top> in sources |
| Constraints match target | .xdc for Xilinx, .pcf for iCE40, .lpf for ECP5, .cst for Gowin |
| Tools installed | which <sim_tool>, which <synth_tool> |