Borrowing it
Nothing to install: this file belongs to Gkrumbach07/openshell-dashboard. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/Gkrumbach07/openshell-dashboard/main/.claude/skills/add-page/SKILL.mdgit clone --depth 1 https://github.com/Gkrumbach07/openshell-dashboardWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/gkrumbach07/openshell-dashboard/add-page)<a href="https://agentmods.dev/skills/gkrumbach07/openshell-dashboard/add-page"><img src="https://agentmods.dev/badge/skills/gkrumbach07/openshell-dashboard/add-page/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/gkrumbach07/openshell-dashboard/add-page"><img src="https://agentmods.dev/badge/skills/gkrumbach07/openshell-dashboard/add-page.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00039 | $0.01111 |
| Opus 5.5 | $0.00016 | $0.00444 |
| Sonnet 5.5 | $0.00008 | $0.00222 |
| Haiku 4.5 | $0.00004 | $0.00111 |
Grade A, and why
add-page scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 24d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 161 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Add Page
Add a new page to the dashboard frontend.
Arguments
$ARGUMENTS — Page name and description (e.g., "sandbox detail page showing overview, logs, and connect tabs")
Steps
1. Create the page component
Pages are flat files in frontend/src/pages/ (no subdirectories):
frontend/src/pages/<PageName>.tsx
Rules:
- Self-contained: takes props, loads its data through the
src/api/hooks - PatternFly 6 components only
- UI text through
useI18nfrom../i18n, with the keys in a catalog underfrontend/src/i18n/locales/en/(seefrontend/src/i18n/README.md) - Export as default
- Use relative imports (not
~/alias)
For example, a page that shows one sandbox template:
import {
Alert,
Bullseye,
PageSection,
Spinner,
Title,
} from '@patternfly/react-core';
import { Link } from 'react-router-dom';
import { useTemplate } from '../api/templates';
import { useI18n } from '../i18n';
type TemplateDetailPageProps = {
workspace: string;
templateName: string;
};
const TemplateDetailPage: React.FC<TemplateDetailPageProps> = ({
workspace,
templateName,
}) => {
const { t } = useI18n('workspaces');
const template = useTemplate(workspace, templateName);
if (template.isLoading) {
return (
<Bullseye>
<Spinner aria-label={t('template.loading')} />
</Bullseye>
);
}
if (template.isError) {
return (
<Alert variant="danger" title={t('template.loadFailed')}>
{(template.error as Error).message}
</Alert>
);
}
return (
<PageSection>
<Title headingLevel="h1" data-testid="template-name">
{templateName}
</Title>
<Link to={`/workspaces/${workspace}`}>
{t('template.backToWorkspace')}
</Link>
</PageSection>
);
};
export default TemplateDetailPage;
The three template.* keys are new: add them to the catalog the page reads, here frontend/src/i18n/locales/en/workspaces.ts.
Key patterns:
- Navigate with
<Link>; useuseNavigateonly for a redirect after an action data-testidon interactive elements- No breadcrumbs in pages — the app shell adds its own
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 24d ago Changed · +51 lines · -1 tokens per session 688448a4ab65
- 28d ago Changed 0b34c1ba07f8
- 2mo ago First seen · 110 lines · 40 tokens per session scan A a7bdaa690012
add-page is a skill published in the GitHub repository Gkrumbach07/openshell-dashboard (5 stars, last pushed 10d ago), licensed Apache-2.0. It adds 39 tokens to every session and 1,111 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
add-page compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| add-pageGkrumbach07/openshell-dashboard | Skill | 5 | 10d ago | Apache-2.0 | A | 39 | Claude Code |
| imagegenopenai/codex | Skill | 133k | yesterday | Apache-2.0 | A | 113 | Codex |
| playwright-climicrosoft/playwright | Skill | 99k | yesterday | Apache-2.0 | A | 19 | Claude Code |
| local-ai-agentsmicrosoft/ai-agents-for-beginners | Skill | 79k | 4d ago | MIT | A | 200 | Claude Code, Codex |
| systematic-debuggingobra/superpowers | Skill | 313k | 3d ago | MIT | A | 21 | Claude Code |
| next-cache-components-adoptionvercel/next.js | Skill | 143k | yesterday | MIT | A | 95 | Claude Code |
| next-partial-prefetching-adoptionvercel/next.js | Skill | 143k | yesterday | MIT | A | 103 | Claude Code |