diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json
index 5892c42..848f292 100644
--- a/.claude-plugin/marketplace.json
+++ b/.claude-plugin/marketplace.json
@@ -16,7 +16,7 @@
"portfolio",
"review"
],
- "version": "1.1.6"
+ "version": "1.1.7"
}
]
}
diff --git a/AGENTS.md b/AGENTS.md
index 1b5e19b..a5ecc5b 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -1,4 +1,4 @@
## Skill and plugin releases
-Read `RELEASING.md` before changing a skill or plugin. Use `release-registry.json` as the source and version map. Update existing GitHub, ChatGPT, Claude, and public catalog records together. Preserve listing identities and private data. Generated copies must come from canonical files. Report any destination that could not be verified.
+Read `RELEASING.md` before changing a skill or plugin. Use `release-registry.json` as the source and version map. Update existing GitHub, ChatGPT, Claude and public catalog records together. Preserve listing identities and private data. Generated copies must come from canonical files. Report any destination that could not be verified.
diff --git a/docs/example-review.md b/docs/example-review.md
index 6718c03..e21f4d9 100644
--- a/docs/example-review.md
+++ b/docs/example-review.md
@@ -10,14 +10,14 @@ records or preliminary presentation slides were used.
## Scope
I reviewed the public README, Family Neighborhood case study and setup notes, recording guide,
-license, and third-party notices at the linked commit. I did not access an Airtable base or
+license and third-party notices at the linked commit. I did not access an Airtable base or
test the interface. The target's default branch was `main` when checked.
## Assessment
**Verified:** The [README](https://github.com/RachaelQuisel/Airtable-AI-Webinar/blob/8a5ccbfb275318ab471e92554c7286b4ecea9c11/README.md)
gives visitors a clear four-version design story and links the prompts, V3 source, setup notes,
-field map, fictional fixture, and recording. The [setup notes](https://github.com/RachaelQuisel/Airtable-AI-Webinar/blob/8a5ccbfb275318ab471e92554c7286b4ecea9c11/family-neighborhood/README.md)
+field map, fictional fixture and recording. The [setup notes](https://github.com/RachaelQuisel/Airtable-AI-Webinar/blob/8a5ccbfb275318ab471e92554c7286b4ecea9c11/family-neighborhood/README.md)
state the 48-field remapping cost and distinguish a source snapshot from a deployed interface.
The [license](https://github.com/RachaelQuisel/Airtable-AI-Webinar/blob/8a5ccbfb275318ab471e92554c7286b4ecea9c11/LICENSE)
and [third-party notices](https://github.com/RachaelQuisel/Airtable-AI-Webinar/blob/8a5ccbfb275318ab471e92554c7286b4ecea9c11/THIRD_PARTY_NOTICES.md)
@@ -25,7 +25,7 @@ make the reuse boundary visible.
## Priorities
-1. **Verified — Add the promised visual comparison.** The [README says the case study contains
+1. **Verified: Add the promised visual comparison.** The [README says the case study contains
screenshots](https://github.com/RachaelQuisel/Airtable-AI-Webinar/blob/8a5ccbfb275318ab471e92554c7286b4ecea9c11/README.md#L9-L11),
but the [case study at this commit](https://github.com/RachaelQuisel/Airtable-AI-Webinar/blob/8a5ccbfb275318ab471e92554c7286b4ecea9c11/docs/family-neighborhood-case-study.md)
contains no embedded frames or image links. A visitor has to download the full recording to
@@ -34,9 +34,9 @@ make the reuse boundary visible.
## Limits
-The public files establish the design decisions, source snapshot, and documented setup path.
+The public files establish the design decisions, source snapshot and documented setup path.
They do not establish a deployed V3 interface, persistent Airtable writes, behavior in another
-base, or measured user outcomes. The recording was identified in the public repository, but I
+base or measured user outcomes. The recording was identified in the public repository, but I
did not independently inspect its frames for this example. I did not assess code correctness or
security. The observation about missing images applies to the linked commit and should be
rechecked if the repository changes.
diff --git a/docs/sample-portfolio-page.html b/docs/sample-portfolio-page.html
new file mode 100644
index 0000000..92dacfc
--- /dev/null
+++ b/docs/sample-portfolio-page.html
@@ -0,0 +1,3 @@
+
Rachael Quisel: automation for small businesses
+
Automating my vacation rental led me to a career I love. Now I help other business owners automate their work and get their time back.
$180,000gross per year at La Maison Santa Barbara
About 5 hoursa week of my time
About 900five-star reviews on Airbnb and VRBO
“Hosting a thousand guests a year took 20+ hours a week until I automated my workflows. I cut that number down to 5 hours.” (airbnbai.rent)
Airbnb Guest favorite · 4.97 rating · top 5% of eligible listings · about 900 five-star reviews (600+ on Airbnb and about 300 on VRBO)
Airbnb and Vrbo booking emails come into one inbox and land on a shared calendar. Changes and cancellations update the calendar, and cleaners get a text.
When your cleaner can't make it, the next one is asked automatically
Each booking creates a cleaning task and a calendar invite. If a cleaner declines, it goes to the next one, and you get a text if a day still needs coverage.
Door codes for every guest, assigned and revoked automatically
A guest books and gets their own door code, sent in the welcome message, a week before and a day before their stay. Every guest and contractor has a unique code, and each code is revoked after checkout and never reused.
When an inspection finds a problem, the right contractor is scheduled automatically
Your inspector works through a checklist app. When they flag a problem, one tap texts the right contractor, who picks the next open time. Everyone gets a confirmation by text and email, and your maintenance channel is updated.
Payouts and charges from your booking platforms land in a database, a script calculates TOT and TBID, maps the numbers onto the city tax form, and an audit script checks the totals add up.
A morning briefing in Slack so your whole team starts the day on the same page
Every morning, a briefing is built automatically and posted to your team's Slack channel before the workday starts: alerts, bookings, reviews, money, guest messages and cleaning coverage in one post, so everyone sees the same plan.
Every night on Airbnb and VRBO stays priced the way you set it. Each morning it checks the next 12 months, fixes any night that's off and posts a short report to your Slack.
A task tracker for property managers, cleaners or inspectors working across many houses. Each house shows whether its tasks are on track, due soon or overdue, and finished tasks earn points. My own rental is a single home, but this tool is built for teams covering several properties.
The Colleague Audit: stop chatting with AI and start delegating to it. Built from the story of how Grok Bot was built in a month.
The Loop Audit: stop automating tasks and start automating loops.
\ No newline at end of file
diff --git a/docs/verification.md b/docs/verification.md
index f382faf..fc90eb1 100644
--- a/docs/verification.md
+++ b/docs/verification.md
@@ -2,7 +2,7 @@
## November 3, 2026
-The source release is **1.1.6**. This release includes the benefits-first README and listing descriptions. It also separates terminal commands from Claude Code prompts and adds instructions for updating existing installations. The skill's review behavior is unchanged; its version was updated to match the package.
+The source release is **1.1.7**. This release adds portfolio page output: when asked for a page instead of a review, the skill follows `references/portfolio-page.md` and a sample page is in `docs/sample-portfolio-page.html`. Release 1.1.6 added the benefits-first README and update instructions.
Before this documentation release, the authenticated Claude publisher portal showed **1.1.3** at commit `8196f3112ad2b7f65c3b69c7144577adfab310a0` as approved after its security scan. The serving public version was **1.1.0** at `d54312ec485c2d2089e52c65e1269d2ea336dd2f`. The portal required an Anthropic reviewer to publish the update. That observation does not establish approval or publication of 1.1.6.
@@ -26,7 +26,7 @@ Historical checks below were recorded October 3, 2026 against the local plugin p
At that check, the plugin manifest was version **1.1.0**. The recorded fresh-install test below covers **1.0.1**, not 1.1.0. A new installation and behavior test for 1.1.0 is still required. The audit environment did not have Claude Code, so it did not run `claude plugin validate` or an installation test.
-The October 16 repository inspection confirmed parseable plugin and marketplace JSON, matching package names, a resolvable marketplace package path, one SKILL.md, and the referenced icon file. These are structural checks only, not a security scan, live behavior test, or Anthropic approval.
+The October 16 repository inspection confirmed parseable plugin and marketplace JSON, matching package names, a resolvable marketplace package path, one SKILL.md and the referenced icon file. These are structural checks only, not a security scan, live behavior test or Anthropic approval.
The icon fix is committed at [021198c](https://github.com/RachaelQuisel/github-portfolio-builder/commit/021198ca0bbebc1ac530e42d701c39993fdf0f25). Its follow-up portal scan and approval remain unverified. The publisher portal requires access through the submitting account and organization.
@@ -38,11 +38,11 @@ The icon fix is committed at [021198c](https://github.com/RachaelQuisel/github-p
| Claude Code plugin manifest | Passed | `claude plugin validate plugins/github-portfolio-builder` |
| Skill metadata | Passed | `quick_validate.py` with PyYAML |
| Claude Code repository reviews | Previously exercised | Two unrelated public repositories were reviewed during initial development. Re-run after material behavior changes. |
-| Claude Code profile review | Passed local behavior check | With the local plugin loaded, a review of an unrelated public profile (`jvns`) identified the profile README and pins, sampled relevant repositories, linked file-specific claims, labeled role uncertainty, and stated coverage limits. No write action was requested or observed. |
+| Claude Code profile review | Passed local behavior check | With the local plugin loaded, a review of an unrelated public profile (`jvns`) identified the profile README and pins, sampled relevant repositories, linked file-specific claims, labeled role uncertainty and stated coverage limits. No write action was requested or observed. |
| Empty or ambiguous public profile | Passed local behavior check | A separate public username with no visible work produced a scope and identity gap instead of invented portfolio recommendations. |
| Claude chat and Cowork | Not tested | A Claude Code result does not establish behavior on these surfaces. |
| Fresh install from the public marketplace | Passed | Using an isolated `CLAUDE_CONFIG_DIR`, `claude plugin marketplace add RachaelQuisel/github-portfolio-builder` and `claude plugin install github-portfolio-builder@github-portfolio-builder` succeeded. `claude plugin details` showed version 1.0.1 and one skill. |
-| Claude Directory | Listing unverified | Portal validation, source connection, disclosures, submission, review, and visible listing are separate checks. |
+| Claude Directory | Listing unverified | Portal validation, source connection, disclosures, submission, review and visible listing are separate checks. |
These checks establish package validity and sampled review behavior. They do not enforce read-only access. The host controls tool permissions, and a read-only GitHub MCP is optional.
diff --git a/plugins/github-portfolio-builder/.claude-plugin/plugin.json b/plugins/github-portfolio-builder/.claude-plugin/plugin.json
index b5d1fe9..c0e02ea 100644
--- a/plugins/github-portfolio-builder/.claude-plugin/plugin.json
+++ b/plugins/github-portfolio-builder/.claude-plugin/plugin.json
@@ -1,7 +1,7 @@
{
"name": "github-portfolio-builder",
"displayName": "GitHub Portfolio Builder",
- "version": "1.1.6",
+ "version": "1.1.7",
"description": "Build a stronger GitHub portfolio. Highlight your best work, explain your contributions, and get a prioritized plan for what to improve.",
"author": {
"name": "Rachael Quisel"
diff --git a/plugins/github-portfolio-builder/.codex-plugin/plugin.json b/plugins/github-portfolio-builder/.codex-plugin/plugin.json
index 673a0e0..de48fe5 100644
--- a/plugins/github-portfolio-builder/.codex-plugin/plugin.json
+++ b/plugins/github-portfolio-builder/.codex-plugin/plugin.json
@@ -11,7 +11,7 @@
"defaultPrompt": null
},
"name": "github-portfolio-builder",
- "version": "1.1.6",
+ "version": "1.1.7",
"description": "Build a stronger GitHub portfolio. Highlight your best work, explain your contributions, and get a prioritized plan for what to improve.",
"author": {
"name": "Rachael Quisel"
diff --git a/plugins/github-portfolio-builder/GitHub-Portfolio-Builder-HowItWorks-2026-10-03.md b/plugins/github-portfolio-builder/GitHub-Portfolio-Builder-HowItWorks-2026-10-03.md
index 1d50946..4114c2d 100644
--- a/plugins/github-portfolio-builder/GitHub-Portfolio-Builder-HowItWorks-2026-10-03.md
+++ b/plugins/github-portfolio-builder/GitHub-Portfolio-Builder-HowItWorks-2026-10-03.md
@@ -6,20 +6,20 @@
- The profile or repository URL identifies the target.
- The intended audience and review focus guide the assessment.
-- Current GitHub pages, repository files, and relevant linked sources supply evidence.
+- Current GitHub pages, repository files and relevant linked sources supply evidence.
- Existing access is required for a private target.
## What happens
-1. The plugin asks up to three questions about a missing target, audience, or focus. It waits for answers that affect the review. A clear target and review request can be enough.
+1. The plugin asks up to three questions about a missing target, audience or focus. It waits for answers that affect the review. A clear target and review request can be enough.
2. It resolves an ambiguous target before inspection. It reads the current default branch and relevant sources through available read tools.
3. For a profile, it samples representative repositories and records the scope. For a repository, it reads the entry point and supporting files needed for the question.
-4. It checks direct file paths before claiming something is absent. It treats inaccessible pages, incomplete trees, and failed links as evidence gaps.
-5. It labels statements verified, reported, inferred, or unresolved. A source file does not establish deployment or a real-world outcome.
-6. It ranks up to five useful improvements. It gives fewer when the evidence supports fewer. Suggested public additions include required proof, permission, or attribution.
-7. It returns Scope, Assessment, Priorities, and Limits. It includes Worth sharing only when a supported addition is available. A correction prompts a source check and revision.
+4. It checks direct file paths before claiming something is absent. It treats inaccessible pages, incomplete trees and failed links as evidence gaps.
+5. It labels statements verified, reported, inferred or unresolved. A source file does not establish deployment or a real-world outcome.
+6. It ranks up to five useful improvements. It gives fewer when the evidence supports fewer. Suggested public additions include required proof, permission or attribution.
+7. It returns Scope, Assessment, Priorities and Limits. It includes Worth sharing only when a supported addition is available. A correction prompts a source check and revision.
## Outputs
- A sourced review in the current chat.
-- No repository edit, profile change, pull request, or publication.
+- No repository edit, profile change, pull request or publication.
diff --git a/plugins/github-portfolio-builder/PRIVACY.md b/plugins/github-portfolio-builder/PRIVACY.md
index a70a09e..95a4046 100644
--- a/plugins/github-portfolio-builder/PRIVACY.md
+++ b/plugins/github-portfolio-builder/PRIVACY.md
@@ -2,14 +2,14 @@
Last updated October 3, 2026.
-GitHub Portfolio Builder is a package of instructions and reference text. It has no publisher-operated service, account, telemetry, or storage. The publisher does not receive or retain review content through this plugin.
+GitHub Portfolio Builder is a package of instructions and reference text. It has no publisher-operated service, account, telemetry or storage. The publisher does not receive or retain review content through this plugin.
## Data used in a review
-The skill asks Claude to read the GitHub profile or repository named by the user, a small number of related repositories for a profile review, and linked websites or demos when needed to support a finding. Public profile and repository material may include names, contact details, and other personal data. A private target is reviewed only when the user supplies it and their Claude environment already has access.
+The skill asks Claude to read the GitHub profile or repository named by the user, a small number of related repositories for a profile review and linked websites or demos when needed to support a finding. Public profile and repository material may include names, contact details and other personal data. A private target is reviewed only when the user supplies it and their Claude environment already has access.
-Claude, GitHub, any optional GitHub MCP, and any linked site may process requests or content according to their own terms, permissions, and retention settings. Requests to GitHub or linked sites expose the requested URL and normal request metadata to those operators. The package does not require a GitHub token for public targets or install an MCP server.
+Claude, GitHub, any optional GitHub MCP and any linked site may process requests or content according to their own terms, permissions and retention settings. Requests to GitHub or linked sites expose the requested URL and normal request metadata to those operators. The package does not require a GitHub token for public targets or install an MCP server.
-The skill instructs Claude to make recommendations without changing repositories, profile settings, or pins, and not to upload private repository content to a linked site. These are instructions; the host's enabled tools and permissions determine what actions are technically possible. Users who need strict read-only access should configure it in their Claude environment and any optional GitHub MCP.
+The skill instructs Claude to make recommendations without changing repositories, profile settings or pins and not to upload private repository content to a linked site. These are instructions; the host's enabled tools and permissions determine what actions are technically possible. Users who need strict read-only access should configure it in their Claude environment and any optional GitHub MCP.
-For questions about this package, use the [repository issue tracker](https://github.com/RachaelQuisel/github-portfolio-builder/issues). For Claude, GitHub, or linked-site data controls, use those providers' privacy settings and policies.
+For questions about this package, use the [repository issue tracker](https://github.com/RachaelQuisel/github-portfolio-builder/issues). For Claude, GitHub or linked-site data controls, use those providers' privacy settings and policies.
diff --git a/plugins/github-portfolio-builder/plugin.json b/plugins/github-portfolio-builder/plugin.json
index a7e3e7a..41bcc49 100644
--- a/plugins/github-portfolio-builder/plugin.json
+++ b/plugins/github-portfolio-builder/plugin.json
@@ -27,5 +27,5 @@
"license": "MIT",
"name": "github-portfolio-builder",
"repository": "https://github.com/RachaelQuisel/github-portfolio-builder",
- "version": "1.1.6"
+ "version": "1.1.7"
}
diff --git a/plugins/github-portfolio-builder/skills/github-portfolio-builder/SKILL.md b/plugins/github-portfolio-builder/skills/github-portfolio-builder/SKILL.md
index 1e120e6..e59a0e5 100644
--- a/plugins/github-portfolio-builder/skills/github-portfolio-builder/SKILL.md
+++ b/plugins/github-portfolio-builder/skills/github-portfolio-builder/SKILL.md
@@ -1,6 +1,6 @@
---
name: github-portfolio-builder
-version: 1.1.6
+version: 1.1.7
description: Review a GitHub profile or repository as professional portfolio evidence and suggest prioritized improvements. Use for GitHub presentation, case studies, reusable examples, attribution, licensing, and claim verification; use a code-review skill for code correctness alone.
---
@@ -67,3 +67,7 @@ Always include **Scope**, **Assessment**, **Priorities**, and **Limits**. Includ
5. **Limits:** Material uncertainties that would change the recommendations.
Keep the review useful even if evidence is sparse: say what can be assessed, identify what cannot, and recommend the smallest next step that would resolve the gap.
+
+## Build a portfolio page
+
+When the user asks for a portfolio page instead of a review, follow [references/portfolio-page.md](references/portfolio-page.md): the owner's opening line first, a bold hero with the headline stats stated once, then one card per automation with what it handles, a link, a thumbnail from its video and time saved only when a source states it.
diff --git a/plugins/github-portfolio-builder/skills/github-portfolio-builder/references/conversation-and-writing.md b/plugins/github-portfolio-builder/skills/github-portfolio-builder/references/conversation-and-writing.md
index e2861e3..edc2e25 100644
--- a/plugins/github-portfolio-builder/skills/github-portfolio-builder/references/conversation-and-writing.md
+++ b/plugins/github-portfolio-builder/skills/github-portfolio-builder/references/conversation-and-writing.md
@@ -1,6 +1,6 @@
# Conversation and writing rules
-Apply these rules to questions, answers, descriptions, explanations, examples, errors, and reports. They use the Voice Align writing standard. They do not invoke a personal logging workflow or require a separate skill.
+Apply these rules to questions, answers, descriptions, explanations, examples, errors and reports. They use the Voice Align writing standard. They do not invoke a personal logging workflow or require a separate skill.
## Respond to the user
@@ -10,18 +10,18 @@ Apply these rules to questions, answers, descriptions, explanations, examples, e
- After each answer, acknowledge the new detail. Ask only about what is still missing. Do not repeat answered questions or show a long questionnaire.
- Use the latest answer when the user changes a choice. Stop when the user pauses or cancels.
- When the needed details are supplied, proceed within the user's request. Do not add a routine approval question.
-- Follow the skill's existing permissions for reading, saving, sending, scheduling, and publishing. Answering intake questions does not authorize an additional action.
+- Follow the skill's existing permissions for reading, saving, sending, scheduling and publishing. Answering intake questions does not authorize an additional action.
- A scheduled run uses its saved settings. It does not wait for live intake answers. Report a missing required setting instead of guessing.
-- Return the requested result without a closing offer, repeated explanation, or another questionnaire. Ask a follow-up question only when a missing required fact affects that result.
+- Return the requested result without a closing offer, repeated explanation or another questionnaire. Ask a follow-up question only when a missing required fact affects that result.
- If a result is corrected or a revision is requested, respond to that request. Check the source again when the correction changes a factual claim.
## Write clearly
- Start with the first useful fact. Use common words and complete sentences.
- Keep one idea in each sentence. Use one clause unless splitting it changes the meaning.
-- Preserve facts, exact names, field labels, commands, quoted source evidence, and required syntax.
+- Preserve facts, exact names, field labels, commands, quoted source evidence and required syntax.
- Explain a required technical term when it first appears. Use full words unless a shortened term identifies a product or field.
-- Remove filler, metaphors, em dashes, repeated facts, and closing summaries.
-- Label missing facts as unknown. Do not invent results, estimates, integrations, or permissions.
+- Remove filler, metaphors, em dashes, repeated facts and closing summaries.
+- Label missing facts as unknown. Do not invent results, estimates, integrations or permissions.
- Use numbered bullets for steps. Preserve the requested format for messages and finished documents.
-- Describe processes with Trigger, Inputs, What happens, and Outputs.
+- Describe processes with Trigger, Inputs, What happens and Outputs.
diff --git a/plugins/github-portfolio-builder/skills/github-portfolio-builder/references/portfolio-page.md b/plugins/github-portfolio-builder/skills/github-portfolio-builder/references/portfolio-page.md
new file mode 100644
index 0000000..1ac4a43
--- /dev/null
+++ b/plugins/github-portfolio-builder/skills/github-portfolio-builder/references/portfolio-page.md
@@ -0,0 +1,58 @@
+# Portfolio page output
+
+Use this when the user asks for a portfolio page, not only a review. Iterates on the review: the same evidence rules apply.
+
+## Order, top to bottom
+
+1. **Opening line.** Use the owner's approved line word for word. For Rachael Quisel:
+ "Automating my vacation rental led me to a career I love. Now I help other business owners automate their work and get their time back."
+2. **Hero stats.** A bold section with big stat callouts, stated once, here only:
+ - **$180,000** gross per year (La Maison Santa Barbara short-term vacation rental)
+ - **About 5 hours a week** of her time, thanks to the automations
+ - **About 900** five-star reviews on Airbnb and VRBO
+ Do not repeat these figures elsewhere on the page.
+ Under the stats, add the supporting line quoted from airbnbai.rent: "Hosting a thousand guests a year took 20+ hours a week until I automated my workflows. I cut that number down to 5 hours."
+3. **La Maison lead video.** Right under the hero, embed `https://airbnbai.rent/assets/la-maison-five-star-standard.mp4` large (poster `la-maison-five-star-poster.webp`) to open the La Maison section.
+4. **The automations, one card each.** Never a single grouped highlight. Frame each card as proof of the hero result. Each card has:
+ - Title and what it handles for her, in one or two plain sentences.
+ - A link to the automation (public workflow guide or video folder).
+ - The embedded video, required: `