Official agent skill

Add Writerside Doc Module

by JetBrains in JetBrains/kotlin-web-site

Add a new external Writerside documentation source to kotlin-web-site via the TeamCity Kotlin DSL (as a sub-documentation source under KotlinWithCoroutines).

OfficialApache-2.0Auto-check passedMobile

Install Add Writerside Doc Module

skills CLI
$ npx skills add JetBrains/kotlin-web-site --skill add-writerside-doc-module -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install JetBrains/kotlin-web-site add-writerside-doc-module --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/JetBrains/kotlin-web-site.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/add-writerside-doc-module .claude/skills/add-writerside-doc-module && rm -rf skills-src

Use ~/.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/

Facts

Skill name
add-writerside-doc-module
GitHub stars
1.6k
Token cost
~1.9k tokens
SKILL.md length
633 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
Apache-2.0

At a glance

Add a new external Writerside documentation source to kotlin-web-site via the TeamCity Kotlin DSL (as a sub-documentation source under KotlinWithCoroutines).

  • Works in 6 steps: Add the VCS root → Register the VCS root → Wire it as sub-documentation → …
  • Wiring a new Kotlin/ docs repo into the site
  • SKILL.md covers When to use, Inputs to gather first, Steps — apply these six edits and Worked example —…, plus 2 more sections
  • Calls mvn; reaches kotlinlang.org and github.com

What it does

Add Writerside Doc Module is an agent skill from JetBrains/kotlin-web-site, published by the product's own GitHub organization. Add a new external Writerside documentation source to kotlin-web-site via the TeamCity Kotlin DSL (as a sub-documentation source under KotlinWithCoroutines). Use when wiring a new Kotlin/ docs repo into the site. Covers the VCS root, its registration, the checkout rules, the kr.tree TOC include, v.list version vars, and the README row. The old git-submodule approach is obsolete — do not use it.

Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile, covering Android development. It works with Kotlin and Git. The repository describes itself as: The Kotlin programming language website. The licence is Apache-2.0.

When your agent uses it

  • Wiring a new Kotlin/ docs repo into the site
  • Tasks that involve Android development

Example prompts

  • “/add-writerside-doc-module”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Add the VCS root
  2. Register the VCS root
  3. Wire it as sub-documentation
  4. Include the module in the TOC
  5. Add version variables (if any)
  6. Update the README

What it can do on your machine

Read from SKILL.md and the folder at commit 38512ff. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • mvn

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • kotlinlang.org
    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Add Writerside Doc Module loads about 1.9k tokens when it runs. Until then it costs about 106 tokens; SKILL.md has 633 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~106
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from JetBrains/kotlin-web-site at commit 38512ff, republished under its Apache-2.0 licence (© JetBrains). 633 words, ~1,903 tokens.

