Skip to main content

tinker-doc

Writing, editing and reviewing documentation for the Apache TinkerPop project. Use when authoring or revising any content under docs/src/ — reference docs, recipes, tutorials, upgrade/release notes, provider and developer guides — or the CHANGELOG. Covers the TinkerPop documentation voice and the per-book style expectations, the executable Gremlin code-block pipeline, and AsciiDoc conventions. For building and validating code changes, see tinker-dev.

소스 정보

저장소
apache/tinkerpop
최근 소스 활동
2026년 9월 24일 21:09
감지된 SKILL.md 언어
영어
스타
2,146
포크
866

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
5 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
tinker-doc
description
Writing, editing and reviewing documentation for the Apache TinkerPop project. Use when authoring or revising any content under docs/src/ — reference docs, recipes, tutorials, upgrade/release notes, provider and developer guides — or the CHANGELOG. Covers the TinkerPop documentation voice and the per-book style expectations, the executable Gremlin code-block pipeline, and AsciiDoc conventions. For building and validating code changes, see tinker-dev.
license
Apache-2.0
compatibility
Documentation is AsciiDoc under docs/src/, never Markdown.
metadata
{"version":"1.0.0","project":"Apache TinkerPop"}
# TinkerPop Documentation Skill This skill is about the **craft** of TinkerPop documentation: getting the voice, audience, and shape of each kind of document right. The mechanics that keep the build green (executable code blocks, AsciiDoc wiring) are covered in the references and matter, but they serve the writing, not the other way around. All project documentation lives under `docs/src/` and is **AsciiDoc, never Markdown**. It is organized into several books, each with its own audience and purpose. The four directories under `docs/src/dev/` are themselves separate books, not one: | Book | Path | Audience | Purpose | |---|---|---|---| | Reference | `docs/src/reference/` | Users | The complete, authoritative description of every feature and step | | Recipes | `docs/src/recipes/` | Users | Reusable problem→solution patterns for real tasks | | Tutorials | `docs/src/tutorials/` | Users (learning) | Story-driven walkthroughs of a focused topic | | Upgrade | `docs/src/upgrade/` | Users (upgrading) | Announces what changed in a release and how to adapt | | Provider | `docs/src/dev/provider/` | Graph providers | Implementation guidance, provider policies, and the canonical Gremlin semantics | | IO | `docs/src/dev/io/` | Providers and advanced users | The serialization formats (GraphBinary, GraphSON, GraphML, Gryo) | | Developer | `docs/src/dev/developer/` | Contributors | Contributing, development environment, committer and release process | | Future | `docs/src/dev/future/` | Contributors | Design proposals for planned or possible changes | The full per-book voice guide, with grounded examples from the real docs, is in [references/books-and-voice.md](references/books-and-voice.md). Read it before writing in any book you have not written in before. The short version of each book's character: - **Upgrade** announces. It tells a feature's story — what changed and why it matters — and defers exhaustive detail to the reference docs via `See:` rather than cataloging every edge case itself. A typical entry is short: a paragraph or two and one example. It frames past shortcomings positively and treats breaking changes as a priority. - **Reference and Recipes** instruct. They are the focal point for correct usage and established patterns: complete, user-friendly, and formal. - **Tutorials** teach through a story but otherwise follow the Reference/Recipes style. - **Provider** documents internals in the Reference/Recipes style. The `gremlin-semantics.asciidoc` file is special and load-bearing (see below). - **IO** specifies the serialization formats in the same formal, complete style as Provider. - **Developer** docs are internal notes, instructions and standard processes for contributors. - **Future** holds design proposals for changes under consideration. ## House style (applies to every book) These rules hold across all documentation. Existing prose does not always obey them; write to the standard, not to the weakest nearby example. 1. **No em-dash or semicolon to break a sentence.** Prefer two separate sentences, or find a transition word that lets the thought flow. (This is a prose rule. Semicolons inside code, such as the `;[]` output-suppression idiom, are unaffected.) 2. **Formal means no first or second person.** Do not address the reader as "you" or speak as "I" or "we." Write about the subject, not about the author or audience. "The `coalesce()`-step evaluates..." not "You can use `coalesce()` to...". 3. **Prefer flowing paragraphs over lists.** Use a bulleted or numbered list only when it itemizes something clearly quantifiable, such as the members of an enumeration or a fixed set of options, each needing description. Do not use a list for open-ended or subjective points (for example, "the benefits of a traversal pattern"). Those belong in prose. 4. **Avoid hype and marketing language.** Describe what something does and why it matters in plain, positive terms. Let the capability speak for itself. ### The `llms-summary` attribute Every top-level section carries an `[llms-summary="..."]` attribute above its title. Its value is the one-line description that appears in the `llms.txt` discovery index, and it is what an AI agent reads to decide whether to open the page. Write it for that reader: one or two sentences, no more, self-contained and concrete about what the section covers so its scope is clear without opening it. Match the book's character — a recipe summary names the problem it solves, a reference summary names the feature it describes — and keep it factual, like the prose around it. The mechanics (how a summary makes a section its own Markdown page, the per-page size budget, `allow-oversize`) live in the Developer docs under Agent-Friendly Documentation, not here. ## Examples must be real and runnable TinkerPop documentation is unusual: most Gremlin examples are **executed at build time** against a real graph, and their output is inlined automatically. A block marked `[gremlin-groovy,modern]` is run against the modern toy graph and its output is filled in for you. Never invent or hand-write the `==>` output of such a block. The two graphs available to executable blocks are `modern` and `existing`. Use a bare `[gremlin-groovy]` block for setup that should run without a graph. When an example is purely illustrative and must *not* be executed (a hypothetical, an error case, console session text), use `[source,text]` or `[source,groovy]` instead. **Exception — upgrade documentation is always static.** Every example in `docs/src/upgrade/` is a hand-written `[source,groovy]` or `[source,text]` block, **never** an executable `[gremlin-groovy]` block, because an upgrade entry is a snapshot of behavior at a fixed point in history (often an old-vs-new comparison). This reverses the general rule above: in upgrade docs you **do** write the `==>` output by hand. "Static" does not mean "no output" — a static upgrade example should still show its results so the reader sees the payoff. If an upgrade example is missing its output, the fix is to write the output in, **not** to convert the block to executable. Do not be talked out of this by the rest of the docs being executable, and do not assume the upgrade book contains executable blocks — it does not. The authoring details — graph choice, output suppression, `<1>` callouts, and the multi-language story — are in [references/executable-blocks.md](references/executable-blocks.md). AsciiDoc structure (anchors, cross-references, section-title length limits for the TOC, the `x.y.z` version placeholder, per-book `index.asciidoc` wiring, admonitions, images) is in [references/asciidoc-and-wiring.md](references/asciidoc-and-wiring.md). ## The semantics document is load-bearing `docs/src/dev/provider/gremlin-semantics.asciidoc` is the canonical description of Gremlin's semantics. **It must be updated whenever Gremlin steps, the Gremlin grammar (`Gremlin.g4`), or the semantics code change in any way.** When adding to it, follow the patterns already established there for how a concept or step is documented rather than inventing a new structure. See [references/books-and-voice.md](references/books-and-voice.md#provider-documentation) for what those patterns are. ## Don't forget the changelog and upgrade docs Behavioral and API changes usually need more than reference updates: - **`CHANGELOG.asciidoc`** (repo root) gets a concise entry in the correct version section. One short clause, written for what the user will see on release day — the net user-facing change, from a usage perspective — not the implementation detail. Do not invent version numbers or release names. - The changelog is not a commit log. Not every commit earns an entry, and a feature built over many commits should have **one** entry, not one per increment. When extending an unreleased feature, fold the change into its existing entry rather than appending a new line; if a change has no user-visible effect, it needs no entry at all. - **Upgrade docs** get an entry for user-visible features and especially for breaking changes to public APIs or Gremlin semantics. A breaking change without clear migration guidance in the upgrade docs is incomplete.
GitHub에서 보기