port
Generate a complete Plumbline port plan for the current project.
Skill by fallguyconsulting
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/fallguyconsulting-port
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/port
What's inside
- Skill name
port- Description
- Generate a complete Plumbline port plan for the current project. Writes a markdown guide enumerating violations by category and the passes needed to drive the lint to zero. Output is a file, ready to be consumed by a planner or executed directly.
- License
- Apache-2.0
- Instructions
- 168 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# /plumbline:port
Write a complete Plumbline port plan for the current project to a file. The plan enumerates every violation across both checks and the passes needed to make `plumbline .` return clean. Output goes to a markdown file — ready to hand off to a planner or to execute directly.
For the full reference on each phase, see `docs/plumbline-porting-guide.md` in the plugin distribution.
## What this does
1. Runs `plumbline doctor` to assess installation state.
2. Runs `plumbline .` to count violations per check.
3. Runs `plumbline patterns` to cluster the violations by shape — this is what makes the `comment-hygiene` pass concretely actionable instead of "thousands of them, good luck."
4. Writes a phase-by-phase plan to `./plumbline-port-plan.md` (or the path passed as the second arg). The plan's goal is **complete**: executing it leaves the lint clean with both checks on. The budget ratchet, which is a strategy for projects that won't do the full sweep at once, is referenced as a fallback in the porting guide, not in the plan itself.
The plan skips the **Adopt** pass when doctor reports `healthy`. It skips each check's pass when that check's count is zero. The total passes always include **Maintain** as the steady-state description.
## Run
```bash
plumbline_bin="${CLAUDE_PLUGIN_ROOT%/}/bin/plumbline"
guide_path="${CLAUDE_PLUGIN_ROOT%/}/docs/plumbline-porting-guide.md"
target="${1:-.}"
output="${2:-./plumbline-port-plan.md}"
abs_target=$(cd "$target" && pwd)
project=$(basename "$abs_target")
doctor_out=$(node "$plumbline_bin" doctor "$target" 2>&1 || true)
doctor_healthy=false
if echo "$doctor_out" | grep -q "plumbline doctor: healthy"; then
doctor_healthy=true
fi
audit_out=$(node "$plumbline_bin" "$target" 2>&1 || true)
patterns_out=$(node "$plumbline_bin" patterns "$target" 2>&1 || true)
hygiene_count=$(echo "$audit_out" | grep -c "plumbline/comment-hygiene" || true)
citation_count=$(echo "$audit_out" | grep -c "plumbline/citation-unresolved" || true)
total=$((hygiene_count + citation_count))
{
echo "# Plumbline port plan — $project"
echo ""
echo "Generated by \`/plumbline:port\`."
echo ""
echo "**Goal**: execute this plan and \`plumbline .\` returns clean with both checks (\`comment_hygiene\`, \`citation_resolution\`) enabled."
echo ""
echo "Reference: \`$guide_path\`"
echo ""
echo "## Current state"
echo ""
echo '```'
echo "$doctor_out"
echo '```'
echo ""
echo "## Backlog"
echo ""
echo "| Check | Count |"
echo "| --- | --- |"
echo "| comment-hygiene | $hygiene_count |"
echo "| citation-unresolved | $citation_count |"
echo "| **Total** | **$total** |"
echo ""
if [ "$total" -eq 0 ] && [ "$doctor_healthy" = "true" ]; then
echo "## Result"
echo ""
echo "Already Plumbline-clean. Nothing to do."
echo ""
else
echo "## Plan"
echo ""
pass=1
if [ "$doctor_healthy" != "true" ]; then
cat <<EOF
### Pass $pass — Adopt
- Install the plumbline plugin in this project
- Run \`/plumbline:affirm\`; commit \`.claude/rules/plumbline-cheatsheet.md\`
- Run \`/plumbline:starter .\`; review the proposed config; save as \`.plumbline.json\`; commit
- Verify: \`/plumbline:doctor\` reports \`healthy\`
EOF
pass=$((pass + 1))
fi
if [ "$citation_count" -gt 0 ]; then
cat <<EOF
### Pass $pass — \`citation-unresolved\` ($citation_count violations)
Citation tags are declared in \`.plumbline.json\`'s \`citations\` array. Each violation is a slug that does not resolve.
- Run \`/plumbline:patterns\` to cluster by tag (\`tag:@concept:\`, \`tag:@story:\`, ...).
- For each tag cluster: triage each slug — fix typos, rename to match an existing artifact, create the missing artifact, or remove the citation if the link is no longer load-bearing.
Verify: \`plumbline .\` reports zero \`citation-unresolved\` violations. Commit.
EOF
pass=$((pass + 1))
fi
if [ "$hygiene_count" -gt 0 ]; then
cat <<EOF
### Pass $pass — \`comment-hygiene\` ($hygiene_count violations)
Under plumbline's strict rule, comments are not permitted in source files except machine directives (license headers, lint suppressions, build tags), configured citation tags, and JSDoc/GoDoc comments in files carrying the \`@plumbline:allow-docstrings\` opt-in marker. Every violation listed is one of: an obvious deletion (residue, restatement, TODO, divider), a load-bearing constraint that should become an assertion / test / type / name, or a docstring on a public-API surface that warrants the opt-in marker.
Cluster shapes (from \`plumbline patterns\`):
\`\`\`
EOF
echo "$patterns_out"
cat <<'EOF'
```
For each cluster:
- `disallowed-prose` / `todo-marker` / `divider` / `commented-out-code` — sample 3-5, confirm the shape, bulk delete.From fallguyconsulting/plumbline, Apache-2.0.
More from fallguyconsulting/plumbline
- 0.474score
release
fallguyconsulting
ONLY activated by the explicit /release slash command.
SkillCFreshness: CClaude Code +9 - 0.471score
affirm
fallguyconsulting
Affirm the Plumbline rules in this project.
SkillCFreshness: CClaude Code +9 - 0.471score
audit
fallguyconsulting
Audit the current project against the Plumbline lint.
SkillCFreshness: CClaude Code +9 - 0.471score
budget
fallguyconsulting
One-way violation ratchet for projects whose Plumbline backlog is too large to clear at once.
SkillCFreshness: CClaude Code +9 - 0.471score
ci
fallguyconsulting
Emit a CI workflow that runs the Plumbline lint and budget check on every PR.
SkillCFreshness: CClaude Code +9 - 0.471score
doctor
fallguyconsulting
Diagnose the Plumbline installation in the current project — config present and valid, cheatsheet committed, plugin enabled, budget baseline if used.
SkillCFreshness: CClaude Code +9 - 0.471score
patterns
fallguyconsulting
Cluster Plumbline lint violations by shape so a hundred similar violations surface as one cluster with a proposed bulk fix.
SkillCFreshness: CClaude Code +9 - 0.471score
slug
fallguyconsulting
Turn a prose description into a stable kebab-case slug suitable for citation identifiers (e.g.
SkillCFreshness: CClaude Code +9 - 0.471score
starter
fallguyconsulting
Generate a project-shaped .plumbline.json by scanning the repo for known patterns (Go module, Node package, ok-planner sibling, generated dirs).
SkillCFreshness: CClaude Code +9 - 0.471score
suggest
fallguyconsulting
Walk Plumbline lint violations and propose a fix for each — delete the comment, convert its load-bearing content to code (assertion / test / type / name), or…
SkillCFreshness: CClaude Code +9 - 0.471score
explain
fallguyconsulting
Show the canonical definition and examples for a Plumbline concept — a check code, the citations config, or the docstring opt-in marker.
SkillCFreshness: CClaude Code +9 - 0.461score
version
fallguyconsulting
Print the installed plumbline plugin version.
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Jun 17, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/fallguyconsulting/plumbline
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from fallguyconsulting
- 0.474score
release
fallguyconsulting
ONLY activated by the explicit /release slash command.
SkillCFreshness: CClaude Code +9 - 0.471score
affirm
fallguyconsulting
Affirm the Plumbline rules in this project.
SkillCFreshness: CClaude Code +9 - 0.471score
audit
fallguyconsulting
Audit the current project against the Plumbline lint.
SkillCFreshness: CClaude Code +9 - 0.471score
budget
fallguyconsulting
One-way violation ratchet for projects whose Plumbline backlog is too large to clear at once.
SkillCFreshness: CClaude Code +9 - 0.471score
ci
fallguyconsulting
Emit a CI workflow that runs the Plumbline lint and budget check on every PR.
SkillCFreshness: CClaude Code +9 - 0.471score
doctor
fallguyconsulting
Diagnose the Plumbline installation in the current project — config present and valid, cheatsheet committed, plugin enabled, budget baseline if used.
SkillCFreshness: CClaude Code +9
Cite this page
port skill. Agent Mart. https://agentmart.dev/skills/fallguyconsulting-port (last updated 2026-10-24)