Download SKILL.mdSave it as .claude/skills/add-writerside-doc-module/SKILL.md (or your agent's skills folder).
name
add-writerside-doc-module
description
Add a new external Writerside documentation source to kotlin-web-site via the TeamCity Kotlin DSL (as a sub-documentation source under KotlinWithCoroutines). Use when wiring a new Kotlin/* docs repo into the site. Covers the VCS root, its registration, the checkout rules, the kr.tree TOC include, v.list version vars, and the README row. The old git-submodule approach is obsolete — do not use it.

Add a new Writerside docs module

This skill wires an external documentation repository into kotlin-web-site so its pages are built and published as part of the main Kotlin docs site.

A doc source is now added entirely through the TeamCity Kotlin DSL as a sub-documentation source nested under the existing KotlinWithCoroutines build (the kotlin-reference module). There is no git submodule and no new build object for this pattern — addSubDocumentation(...) handles checkout and snippet wiring.

The reference implementation is the kotlinx.serialization addition; mirror it.

Follow .ai/guidelines.md at all times (required by CLAUDE.md).

When to use

The user wants to publish docs from another repo (e.g. a new Kotlin/* library) on kotlinlang.org, the same way coroutines, lincheck, dokka, api-guidelines, and serialization are published.

Inputs to gather first

Ask the user for (infer sensible defaults from the serialization example where possible):

InputExampleNotes
Object base nameKotlinxSerializationUsed as <base>Root for the VCS root object.
Display nameKotlinx SerializationHuman-readable name of the VCS root.
Git SSH URLgit@github.com:Kotlin/kotlinx.serialization.gitMust be SSH (git@github.com:...).
Branchrefs/heads/masterFull ref. May be a custom docs branch.
Checkout dirkotlinx.serializationDir name passed to addSubDocumentation.
Docs layoutdefault docs/ or custom (e.g. docs-website)Determines whether custom rules are needed.
External tree fileserialization.treeThe .tree file that lives in the source repo.
origin / element-idserializationThe module id used in the <include>.
TOC titleSerialization (kotlinx.serialization)Shown in the site sidebar.
Version varskotlinxIoVersion=0.9.0, okioVersion=3.16.2Any %var% the docs reference; optional.
README rowpage URL + repo URLFor the external-docs table.

Steps — apply these six edits

Make the edits in this order. Each one is anchored to an existing pattern; append the new entry alongside the others rather than reformatting the file.

1. Add the VCS root

File: .teamcity/documentation/vcsRoots/DocumentationRoots.kt

Append a new GitVcsRoot object after the last one (currently KotlinxSerializationRoot):

kotlin
object <Base>Root: GitVcsRoot({
    name = "<Display name>"
    url = "<git SSH URL>"
    branch = "<refs/heads/...>"
    branchSpec = "+:refs/heads/*"
    checkoutPolicy = AgentCheckoutPolicy.USE_MIRRORS
    authMethod = uploadedKey {
        uploadedKey = "default teamcity key"
    }
})
2. Register the VCS root

File: .teamcity/documentation/DocumentationProject.kt

Add a line after the last vcsRoot(...) call:

kotlin
vcsRoot(<Base>Root)

No import needed — the file already does import documentation.vcsRoots.*.

3. Wire it as sub-documentation

File: .teamcity/documentation/builds/KotlinWithCoroutines.kt

Add an addSubDocumentation(...) call inside the init { } block, alongside the existing calls.

  • Default layout (repo has docs/ and docs/snippets/) — omit the rules arg; the helper defaults to checking out .git + docs:

    kotlin
    addSubDocumentation("<checkout dir>", <Base>Root)
  • Custom layout — pass explicit checkout rules. Each rule is +:<srcPathInRepo> => <pathInBuildCheckout>. You must include .git. Example (serialization, whose docs live in docs-website):

    kotlin
    addSubDocumentation("kotlinx.serialization", KotlinxSerializationRoot, """
        +:.git => kotlinx-serialization/.git
        +:docs-website => kotlinx-serialization/docs-website
    """.trimIndent())

The helper addSubDocumentation (defined at the bottom of KotlinWithCoroutines.kt, around line 49) adds the VCS root with checkout rules and prepends a step that symlinks the module's snippets into docs/snippets. Don't duplicate that logic — just call it.

Show full SKILL.md (208 more words)Show less
4. Include the module in the TOC

File: docs/kr.tree

Add (or replace a placeholder topic= entry with) a <toc-element> that includes the external tree. Place it near the other library includes (coroutines, lincheck):

xml
<toc-element toc-title="<TOC title>">
    <include from="<external tree file>" origin="<origin>" element-id="<element-id>"/>
</toc-element>

from is the .tree filename that ships in the source repo; origin and element-id identify the module.

5. Add version variables (if any)

File: docs/v.list

Add a <var> for each version the module's docs reference via %name%:

xml
<var name="<name>" value="<value>"/>
6. Update the README

File: README.md

Add a row to the external-docs table (the "Source files ... are stored in separate repositories" table):

| [<Page name> docs](<page URL>) | [<repo name>](<repo URL>) |

Worked example — kotlinx.serialization

This is the exact diff produced by the reference change; use it as a template.

diff
# DocumentationRoots.kt
+object KotlinxSerializationRoot: GitVcsRoot({
+    name = "Kotlinx Serialization"
+    url = "git@github.com:Kotlin/kotlinx.serialization.git"
+    branch = "refs/heads/doc-restructuring-master"
+    branchSpec = "+:refs/heads/*"
+    checkoutPolicy = AgentCheckoutPolicy.USE_MIRRORS
+    authMethod = uploadedKey { uploadedKey = "default teamcity key" }
+})

# DocumentationProject.kt
+    vcsRoot(KotlinxSerializationRoot)

# KotlinWithCoroutines.kt  (inside init { })
+        addSubDocumentation("kotlinx.serialization", KotlinxSerializationRoot, """
+            +:.git => kotlinx-serialization/.git
+            +:docs-website => kotlinx-serialization/docs-website
+        """.trimIndent())

# docs/kr.tree
-        <toc-element toc-title="Serialization (kotlinx.serialization)" topic="serialization.md"/>
+        <toc-element toc-title="Serialization (kotlinx.serialization)">
+            <include from="serialization.tree" origin="serialization" element-id="serialization"/>
+        </toc-element>

# docs/v.list
+    <var name="kotlinxIoVersion" value="0.9.0"/>
+    <var name="okioVersion" value="3.16.2"/>

# README.md  (external-docs table)
+| [Serialization docs](https://kotlinlang.org/docs/serialization.html) | [kotlinx.serialization](https://github.com/Kotlin/kotlinx.serialization) |

Pre-conditions to confirm with the user

  • The source repo, on the chosen branch, actually contains the referenced .tree file and the docs path used in the checkout rules.
  • The origin/element-id match what the source repo's tree exposes.

Verify

  • Compile/lint the TeamCity DSL so the new root and registration are valid Kotlin: generate the configs (e.g. cd .teamcity && mvn -q teamcity-configs:generate, or the repo's configured DSL check).
  • Confirm docs/kr.tree remains valid XML and the new <include> resolves the expected origin/element-id.
  • Diff the result against the serialization reference shape — the change should touch the same six files and nothing else.

© JetBrains, 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

Files

Just SKILL.md in .claude/skills/add-writerside-doc-module of JetBrains/kotlin-web-site.

Open the folder on GitHubat commit 38512ff

Compare with similar skills

Add Writerside Doc Module 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.

Add Writerside Doc Module compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Add Writerside Doc Module this skillJetBrains/kotlin-web-site1.6k—~1.9kAutomated safety check: PassApache-2.0
Improve Code Coveragealexvanyo/composelife267—~1.1kAutomated safety check: PassApache-2.0
Reviewwoocommerce/woocommerce-android319—~600Automated safety check: NotesGPL-2.0
CodefmtAmplicode/spring-skills128—~595Automated safety check: PassNone
Kt Search Releasejillesvangurp/kt-search155—~1.2kAutomated safety check: PassMIT
Plan ReviewKenjiOhtsuka/harmonica131—~1kAutomated safety check: PassMIT

Similar skills

  • Improve Code Coverage

    alexvanyo/composelife

    Helps increment code coverage in this Kotlin Multiplatform project.

    267 GitHub stars~1.1k tokensUpdated today
    MobileAuto-check passed
  • Review

    woocommerce/woocommerce-android

    Review code changes against project architecture, style, and conventions

    319 GitHub stars~600 tokensUpdated today
    MobileAuto-check: notes
  • Codefmt

    Amplicode/spring-skills

    Reformat source code in this project using its own code-style settings — through the IntelliJ IDE when it's running, otherwise via the project's own formatter (Spotless / google-java-format /…

    128 GitHub stars~595 tokensUpdated 1 mo ago
    MobileAuto-check passed
  • Kt Search Release

    jillesvangurp/kt-search

    A skill your agent uses when the user wants to cut, publish, tag, or create a GitHub release for kt-search, especially when the task includes version bumping, validating that commits are pushed…

    155 GitHub stars~1.2k tokensUpdated 3 mo ago
    DevelopmentAuto-check passed
  • Plan Review

    KenjiOhtsuka/harmonica

    A skill your agent uses when reviewing the Harmonica restart plan against reality — after a phase PR or milestone merges, before proposing the next phase, or when asked "are the specs up to date" /…

    131 GitHub stars~1k tokensUpdated 18 days ago
    DatabasesAuto-check passed
  • Git GitHub Ops

    c5inco/compose-pokedexer

    Handles Pokedexer Git and GitHub workflows: inspect changes, prepare commit messages, manage branches and pushes, and create or update issues and pull requests with safe file-based inputs.

    143 GitHub stars~1.3k tokensUpdated 7 days ago
    DevelopmentAuto-check passed

More from JetBrains/kotlin-web-site

  • Add API Reference

    JetBrains/kotlin-web-site

    Official

    Publish a new kotlinx library API reference on kotlinlang.org/api via the TeamCity Kotlin DSL, the way kotlinx.coroutines, kotlinx.serialization, kotlinx-datetime and kotlinx-io are published.

    1.6k GitHub stars~5.3k tokensUpdated today
    Auto-check passed
  • Fix Frontend Review Comments

    JetBrains/kotlin-web-site

    Official

    Apply pull-request review comments to the frontend of kotlinlang.org (Next.js, React, TypeScript, CSS Modules under blocks/, components/, pages/, hooks/, utils/, test/).

    1.6k GitHub stars~444 tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Add Writerside Doc Module

What does Add Writerside Doc Module do?

Add a new external Writerside documentation source to kotlin-web-site via the TeamCity Kotlin DSL (as a sub-documentation source under KotlinWithCoroutines). Add Writerside Doc Module is an agent skill from JetBrains/kotlin-web-site, published by the product's own GitHub organization. Add a new external Writerside documentation source to kotlin-web-site via the TeamCity Kotlin DSL (as a sub-documentation source under KotlinWithCoroutines).

When should I use Add Writerside Doc Module?

Add Writerside Doc Module fits situations like: wiring a new Kotlin/ docs repo into the site; tasks that involve Android development.

How do I install Add Writerside Doc Module in Claude Code?

Run `npx skills add JetBrains/kotlin-web-site --skill add-writerside-doc-module -a claude-code`. Or copy the skill folder (.claude/skills/add-writerside-doc-module in JetBrains/kotlin-web-site) into .claude/skills/add-writerside-doc-module in your project. Claude Code loads it when a task matches its description.

How do I install Add Writerside Doc Module in Codex?

Run `npx skills add JetBrains/kotlin-web-site --skill add-writerside-doc-module -a codex`. Or copy the skill folder (.claude/skills/add-writerside-doc-module in JetBrains/kotlin-web-site) into .agents/skills/add-writerside-doc-module in your project. Codex loads it when a task matches its description.

Can I use Add Writerside Doc Module in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add JetBrains/kotlin-web-site --skill add-writerside-doc-module -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-writerside-doc-module, .gemini/skills/add-writerside-doc-module, .github/skills/add-writerside-doc-module and .opencode/skills/add-writerside-doc-module in your project.

What does Add Writerside Doc Module need to run?

Going by SKILL.md and its folder, Add Writerside Doc Module needs the command-line tools its instructions call (mvn).

Does Add Writerside Doc Module access the network?

SKILL.md names 2 domains. In commands or code: kotlinlang.org and github.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Add Writerside Doc Module safe to install?

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.

What licence does Add Writerside Doc Module use?

Add Writerside Doc Module 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.

How many tokens does Add Writerside Doc Module use?

About 1.9k tokens (SKILL.md is roughly 7.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Add Writerside Doc Module?

Skills that share tags, products or a category with Add Writerside Doc Module: Improve Code Coverage (alexvanyo/composelife, 267 stars), Review (woocommerce/woocommerce-android, 319 stars), Codefmt (Amplicode/spring-skills, 128 stars) and Kt Search Release (jillesvangurp/kt-search, 155 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Add Writerside Doc Module?

JetBrains (a GitHub organization, an official publisher) maintains it in JetBrains/kotlin-web-site, which has 1,625 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 9, 2026.

Source: JetBrains/kotlin-web-site on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.