Dev Plan
FHIR/fhir-codegen
Builds and iterates on a detailed implementation plan in the role of a staff-level Engineering Lead, working from either a featurerequest.md (from dev-request) or a bugreport.md (from dev-report).
Creates a new GAIK software component as an installable Python package.
$ npx skills add GAIK-project/gaik-toolkit --skill build-software-component -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install GAIK-project/gaik-toolkit build-software-component --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/GAIK-project/gaik-toolkit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/build-software-component .claude/skills/build-software-component && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "build-software-component" agent skill from https://github.com/GAIK-project/gaik-toolkit/tree/main/.claude/skills/build-software-component into .claude/skills/build-software-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-software-component", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/GAIK-project/gaik-toolkit/tree/main/.claude/skills/build-software-componentType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add GAIK-project/gaik-toolkit --skill build-software-component -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install GAIK-project/gaik-toolkit build-software-component --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GAIK-project/gaik-toolkit.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/build-software-component .agents/skills/build-software-component && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "build-software-component" agent skill from https://github.com/GAIK-project/gaik-toolkit/tree/main/.claude/skills/build-software-component into .agents/skills/build-software-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-software-component", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add GAIK-project/gaik-toolkit --skill build-software-component -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install GAIK-project/gaik-toolkit build-software-component --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GAIK-project/gaik-toolkit.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/build-software-component .cursor/skills/build-software-component && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "build-software-component" agent skill from https://github.com/GAIK-project/gaik-toolkit/tree/main/.claude/skills/build-software-component into .cursor/skills/build-software-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-software-component", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/GAIK-project/gaik-toolkit.git --path .claude/skills/build-software-component--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add GAIK-project/gaik-toolkit --skill build-software-component -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install GAIK-project/gaik-toolkit build-software-component --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GAIK-project/gaik-toolkit.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/build-software-component .gemini/skills/build-software-component && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "build-software-component" agent skill from https://github.com/GAIK-project/gaik-toolkit/tree/main/.claude/skills/build-software-component into .gemini/skills/build-software-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-software-component", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install GAIK-project/gaik-toolkit build-software-componentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add GAIK-project/gaik-toolkit --skill build-software-component -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/GAIK-project/gaik-toolkit.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/build-software-component .github/skills/build-software-component && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "build-software-component" agent skill from https://github.com/GAIK-project/gaik-toolkit/tree/main/.claude/skills/build-software-component into .github/skills/build-software-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-software-component", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add GAIK-project/gaik-toolkit --skill build-software-component -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install GAIK-project/gaik-toolkit build-software-component --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/GAIK-project/gaik-toolkit.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/build-software-component .opencode/skills/build-software-component && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "build-software-component" agent skill from https://github.com/GAIK-project/gaik-toolkit/tree/main/.claude/skills/build-software-component into .opencode/skills/build-software-component/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-software-component", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
build-software-componentCreates a new GAIK software component as an installable Python package.
Build Software Component is an agent skill from GAIK-project/gaik-toolkit. Creates a new GAIK software component as an installable Python package. Accepts context from URLs, external codebases, or plain descriptions. Produces an implementation plan for user review, then executes the plan: creates component files, updates pyproject.toml, installs the package, and verifies with import smoke tests. For the full release-ready flow (more examples, docs, demo app integration, PyPI release tag) delegates to the gaik-add-examples skill instead of duplicating that workflow. Use when the user…
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/conventions.md`, `references/file-templates.md` and `references/verification.md`).
It sits in Agent Workflows, covering QA and bug reports and Planning. It works with Python and OpenAI. The repository describes itself as: Python toolkit providing reusable AI/ML utilities: schema extraction, structured outputs, and production-ready components. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e516ece. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pippythonuvgitFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
pypi.orgFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
OPENAI_API_KEYAZURE_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Build Software Component loads about 3k tokens when it runs, and up to ~8.3k if it reads all its reference files. Until then it costs about 170 tokens; SKILL.md has 1,313 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from GAIK-project/gaik-toolkit at commit e516ece, republished under its MIT licence (© GAIK-project). 1,313 words, ~2,951 tokens.
.claude/skills/build-software-component/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Use this skill when the user wants to add a new GAIK software component under
implementation_layer/src/gaik/software_components/. The user will provide context —
URLs of a library's docs, a path to an external codebase to wrap, a PyPI package name,
or a plain description of the functionality — and this skill turns that context into
a working, installable component that follows GAIK's existing conventions.
Invoke this skill when the user asks to:
<path> into a GAIK component"Do not use this skill for non-component work (demo app changes, docs website edits, bug fixes in existing components, etc.).
Follow these phases in order. Do not skip Phase 3.
Identify the context sources in the user's prompt and consume them:
WebFetch on each URL to extract API and usage info.WebFetch https://pypi.org/pypi/<name>/json for
metadata and latest version pin.Glob / Grep / Read to map structure, public
API, and dependencies.Before moving on, make sure you understand:
What the component does (one sentence).
What external library/APIs it wraps (if any).
What Python dependencies it needs, with versions when available.
Whether it is LLM-based and which config surface to use:
config dict from either get_openai_config() or
get_llm_config(provider) and builds its client with
build_compat_client(config), as the extractor, classifier and
FormUnderstander do. That keeps legacy OpenAI/Azure dicts on the raw SDK
client and serves every other provider (Aitta, openai_compatible, Google,
Anthropic, LiteLLM) through a ProviderClient.create_openai_client(config)
guarded by assert_openai_or_azure(config, component=...), like
TextToSpeech.Layout decision — top-level or nested?
extractor/, transcriber/, doc_classifier/. Use
for new independent capabilities.parsers/<name>/, RAG/<name>/, or transcriber/<name>/. Use when the new
component is a variant of an existing category (e.g. another PDF parser
belongs in parsers/, another vector store in RAG/). The shipped
parsers/multimodal_parser/ is the canonical nested example.The two layouts follow the same conventions for pyproject.toml extras and
shared config, but differ in which __init__.py gets edited — see the rules
in Phase 4 and in references/conventions.md.
Read references/conventions.md first to ground the plan in GAIK patterns.
Write a component plan to .claude/skills/build-software-component/last_plan.md
with these sections:
component_name (snake_case directory name),
MainClassName (PascalCase), one-line description.build_compat_client(config) (multi-provider),
create_openai_client(config) (OpenAI/Azure-only endpoint), or provider-agnostic.software_components/<name>/) or nested
(software_components/<category>/<name>/).pyproject.toml and either
software_components/__init__.py (top-level) or
software_components/<category>/__init__.py (nested).pip install "gaik[<extra>]".
Must be hyphenated, lowercase.last_plan.md, re-display the full plan,
re-ask. Loop until the user explicitly approves.Only after explicit approval. Read references/file-templates.md for the literal
file bodies to use. Execute in this order — if any step fails, stop and report
the error to the user before continuing:
Let <dir> be:
implementation_layer/src/gaik/software_components/<component_name>/ for top-levelimplementation_layer/src/gaik/software_components/<category>/<component_name>/ for nested<dir> directory.<component_name>.py — the main class file. Use the template from
file-templates.md.__init__.py — module docstring, re-exports, __all__,
__version__ = "0.1.0".README.md — description, install command, quick-start example.pyproject.toml — add a new entry under [project.optional-dependencies]
named <extra-name>. If the component belongs in all / all-cpu composite
groups, add it there too.__init__.py:software_components/__init__.py — append the
component_name string to __all__.software_components/<category>/__init__.py — add a
try/except ImportError: pass guard that imports and __all__.extend(...)
the public classes (see parsers/__init__.py:81-87 for the canonical
pattern). Do not touch the top-level software_components/__init__.py.implementation_layer/examples/software_components/<component_name>/<component_name>_example.py
(top-level) or
implementation_layer/examples/software_components/<category>/demo_<component_name>.py
(nested — mirrors how existing parser demos are organized) using the example
template.Read references/verification.md for exact commands. Steps:
pip install -e ".[<extra-name>]" from the repo root.python -c "from gaik.software_components.<component_name> import <MainClassName>; print('OK')"python -c "from gaik.software_components.<category> import <MainClassName>; print('OK')"
(nested components are re-exported from the category's __init__.py).After Phase 5, ask the user: "Continue with the full release flow (more examples → docs → demo app → PyPI tag), or stop here?" Default: stop for quick prototypes; continue when the component is a user-facing capability worth shipping.
If the user continues, delegate to the gaik-add-examples skill Step 6
— it is the canonical publish flow and owns the gated 6a–6d prompts for:
guidance_layer/docs/)guidance_layer/website/content/docs/)toolkit_demo_app/api/routers/ + UI)Phase 4 step 7 of this skill already created one initial example, so
gaik-add-examples is typically invoked for additional examples (a
pipeline-level example, a second variant, or an enriched README walkthrough).
Do not duplicate 6a–6d logic here — read from gaik-add-examples/SKILL.md
so the publish flow stays in one place.
Before tagging (this is the build-side addition to the checklist in
gaik-add-examples — verify the component shape first):
__init__.py exports under the component's directory.README.md written.pyproject.toml optional extra added (and named consistently).__init__.py (top-level or category) updated to list the
component.uv run pytest).Never skip Phase 3. Always present the plan and wait for approval.
Scope of edits during Phases 1–5 (source creation): only create/edit files inside
implementation_layer/examples/software_components/... directory,pyproject.toml, and__init__.py: either software_components/__init__.py
(top-level) or software_components/<category>/__init__.py (nested) — never
both.Never touch the demo app, docs website, or other components during source creation. Phase 6 is the only phase where those edits are allowed, and only after the user has explicitly opted in.
Shared config: for any component that calls an LLM, build the client from
the caller's config with build_compat_client (from
gaik.software_components.llm), or with create_openai_client (from
gaik.software_components.config) plus assert_openai_or_azure for an
OpenAI/Azure-only endpoint. Do not hand the caller's dict straight to
create_llm_client: it resolves a bare legacy {"api_key": ...} dict through
LLM_PROVIDER (default Azure), where that dict has always meant standard
OpenAI. Never call
load_dotenv() inside the component and never read OPENAI_API_KEY /
AZURE_API_KEY directly.
Never commit during Phases 1–5. Leave source changes uncommitted so the
user can review with git diff. Phase 6d is the only place that commits or
pushes, and only after the user approves the PyPI release step.
No unit tests unless the user's context explicitly demands them. The example file is the proof-of-life artifact.
references/conventions.md — GAIK component directory layout, __init__.py
pattern, constructor pattern, result dataclass pattern, extras naming.references/file-templates.md — literal templates for every file to create
plus the exact edits to pyproject.toml and the parent __init__.py.references/verification.md — install command, smoke test, common failure
modes and fixes.© GAIK-project, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in .claude/skills/build-software-component of GAIK-project/gaik-toolkit.
Open the folder on GitHubat commit e516ece
Build Software Component next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Build Software Component this skillGAIK-project/gaik-toolkit | 100 | — | ~3k | Automated safety check: Pass | MIT | |
| Dev PlanFHIR/fhir-codegen | 154 | — | ~6.1k | Automated safety check: Pass | MIT | |
| Install and Run Cogneetopoteretes/cognee | 32k | 1 repos | ~1k | Automated safety check: Notes | Apache-2.0 | |
| LLM Councilgcpdev/llm-council-skill | 461 | 1 repos | ~1k | Automated safety check: Notes | MIT | |
| Codex with ChatGPT Planning LoopXiaoDuoYa/codex-with-chatgpt | 7.1k | — | ~11k | Automated safety check: Notes | MIT | |
| Plan Previewu-ichi/reviewable-html-workbench | 298 | 1 repos | ~1.8k | Automated safety check: Pass | MIT |
FHIR/fhir-codegen
Builds and iterates on a detailed implementation plan in the role of a staff-level Engineering Lead, working from either a featurerequest.md (from dev-request) or a bugreport.md (from dev-report).
topoteretes/cognee
Installs the cognee AI memory library in a Python environment, sets the LLM key and gets a first remember and recall script running with the Python SDK.
gcpdev/llm-council-skill
Multi-LLM collaborative brainstorming and planning. An agent skill from gcpdev/llm-council-skill.
XiaoDuoYa/codex-with-chatgpt
Uses ChatGPT in the browser as the planning and review brain for a Codex session, with Codex keeping all execution and ChatGPT reading the workspace through a bridge.
u-ichi/reviewable-html-workbench
Plan Mode の <proposedplan を出す直前に、計画の段階・依存関係・検証観点を一時HTMLで視覚確認したい時に使う agent-internal skill。Use this agent-internal skill to create a temporary HTML preview for a plan just before presenting…
MagicCube/helixent
Enter "plan mode" for a deep-research or article-writing task — search the web, fetch sources, optionally run experiments in Python/Node, design one recommended outline and research strategy, then…
GAIK-project/gaik-toolkit
Builds a visual, editable PowerPoint (.pptx) deck with speaker-ready notes, exact timing, citations and a layout-checked design from a topic, an audience and a length, using only the user's own…
GAIK-project/gaik-toolkit
GAIK toolkit overview and reference. An agent skill from GAIK-project/gaik-toolkit.
GAIK-project/gaik-toolkit
Extracts structured data — fields, tables, line items — out of documents into a validated schema using the gaik toolkit, and designs schemas that stay inside provider limits and produce checkable…
GAIK-project/gaik-toolkit
Converts PDFs, scans, and Word documents into text or markdown with the gaik toolkit's parsers, choosing the parser that will not silently destroy the structure the downstream task depends on.
GAIK-project/gaik-toolkit
Builds and debugs retrieval with the gaik toolkit — PgVectorStore, Ranker, FinnishTextProcessor, RelevanceGate — as hybrid search: pgvector similarity plus Postgres full-text, fused by rank, and the…
GAIK-project/gaik-toolkit
Extracts structured data from Finnish construction site daily diary audio recordings (Työmaapäiväkirja) and creates a formatted Word document with extracted fields.
Categories
Creates a new GAIK software component as an installable Python package. Build Software Component is an agent skill from GAIK-project/gaik-toolkit. Creates a new GAIK software component as an installable Python package.
Build Software Component fits situations like: the user asks to create; add a new GAIK software component; turn a codebase; API into a reusable installable package.
Run `npx skills add GAIK-project/gaik-toolkit --skill build-software-component -a claude-code`. Or copy the skill folder (.claude/skills/build-software-component in GAIK-project/gaik-toolkit) into .claude/skills/build-software-component in your project. Claude Code loads it when a task matches its description.
Run `npx skills add GAIK-project/gaik-toolkit --skill build-software-component -a codex`. Or copy the skill folder (.claude/skills/build-software-component in GAIK-project/gaik-toolkit) into .agents/skills/build-software-component in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add GAIK-project/gaik-toolkit --skill build-software-component -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/build-software-component, .gemini/skills/build-software-component, .github/skills/build-software-component and .opencode/skills/build-software-component in your project.
Going by SKILL.md and its folder, Build Software Component needs the command-line tools its instructions call (pip, python, uv and git) and credentials named OPENAI_API_KEY and AZURE_API_KEY. Our summary lists: Python 3; A credential in OPENAI_API_KEY; A credential in AZURE_API_KEY.
SKILL.md names 1 domain. In commands or code: pypi.org; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Build Software Component is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Build Software Component: Dev Plan (FHIR/fhir-codegen, 154 stars), Install and Run Cognee (topoteretes/cognee, 32k stars), LLM Council (gcpdev/llm-council-skill, 461 stars) and Codex with ChatGPT Planning Loop (XiaoDuoYa/codex-with-chatgpt, 7.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
GAIK-project (a GitHub organization) maintains it in GAIK-project/gaik-toolkit, which has 100 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 7, 2026.
Source: GAIK-project/gaik-toolkit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.