CCPM Project Management
automazeio/ccpm
Runs a spec-driven workflow from PRD to epic to GitHub issues to parallel agents, with status, standup and blocked-work reports from bundled scripts.
Synthesises the current conversation context into a Product Requirements Document and publishes it to GitHub (as a comment on a referenced issue, or a new issue).
$ npx skills add opsmill/infrahub --skill creating-prd -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install opsmill/infrahub creating-prd --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/opsmill/infrahub.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/creating-prd .claude/skills/creating-prd && 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 "creating-prd" agent skill from https://github.com/opsmill/infrahub/tree/stable/.agents/skills/creating-prd into .claude/skills/creating-prd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "creating-prd", 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/opsmill/infrahub/tree/stable/.agents/skills/creating-prdType 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 opsmill/infrahub --skill creating-prd -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install opsmill/infrahub creating-prd --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/opsmill/infrahub.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/creating-prd .agents/skills/creating-prd && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "creating-prd" agent skill from https://github.com/opsmill/infrahub/tree/stable/.agents/skills/creating-prd into .agents/skills/creating-prd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "creating-prd", 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 opsmill/infrahub --skill creating-prd -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install opsmill/infrahub creating-prd --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/opsmill/infrahub.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/creating-prd .cursor/skills/creating-prd && 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 "creating-prd" agent skill from https://github.com/opsmill/infrahub/tree/stable/.agents/skills/creating-prd into .cursor/skills/creating-prd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "creating-prd", 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/opsmill/infrahub.git --path .agents/skills/creating-prd--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 opsmill/infrahub --skill creating-prd -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install opsmill/infrahub creating-prd --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/opsmill/infrahub.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/creating-prd .gemini/skills/creating-prd && 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 "creating-prd" agent skill from https://github.com/opsmill/infrahub/tree/stable/.agents/skills/creating-prd into .gemini/skills/creating-prd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "creating-prd", 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 opsmill/infrahub creating-prdInstalls 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 opsmill/infrahub --skill creating-prd -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/opsmill/infrahub.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/creating-prd .github/skills/creating-prd && 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 "creating-prd" agent skill from https://github.com/opsmill/infrahub/tree/stable/.agents/skills/creating-prd into .github/skills/creating-prd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "creating-prd", 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 opsmill/infrahub --skill creating-prd -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install opsmill/infrahub creating-prd --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/opsmill/infrahub.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/creating-prd .opencode/skills/creating-prd && 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 "creating-prd" agent skill from https://github.com/opsmill/infrahub/tree/stable/.agents/skills/creating-prd into .opencode/skills/creating-prd/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "creating-prd", 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.
creating-prdSynthesises the current conversation context into a Product Requirements Document and publishes it to GitHub (as a comment on a referenced issue, or a new issue).
Creating Prd is an agent skill from opsmill/infrahub. Synthesises the current conversation context into a Product Requirements Document and publishes it to GitHub (as a comment on a referenced issue, or a new issue). Synthesises from context; does not interview. TRIGGER when: the conversation has produced enough understanding of a feature and the user wants it captured as a PRD. DO NOT TRIGGER when: a single small issue is enough → creating-issues; the idea has not been stress-tested yet → grilling-ideas first; bug reports.
Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Requires GitHub access (gh CLI authenticated, or an equivalent GitHub MCP/API tool) and write access to the target repository. Reads project context…
It sits in Product & Project Management, covering PRD writing. It works with GitHub. The repository describes itself as: Infrahub is a graph-based data management platform with built-in version control, CI workflows, peer review, and API access. It’s purpose-built to power reliable infrastructure… The licence is Apache-2.0.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 460d724. 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:
ghFrom 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:
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Requires GitHub access (gh CLI authenticated, or an equivalent GitHub MCP/API tool) and write access to the target repository. Reads project context (AGENTS.md, CONTEXT.md, dev/constitution.md, ADRs, specs) when present and falls back gracefully when absent.
From compatibility in the SKILL.md frontmatter.
Creating Prd loads about 4k tokens when it runs. Until then it costs about 122 tokens; SKILL.md has 1,546 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 opsmill/infrahub at commit 460d724, republished under its Apache-2.0 licence (© opsmill). 1,546 words, ~4,029 tokens.
.claude/skills/creating-prd/SKILL.md (or your agent's skills folder).$ARGUMENTSTreat $ARGUMENTS as optional scope hints or an explicit issue target. The PRD's content comes from the conversation context, not from arguments.
Take the current conversation context plus codebase understanding and produce a Product Requirements Document. Publish it to GitHub:
Always show the draft to the user and wait for explicit approval before publishing.
Do NOT interview the user. This skill synthesises what you already know. If the context is too thin to write a PRD, say so and recommend /grilling-ideas first.
/grilling-ideas session produced a sharpened idea brief and the user wants it turned into a PRD on the tracker.Do not use this skill for:
/creating-issues or the bug-pipeline skills./grilling-ideas first./speckit-specify). The PRD produced here is the input to that step.Before drafting, probe the repository for project-level context. Read whichever are present. None of them are required — the skill must work in a repo that has none of them. Skip a probe only if the answer is already in the conversation.
| Source | If present, use it for |
|---|---|
AGENTS.md / CLAUDE.md (root and per-component) | Working agreements, governance gates ("ask first" areas), naming conventions, which components the feature touches. |
CONTEXT.md | Project glossary — canonical names for domain concepts and synonyms to avoid. If present, use this vocabulary in the PRD and never introduce synonyms. |
dev/constitution.md (or .specify/memory/constitution.md) | Non-negotiable principles. The PRD must call out which ones the feature touches. |
dev/adr/ (or docs/adr/) | Prior decisions in the area the feature touches. Honour them; if the feature contradicts one, surface it as an open question rather than overriding silently. |
specs/ | In-flight or recent work on the same surface. Cross-reference relevant ones. |
.specify/templates/spec-template.md | The downstream spec template. If present, mirror its section structure so the spec workflow can lift sections wholesale. |
Existing repo labels (gh label list --limit 100) | The labels that actually exist, for triage. Run once. |
Probe with a quick ls/test -f pass rather than reading the whole tree. Read in full only what genuinely matters for this feature. If none of these exist, fall back to a plain PRD grounded in the conversation and whatever the codebase reveals.
Before drafting, decide where the PRD will land. Scan the conversation, starting from the very first user message, for any of:
https://github.com/<owner>/<repo>/issues/<N>.#<N> reference followed by language suggesting it is an issue (not a PR).Resolve the candidate:
gh issue view <N> --json number,title,state,url,labelsDecision tree:
Record the decision before drafting; do not switch targets mid-draft.
Before writing the PRD, list the modules you expect to build or modify. Actively look for opportunities to extract deep modules — units that encapsulate substantial functionality behind a small, stable, testable interface that rarely changes. Shallow modules (one-method wrappers, pass-throughs) are anti-patterns.
For each module note:
Present the module sketch to the user and confirm:
Wait for confirmation before drafting the PRD body. This is the only point where input is always required from the user (beyond final approval); Phase 1 also asks when the target issue is ambiguous.
Use the template below. Drop any section that does not apply to this project (e.g. "Constitution Alignment" when there is no constitution document) rather than padding it. Keep the prose tight — a clear three-line section beats a sprawling one.
Apply these rules while drafting:
CONTEXT.md exists, use its canonical names; otherwise infer the vocabulary from the codebase and stick to one term per concept. No "the thing that does X" when the project has a name for it..specify/templates/spec-template.md structure where it exists, so the downstream spec workflow can lift sections wholesale.# PRD: <short feature name>
## Problem Statement
<The problem the user faces, from the user's perspective. Two to four sentences. No solutions yet.>
## Solution Overview
<The proposed solution, from the user's perspective. What changes for them, in plain language. Not how it is built.>
## User Stories
<A long, numbered list. Format: "As a <role>, I want <capability>, so that <benefit>."
Cover every aspect of the feature including admin / failure / observability paths.
Use the actor vocabulary the project actually uses — infer the relevant roles from the
domain (e.g. developer, operator, admin, end-user) rather than inventing a generic cast.>
1. As a <role>, I want …, so that …
2. As a <role>, I want …, so that …
3. …
## User Journeys (prioritised)
<Each journey must be an independently shippable slice. Mirror the spec template's
priority structure if one exists.>
### P1 — <title>
- Journey: <one sentence end-to-end>
- Acceptance: **Given** <state>, **When** <action>, **Then** <outcome>
### P2 — <title> (optional)
…
### P3 — <title> (optional)
…
## Functional Requirements
- **FR-001**: System MUST …
- **FR-002**: Users MUST be able to …
- **FR-003**: …
## Key Entities
<Map each new or affected concept to an existing project entity, using CONTEXT.md
vocabulary when present. Flag genuinely new entities explicitly.>
- **<Existing entity>**: <how the feature affects it>
- **<NewEntity>** *(new)*: <lifecycle, ownership, relationships> — call out for governance review
## Edge Cases
- <Boundary / failure / concurrency / partial-state scenarios — at least three.>
## Success Criteria
- **SC-001**: <measurable, technology-agnostic outcome>
- **SC-002**: …
## Implementation Decisions
<Module-level decisions, schema shapes, API contracts, interaction patterns. NO file paths,
NO code unless a prototype encodes a decision more precisely than prose can. If inlining,
trim to the decision-rich parts only. Include only the sub-bullets relevant to this project's
architecture — drop the ones that don't apply.>
- Modules to build / modify (from Phase 2 sketch):
- `<Module name>` (`<layer/component>`, new|extends): <one-sentence responsibility>
- …
- API / interface surface: <new endpoints, fields, arguments, commands, or "none">
- Error handling: <new error types / codes the feature introduces, or "none">
- Data / persistence: <schema or migration changes, or "none">
- Frontend surface: <new routes, operations, or UI components, or "none">
- SDK / CLI surface: <new methods or commands, or "none">
## Testing Decisions
- **What makes a good test here.** <Test external behaviour, not implementation details. One or two sentences scoping the principle for this feature.>
- **Unit tests** (per Phase 2, agreed with user): <list of modules>
- **Integration / contract tests**: <list, or "N/A" — include any project-specific gate, e.g. API-to-DB propagation tests, only if the project requires it>
- **E2E scenario**: <one-sentence description of the user-visible flow that will be exercised end-to-end>
- **Prior art**: <links / paths to existing similar tests in the codebase, if any>
## Constitution Alignment
<Include this section only if the project has a constitution (dev/constitution.md or
.specify/memory/constitution.md). Walk the principles the feature touches and state how it
fits or where it pushes back. Drop the section entirely if there is no constitution.>
- **<Principle>**: <how this fits / where it pushes back>
- …
## Governance Gates Crossed
<Tick every gate this PRD crosses. If AGENTS.md names its own "ask first" list, use that list
instead of the generic one below. A ticked box requires explicit discussion before implementation.>
- [ ] Database schema or migration change
- [ ] API / public interface change
- [ ] New dependency
- [ ] CI/CD workflow change
- [ ] Authentication / authorization change
## Assumptions
- <Assumption about users, environment, data, or existing systems>
- …
## Out of Scope
- <Explicit non-goals for v1 — carve aggressively>
- …
## Open Questions
- [NEEDS CLARIFICATION: …]
<Cap at three. If more remain, the PRD is not ready — recommend /grilling-ideas before publishing.>
## Further Notes
- Related specs: <`specs/NNN-…` cross-references, if any>
- Related ADRs: <`dev/adr/…` cross-references, if any>
- Source of this PRD: <conversation summary in one or two sentences>Never publish without explicit user approval. Present the full draft inline, then ask:
If the draft has more than three [NEEDS CLARIFICATION] markers, do not offer to publish — recommend /grilling-ideas to resolve them first.
Write the approved draft to a temporary file (e.g. $(mktemp -t prd-draft.XXXXXX.md)) and publish from there.
gh issue comment <N> --body-file <draft-path>After posting, fetch the comment URL and report it. If the issue does not already carry an appropriate triage label, suggest one to the user but do not apply it automatically — commenting on someone else's issue should not re-triage it.
Pick the title and labels from project conventions surfaced earlier.
feat:, chore:, docs: …). Keep under 70 characters.gh label list). Typical candidates: a type label (enhancement / feature), a scope/component label, and a triage label if the project has a "ready-for-agent" or equivalent. Confirm — do not invent labels.gh issue create \
--title "<title>" \
--body-file <draft-path> \
--label "<label1>" --label "<label2>"Report the new issue URL.
After publishing, tell the user what to run next:
.specify/ is set up) → suggest feeding the PRD into it: /speckit-specify "$(gh issue view <N> --json body -q .body)", or paste the PRD body manually if the runtime cannot interpolate.The PRD's structure (User Journeys, FRs, Key Entities, Edge Cases, Success Criteria, Assumptions) maps directly onto a typical spec template, so the spec step should produce a strong first draft with minimal [NEEDS CLARIFICATION] markers.
/grilling-ideas.gh label list first.CONTEXT.md → infer vocabulary from the codebase. No GraphQL/driver/etc. → don't mention them. Skip gates the project doesn't have.A PRD published to GitHub at a known URL (comment on the referenced issue, or a new issue), with:
CONTEXT.md (when present).[NEEDS CLARIFICATION] markers.Inspired by to-prd by Matt Pocock. Adapted from a Styrmin-specific skill into a project-agnostic one for the opsmill-dev plugin; pairs with /grilling-ideas.
© opsmill, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/creating-prd of opsmill/infrahub.
Open the folder on GitHubat commit 460d724
Creating Prd 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 |
|---|---|---|---|---|---|---|
| Creating Prd this skillopsmill/infrahub | 531 | — | ~4k | Automated safety check: Pass | Apache-2.0 | |
| CCPM Project Managementautomazeio/ccpm | 8.4k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Ouroboros PM InterviewQ00/ouroboros | 6.2k | 1 repos | ~5.7k | Automated safety check: Pass | MIT | |
| To Issuessmallnest/pigo | 475 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Write A Prdbestofjs/bestofjs | 3.1k | 1 repos | ~722 | Automated safety check: Pass | MIT | |
| Write Update Tidb Docspingcap/docs | 616 | — | ~2.3k | Automated safety check: Pass | Custom licence |
automazeio/ccpm
Runs a spec-driven workflow from PRD to epic to GitHub issues to parallel agents, with status, standup and blocked-work reports from bundled scripts.
Q00/ouroboros
Runs a guided product-manager interview that classifies each question automatically and produces a Product Requirements Document.
smallnest/pigo
Decompose a PRD and/or SPEC into implementable Issues and create them in your chosen platform (GitHub, Local, or Baidu iCafe).
bestofjs/bestofjs
Create a PRD through user interview, codebase exploration, and module design, then submit as a GitHub issue.
pingcap/docs
Write new TiDB documentation or update existing TiDB documentation from code changes, PRs, issues, design docs, product specs, rough drafts, existing docs, or short feature descriptions.
bholmesdev/hubble.md
Write a PRODUCT.md spec for a significant Hubble user-facing feature, focused only on user experience and observable behavior.
opsmill/infrahub
Analyzes recent CI failures on pull requests to identify flaky tests, using retry outcomes (failed attempt → green re-run) and cross-PR recurrence as evidence, and maintains a local longitudinal…
opsmill/infrahub
Audits internal (dev/) and external (docs/) documentation completeness for a feature, subject, or set of existing docs, maps changes indicated by the user, across Infrahub's documentation layers…
opsmill/infrahub
Stages and commits the current changes onto a safe working branch, enforcing branch discipline and optionally pushing upstream.
opsmill/infrahub
A skill your agent uses when you've fixed a bug, added a feature, or made any user-facing change in a project that uses Towncrier and need to record it for the changelog — before committing or…
opsmill/infrahub
Turns a single feature idea, improvement, or bug into ONE well-structured GitHub issue.
opsmill/infrahub
Stress-tests a fuzzy or vague feature idea before any PRD, spec, or ticket is written.
Works with
Categories
Synthesises the current conversation context into a Product Requirements Document and publishes it to GitHub (as a comment on a referenced issue, or a new issue). Creating Prd is an agent skill from opsmill/infrahub. Synthesises the current conversation context into a Product Requirements Document and publishes it to GitHub (as a comment on a referenced issue, or a new issue).
Creating Prd fits situations like: : the conversation has produced enough understanding of a feature and the user wants it captured as a PRD; : a single small issue is enough → creating-issues; the idea has not been stress-tested yet → grilling-ideas first.
Run `npx skills add opsmill/infrahub --skill creating-prd -a claude-code`. Or copy the skill folder (.agents/skills/creating-prd in opsmill/infrahub) into .claude/skills/creating-prd in your project. Claude Code loads it when a task matches its description.
Run `npx skills add opsmill/infrahub --skill creating-prd -a codex`. Or copy the skill folder (.agents/skills/creating-prd in opsmill/infrahub) into .agents/skills/creating-prd 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 opsmill/infrahub --skill creating-prd -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/creating-prd, .gemini/skills/creating-prd, .github/skills/creating-prd and .opencode/skills/creating-prd in your project.
Going by SKILL.md and its folder, Creating Prd needs the command-line tools its instructions call (gh). Compatibility (from SKILL.md): Requires GitHub access (gh CLI authenticated, or an equivalent GitHub MCP/API tool) and write access to the target repository. Reads project context (AGENTS.md, CONTEXT.md, dev/constitution.md, ADRs, specs) when present and falls back gracefully when absent..
SKILL.md names 1 domain. In commands or code: github.com; 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.
Creating Prd is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Creating Prd: CCPM Project Management (automazeio/ccpm, 8.4k stars), Ouroboros PM Interview (Q00/ouroboros, 6.2k stars), To Issues (smallnest/pigo, 475 stars) and Write A Prd (bestofjs/bestofjs, 3.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
opsmill (a GitHub organization) maintains it in opsmill/infrahub, which has 531 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on October 8, 2026.
Source: opsmill/infrahub on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.