Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Files

ASecurity

Author a Kandev task canvas as a self-contained web application.

811 stars
0 votes
0 copies
0 views
Added 9/20/2026
developmentrustnodeapisecurity

Works with

cliapi

Security Analysis

A100/100

Scanned 9/20/2026

Install to Claude Code

$npx -y skills add kdlbs/kandev --skill files --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Files?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Files
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kdlbs-files/badge)](https://www.skillsdirectory.com/skills/kdlbs-files)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: kandev-canvas-authoring
version: "1"
description: Author a Kandev task canvas as a self-contained web application.
---

# Kandev canvas authoring

Use one `read_canvas_authoring_skill_kandev` call without `path` when you need
the authoring contract. That response is the complete core bundle. It includes
this workflow, the manifest and browser protocol summary, appearance rules,
the minimal scaffold, and the exact supporting-file inventory. Do not read the
core bundle again during the same authoring task.

## Required workflow

1. Call `create_canvas_kandev` with a short title and an application summary.
   It creates an inactive task canvas and returns its source directory,
   manifest scaffold, initial permission policy, and exact scaffold inventory.
2. Use native file tools in that returned directory. The initial files are
   `manifest.yaml`, `index.html`, `appearance.js`, `script.js`, and
   `styles.css`. Replace or extend them in the same directory.
3. Keep every source path relative to the returned directory. Do not write
   outside it. Bundle executable dependencies. Node, a package manager, and a
   network build step are not available at runtime.
4. Run local checks, then call `publish_canvas_kandev` with the returned canvas
   ID and source path. Read validation diagnostics and correct rejected source
   before publishing again.

The first valid release of a new owner-created task canvas uses the returned
initial permission policy. It can activate without a second approval for its
declared supported task-scoped data, event, state, and exact HTTPS-origin
permissions. A later permission increase, imported package, or workspace
promotion still requires human review. Do not add a trust flag to the
manifest, and do not request permissions outside the policy.

## Core application contract

- Include `<meta name="viewport" content="width=device-width, initial-scale=1">`.
- Use relative `./_kandev/v1` paths for Kandev data, state, actions, and events.
- Treat Kandev domain data as the source of truth. Derive filters and summaries
  in memory instead of storing a second copy of domain records.
- Store only small application-specific shared values in instance state. Keep
  temporary input in memory and use conditional revisions for writes.
- The canvas runs in a trusted same-origin iframe. Treat its source as trusted
  user-session code: it can use same-origin browser storage and cookies and can
  access the host DOM. It has the viewing user's ordinary API authority.
- Keep Kandev protocol requests relative and do not copy capability URLs or
  tokens into source, URLs, query strings, logs, or client state. Same-origin
  cookies do not replace capability validation or the grants on protocol routes.
- Render loading, empty, error, and retry states. Keep destructive actions
  explicit and explain their result.
- Use accessible labels, keyboard operation, visible focus, and touch targets.

Kandev injects a reserved startup bootstrap into the entry document before
authored scripts. It reports early document errors and checks the relative
context route after document load. The host reveals the frame only after a
versioned acknowledgement for the current attempt. A missing acknowledgement
or context failure becomes recoverable after 15 seconds. Keep the entry valid
HTML and render loading, empty, error, and retry states in the app.

## Minimal manifest

Use the returned `manifest_scaffold` as the starting point. New manifests use
`api_version: 2`, one lowercase web-app key, a package-relative `entry`, and at
least one `task-canvas` or `workspace-canvas` placement. Declare only the
`api_read`, `api_write`, `events`, `state`, and `network_origins` permissions
that the application needs. The owner-authorized first release can receive
only these supported task-scoped grants. The entry and all relative assets
must be in the published package.

## Browser protocol summary

Resolve all routes from the application document with `./_kandev/v1`. Use
`context`, the paginated `data` routes, `state/{key}` with `If-Match`, and the
bounded `events` stream as documented by the optional references. Events are
hints that invalidate a read. Refetch authoritative data after an event,
reconnect with `Last-Event-ID`, and perform a full refetch after
`runtime.resync_required`.

## Appearance protocol

The host may send the public presentation-only message
`kandev.web_app.appearance` with `version: 1`, `mode: light|dark`, and exactly
these color tokens: `background`, `foreground`, `card`, `cardForeground`,
`muted`, `mutedForeground`, `border`, `primary`, `primaryForeground`,
`accent`, `accentForeground`, `destructive`, `destructiveForeground`, and
`ring`. Accept it only when `event.source === window.parent`, the type and
version match, the keys are exact, and each serialized color is bounded. Map
the tokens to the same-name kebab-case CSS variables. Keep light and dark
fallbacks so the app remains usable before the first message. The message has
no identity, capability, data, storage, navigation, or action fields.

The generated `appearance.js` implements this listener. It is optional, but
copy its pattern when replacing the scaffold.

Read a supporting reference only when its topic is needed:

- `references/browser-api.md` for detailed browser routes and errors.
- `references/manifest.md` for the full manifest shape and validation rules.
- `references/data-and-state.md` for domain data and instance state.
- `references/events-and-recovery.md` for events, reconnect, and retries.
- `references/security.md` for same-origin trust and source safety rules.
- `references/ui-patterns.md` for responsive and accessible UI patterns.

## Distribution checklist

When the user asks for a portable canvas, keep the distribution boundary
separate from authoring and runtime state:

1. Add `distribution.schema_version: 1`, `distribution.kind: canvas`, a
   license, and `source_mode: static` or `source_mode: project`.
2. Keep `README.md`, the manifest, the application entry, and every local asset
   in the package. Use project mode only when the retained project is complete
   and bounded below `distribution/source/`.
3. Publish a valid release before offering a bundle or source download. The
   host prepares both archives from that immutable release and does not include
   screenshots.
4. Add screenshots later as ordered `previews` objects in a registry entry.
   The first preview is the cover, canvas entries require one to eight images,
   and plugin entries may omit images.

The authoring tools do not create repositories, releases, registry entries, or
pull requests. Report those manual follow-up steps to the user. Do not claim
that a local archive or build is published until the Kandev release flow
confirms it.

Attribution

kdlbskdlbs
View sourceMore from kdlbs →
SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Related Skills

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

281612 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2132 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

9881 votes

Pentest

PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.

5491 votes
View all in development →