Agent skill

Position Encoding

by pikax in pikax/verter

Position encoding, span types, coordinate systems, path normalization tables for Verter's multi-layer architecture (OXC, Rust, LSP, FFI, VS Code)

MITAuto-check passedDatabases

Install Position Encoding

skills CLI
$ npx skills add pikax/verter --skill position-encoding -a claude-code

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

GitHub CLI
$ gh skill install pikax/verter position-encoding --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/pikax/verter.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/position-encoding .claude/skills/position-encoding && 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
position-encoding
GitHub stars
112
Token cost
~4.6k tokens
SKILL.md length
2,063 words
Files
1
Skills in repo
14
Repo updated
First seen
Licence
MIT

At a glance

Position encoding, span types, coordinate systems, path normalization tables for Verter's multi-layer architecture (OXC, Rust, LSP, FFI, VS Code)

  • Works in 5 steps: All data crossing a serialization… → Inter-crate stored types prefer Span.… → RelativeSpan is 8 bytes, same as Span.… → …
  • Tasks that involve Database schema design
  • SKILL.md covers Typed Span Types (verter_span…, Typed Span Rules, Key APIs and CSS Variable Analysis Spans, plus 10 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Position Encoding is an agent skill from pikax/verter. Position encoding, span types, coordinate systems, path normalization tables for Verter's multi-layer architecture (OXC, Rust, LSP, FFI, VS Code)

Its SKILL.md is about 4.6k 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 Databases, covering Database schema design and React components. It works with Rust, Visual Studio Code and Vue.js. The repository describes itself as: Fast Rust-powered compiler, semantic extraction, and LSP for component frameworks. The licence is MIT.

When your agent uses it

  • Tasks that involve Database schema design
  • Tasks that involve React components

Example prompts

  • “/position-encoding”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. All data crossing a serialization boundary (serde, MCP, LSP custom protocol, FFI) MUST use Span (SFC-absolute). RelativeSpan…
  2. Inter-crate stored types prefer Span. Analysis snapshots, host results, diagnostic structs crossing crate boundaries use Span…
  3. RelativeSpan is 8 bytes, same as Span. Base offset lives in context (field on parent struct, function parameter). Value is compile-time…
  4. PartialGeneratedSpan → GeneratedSpan via resolution. Use PartialGeneratedSpan for raw TSGO byte offsets. After PositionMapper resolves SFC…
  5. PositionMapper is a STRICT in-run mapper (crates/verter_lsp/src/documents/position_map.rs). tsx_to_vue(TsPosition) -> Option and…

What it can do on your machine

Read from SKILL.md and the folder at commit e4f9d26. 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

    No scripts in the folder and no shell commands in SKILL.md.

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

  • Network

    No URLs in SKILL.md.

    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

Position Encoding loads about 4.6k tokens when it runs. Until then it costs about 41 tokens; SKILL.md has 2,063 words of instructions outside code blocks.

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

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 pikax/verter at commit e4f9d26, republished under its MIT licence (© pikax). 2,063 words, ~4,624 tokens.

Download SKILL.mdSave it as .claude/skills/position-encoding/SKILL.md (or your agent's skills folder).
name
position-encoding
description
Position encoding, span types, coordinate systems, path normalization tables for Verter's multi-layer architecture (OXC, Rust, LSP, FFI, VS Code)

Position Encoding & Path Normalization Reference

Typed Span Types (verter_span crate)

All Rust span types are defined in crates/verter_span/src/lib.rs. Each type enforces a specific coordinate system at compile time:

TypeMeaningSerde?Used Where
SpanSFC-absolute byte offsets [start, end)Yes (spanStart/spanEnd)Analysis types, diagnostics, CSS analysis, CodeTransform, Raw* template data, CSS variable spans
RelativeSpanByte offsets relative to a base stored elsewhereNoCSS scanner internals, OXC binding extraction (Binding.span)
PartialGeneratedSpanUnresolved position in generated output (TSX)NoTSGO response parsing before PositionMapper resolution
GeneratedSpanResolved mapping: generated position + SFC originNoTSGO diagnostics after resolution, codegen error mapping
Typed LSP / generated-TSX coordinate wrappers

Intra-process boundary newtypes (also in verter_span, no serde) used by the LSP PositionMapper and cross-file navigation stack. No From between source-side and generated-side types (no From<GeneratedByteRange> for SourceByteRange); LspPosition/TsPosition are distinct so a TSX position can never be passed where a Vue LSP position is expected.

TypeMeaning
SourceByteOffset / SourceByteRangebyte offset / [start,end) range into the original .vue source
GeneratedByteOffset / GeneratedByteRangebyte offset / [start,end) range into the generated TSX
GeneratedByteLenlength of a generated-TSX content region (content_offset domain)
SourceUtf16Offset / GeneratedUtf16OffsetUTF-16 code-unit offsets (source / generated)
LspPosition { line, character }0-based Vue source position, LSP-negotiated encoding (Vue side)
TsPosition { line, character }0-based generated-TSX position (TSX side)

Typed Span Rules

  1. All data crossing a serialization boundary (serde, MCP, LSP custom protocol, FFI) MUST use Span (SFC-absolute). RelativeSpan, PartialGeneratedSpan, GeneratedSpan don't implement Serialize/Deserialize — putting them in a serializable struct is a compile error. Convert with to_absolute(base) before serialization.
  2. Inter-crate stored types prefer Span. Analysis snapshots, host results, diagnostic structs crossing crate boundaries use Span. RelativeSpan is intra-crate only (CSS scanner, OXC binding extraction).
  3. RelativeSpan is 8 bytes, same as Span. Base offset lives in context (field on parent struct, function parameter). Value is compile-time type safety, not runtime data.
  4. PartialGeneratedSpan → GeneratedSpan via resolution. Use PartialGeneratedSpan for raw TSGO byte offsets. After PositionMapper resolves SFC origin, use partial.resolve(origin_span) to get GeneratedSpan. For display use generated_span.origin.
  5. PositionMapper is a STRICT in-run mapper (crates/verter_lsp/src/documents/position_map.rs). tsx_to_vue(TsPosition) -> Option<SourceMapped> and vue_to_tsx(LspPosition) -> Option<GeneratedMapped> return Some only when the query lies strictly inside ONE mapped token's run (the next token on the line starts strictly after the query). No cross-token extrapolation, no snap-to-closest-preceding fallback — unmapped/synthetic content (_ctx./$setup. prefixes), gaps, or bridging into the next token return None. Within-run character precision IS preserved (in-run offset added to the run's mapped start), but only inside a single mapped run. A range maps only when BOTH endpoints resolve inside the SAME compatibility component — runs are pre-labelled at construction with a component_id; two runs share an id only when linked by an unbroken chain of runs contiguous in BOTH generated AND source space (same-line adjacency, or the multiline line-wrap equivalent). Generated-side adjacency alone is NOT sufficient: generated output relocates/repeats source (MoveOriginal, repeated v-model emission), so two generated-adjacent but source-discontiguous runs are DIFFERENT components and do not compose — runs_compatible is then an O(1) component_id comparison. Endpoints are therefore coupled (same component), never mapped independently. Guard: crates/verter_lsp/tests/cases/position_mapper_strict.rs (behavioural — including the generated-adjacent-but-source-discontiguous discriminator — + static ban_cross_token_extrapolation).

Key APIs

  • Span::new(start, end) / RelativeSpan::new(start, end) / PartialGeneratedSpan::new(start, end)
  • RelativeSpan::to_absolute(base: u32) -> Span — add base offset
  • Span::to_relative(base: u32) -> RelativeSpan — subtract base offset
  • PartialGeneratedSpan::resolve(origin: Span) -> GeneratedSpan — resolve with SFC origin
  • GeneratedSpan::new(generated: Span, origin: Span) — create resolved mapping directly
  • slice(&self, source: &str) -> &str — on Span, RelativeSpan, PartialGeneratedSpan
  • From<oxc_span::Span> for both Span and RelativeSpan
  • LspPosition::new(line, character) / TsPosition::new(line, character); SourceByteRange::new(..) / GeneratedByteRange::new(..) (typed LSP/TSX coordinate wrappers)
  • No From conversions between span types, nor between source-side and generated-side coordinate wrappers — type safety enforced at compile time

CSS Variable Analysis Spans

All CSS variable span fields use SFC-absolute Span:

TypeFieldMeaning
AnalyzedCustomPropertyname_spanSpan of --name in declaration
AnalyzedCustomPropertyvalue_spanSpan of the value text after :
CssVarReferencespanSpan of entire var(...) expression
CssVarReferencename_spanSpan of variable name within var()
CssVarFallbackspanSpan of fallback text within var()
CssVarManipulationspanSpan of DOM API call expression (e.g., setProperty(...))

Spans computed as content_offset + local_offset during CSS scanning, where content_offset is SFC-absolute byte offset of <style> block content start. For script-side CssVarManipulation, spans come from OXC adjusted by script block's SFC offset.

Position Encoding Layers

LayerOffset FormatLine/Col BaseDescription
oxc_spanUTF-8 byte offset, relative to parse startN/A (byte offsets only)OXC parser spans are byte offsets from start of parsed source text
verter SpanUTF-8 byte offset, absolute for the documentN/A (byte offsets only)All stored Rust spans (span fields in analysis types, CodeTransform positions) are byte offsets from start of SFC source
verter RelativeSpanUTF-8 byte offset, relative to a baseN/A (byte offsets only)CSS scanner internals (relative to style content start), OXC bindings (relative to expression start)
PositionResolverN/A1-based line, 1-based UTF-16 columncursor/position.rs — returns 1-based. Subtract 1 before passing to source maps or LSP
Source mapsN/A0-based line, 0-based columnVLQ-encoded. source_map.rs converts from PositionResolver via (line - 1, col - 1)
LSP ProtocolNegotiated (UTF-8/UTF-16/UTF-32)0-based line, 0-based characterPosition { line: 0, character: 0 } = first char. LineIndex handles conversion
VS Code APIUTF-16 code units0-based line, 0-based characternew Position(0, 0) = first char. Matches LSP UTF-16
verter_ffiUTF-16 code unitsN/A (byte offsets only)NAPI/WASM boundary always communicates in UTF-16 offsets. Reference: crates/verter_ffi/src/convert.rs:byte_offset_to_utf16()
verter_lspNegotiated encoding (UTF-8, UTF-16, or UTF-32)0-basedLSP negotiates encoding with client during initialize(). All positions use negotiated encoding

Line/Column Base Rules (CRITICAL — off-by-one bugs)

  • PositionResolver is 1-based (cursor/position.rs): offset_to_line_and_col() and offset_to_line_col() return (1-based line, 1-based column). Always subtract 1 before passing to source maps or LSP.
  • Source maps are 0-based: VLQ segments use 0-indexed lines and columns.
  • LSP is 0-based: Position { line: 0, character: 0 } is the first character.
  • VS Code is 0-based: new Position(0, 0) is the first character.
  • OXC/verter spans are byte offsets — no line/column, no base conversion needed.

LSP Position Encoding Negotiation

  1. Server reads capabilities.general.positionEncodings from client during initialize()
  2. Server picks best encoding: prefer UTF-8 (no conversion needed) > UTF-32 > UTF-16 > default UTF-16
  3. Server announces selected encoding in ServerCapabilities.position_encoding
  4. All LSP positions (standard and custom protocol) use the negotiated encoding

CRITICAL: The negotiated encoding MUST be used everywhere that produces LSP positions (diagnostics, hover ranges, completion positions, etc.). This includes SyncCoordinator which publishes diagnostics after typing stops — it shares the encoding via Arc<RwLock<PositionEncodingKind>> with the server. Default is UTF-16 (per LSP spec) until initialize() negotiates.

Rust-internal code should prefer UTF-8 byte offsets. LSP boundary code must convert to negotiated encoding. JS/VS Code always uses UTF-16.

Standard LSP positions (line:character): handled by LineIndex in documents/line_index.rs. Custom protocol data (analysis spans): converted at LSP boundary before serialization.

Two index shapes, one conversion implementation. verter_type_runtime::codec exposes an owning LineIndex (copies the source; for an index stored beyond the buffer's life, e.g. the per-document index in documents/mod.rs) and a borrowing SourceIndex<'a> (owns only the line-start table). Both delegate to the same private conversion core, so they cannot disagree about an encoding, a bound check, or a clamp. A caller converting more than one position against one immutable source — a diagnostic pull, a semantic-token stream, an inlay-hint or highlight batch, a rename/code-fix batch, a span's two endpoints — builds ONE SourceIndex and converts every endpoint through it; the per-call convenience functions rescan the source each time. A response whose endpoints span several target files (definition/references locations, rename and code-action edits) resolves each distinct target's content (snapshot, then disk) and indexes it once, through contents_snapshot::{with_target_index, convert_per_target}; results keep the response order.

Each index offers both conventions explicitly: clamped_position_to_offset fails OPEN (out-of-range clamps to EOF — the navigation-sentinel default) and checked_position_to_offset fails CLOSED (rejects a past-EOF line, a column past the line's end, and a column inside a surrogate pair). Edit-applying and secondary-link paths must use the checked converter; a clamped wrong offset corrupts a file or forges a bogus "see declaration" link at EOF.

Show full SKILL.md (780 more words)Show less

Encoding Conversion Reference

BoundaryPatternReference Implementation
Rust internal → NAPI/WASMbyte_offset_to_utf16()crates/verter_ffi/src/convert.rs:281
Rust internal → LSP clientNegotiated encoding conversioncrates/verter_lsp/src/documents/mod.rs
LSP Position → byte offsetLineIndex::position_to_offset()crates/verter_lsp/src/documents/line_index.rs
Byte offset → LSP PositionLineIndex::offset_to_position()crates/verter_lsp/src/documents/line_index.rs
Provider response batch → byte offsetsOne SourceIndex per source snapshot, reused for every endpointcrates/verter_type_runtime/src/codec.rs
Multi-file provider response → byte offsetsOne content resolution + index per distinct targetcrates/verter_type_runtime/src/contents_snapshot.rs
TSGO response range → byte offsetsparse_range_to_offsets() (navigation, clamped) / parse_range_to_offsets_strict() (edits, checked) over the batch indexcrates/verter_type_runtime/src/tsgo/ipc.rs
tsserver response → byte offsettsserver_pos_to_byte_offset_indexed() (clamped) / tsserver_pos_to_byte_offset_checked() (edits) over the batch index; 1-based wire positionscrates/verter_type_runtime/src/tsserver/ipc.rs

VS Code Extension

VS Code negotiates UTF-16. Analysis offsets arrive as UTF-16 code units from file start. JS string indexing is UTF-16 native, so source.charCodeAt(offset) and source.length work directly. Use shared utf16OffsetToPosition() from packages/vue-vscode/src/utils.ts.

TSGO Integration

TSGO processes generated TSX which is always ASCII. For ASCII: byte offset == UTF-16 offset == UTF-32 offset. position_to_offset()/offset_to_position() in ipc.rs treat character as byte offset within line — correct for ASCII. Diagnostics from publishDiagnostics must resolve LSP positions to byte offsets using TSX content cache.


Path Normalization

All file paths stored internally in canonical ID format. Normalization at entry boundaries (receiving paths); denormalization at exit boundaries (sending paths to external systems).

Canonical ID Format

RuleExample
Forward slashes onlyc:/Users/dev/App.vue (never c:\Users\dev\App.vue)
Lowercase Windows drivec:/Users/... (never C:/Users/...)
No query stringsApp.vue (not App.vue?vue&type=script)
No virtual suffixesApp.vue (not App.vue._VERTER_.bundle.ts)
UTF-8, no percent-encoding/home/user/my project/App.vue (not my%20project)

Entry Boundaries (External → Canonical)

SourceFunctionLocation
LSP client URIuri_to_canonical_id_from_str()verter_lsp/src/documents/mod.rs
File system / bundler pathcanonicalize_id()verter_session/src/id.rs
Bundler plugingenerateComponentId()packages/unplugin/src/core/compiler.ts
CLI argspath_to_file_uri()verter_lsp/src/main.rs
Pinned tool path (same-file identity, rule 5)normalize_tool_path()verter_dx_baseline/src/provider.rs

Exit Boundaries (Canonical → External)

TargetPatternLocation
LSP client (file URI)file:/// + canonical IDverter_lsp/src/features/definition.rs
TSGO type providerpath_to_file_uri()verter_lsp/src/main.rs
File I/Ostd::path::Path::new(canonical_id)OS handles both / and \ on Windows

Implementation Rules

  1. Receive → normalize immediately: Every path entering passes through canonicalize_id() or uri_to_canonical_id_from_str() before storage or comparison
  2. Store only canonical: All maps, caches, analysis types use canonical IDs as keys
  3. Send → denormalize at the boundary: Convert back to file:// URIs or OS paths only when sending to external systems
  4. Never compare raw paths: Always compare canonical IDs, never raw OS paths or URIs
  5. Same-file questions need IDENTITY, not spelling: canonical-ID equality is spelling equality. canonicalize_path (verter_span/src/path.rs) is pure string normalization — slashes, drive case, //?/ prefix, trailing slash — and never touches the filesystem, so it cannot reconcile two canonical spellings of ONE file. When a comparison asks "is this the SAME FILE" (tool-root pinning, artifact identity, dedup), resolve the filesystem identity at the entry boundary — through NativeFs::realpath (verter_workspace/src/native_fs.rs), the workspace's single disk boundary, degrading to string canonicalization when the path does not exist — and keep the comparison a pure == on the internal form. Resolving inside the comparison instead is a rule violation: it reintroduces normalization downstream of the boundary, where rule 2 says only canonical values live. Reaching for std::fs::canonicalize directly is also a violation of a different rule — the no_std_fs_outside_native_fs_or_allow_list / vfs_boundary_is_authoritative guards — and realpath already returns its result through canonicalize_path (so the Windows //?/ prefix is stripped) and memoizes per path.
Why rule 5 exists

A pnpm workspace routinely gives one file several canonical spellings: packages/<pkg>/node_modules/<dep> is a symlink into node_modules/.pnpm/<dep>@<ver>/…, so the same tsserver.js is reachable both package-locally and through the store. Two spellings, one file, and string canonicalization equates neither.

This is also a platform-asymmetric trap, so it fails only in CI: the DX baseline pinned its tool root by the package-local spelling while discovery reported the store realpath, and baseline_tool_root_mismatch fired on every Linux run while Windows passed. Anything that compares "did I get the file I pinned" is exposed — and a spelling comparison is not merely weaker, it is wrong in both directions.

Identity resolution does not loosen a strictness gate: two genuinely different files still resolve apart. What it removes is a false negative on one file under two names. Where a gate must stay faithful to what a shipped component passes (e.g. the harness advertising the same --tsdk the VS Code extension passes), keep advertising the spelled path and resolve identity on the comparison's ingress instead — do not rewrite what is advertised.

The asymmetry cuts both ways in fixtures, too. tempfile::tempdir() hands back the temp path as spelled, and on macOS /var is a symlink to /private/var (as is /tmp on some Linux distros). A test that compares an identity-resolved output against an unresolved temp spelling passes only where the platform's temp root happens to be symlink-free. Resolve the fixture root ONCE up front and build every fixture path below it (real_temp_root in verter_dx_baseline/src/provider_tests.rs, the same shape native_fs.rs's own tests use); build the symlink explicitly when the symlinked spelling is the thing under test.

© pikax, MIT. 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/position-encoding of pikax/verter.

Open the folder on GitHubat commit e4f9d26

Compare with similar skills

Position Encoding 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.

Position Encoding compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Position Encoding this skillpikax/verter112—~4.6kAutomated safety check: PassMIT
Security Stancefjrevoredo/mini-diarium308—~11kAutomated safety check: PassMIT
Reactflow Workflowveloxbase/veloxdb646—~897Automated safety check: PassMIT
Any Tdf Developmentany-tdf/any-tdf779—~1.1kAutomated safety check: PassMIT
Typescript Styletjx666/vscode-mcp106—~961Automated safety check: PassCustom licence
Add Tauri Commanddevlint/GitWand180—~1.5kAutomated safety check: PassMIT

Similar skills

  • Security Stance

    fjrevoredo/mini-diarium

    Mini Diarium's opinionated security, encryption, and privacy stance.

    308 GitHub stars~11k tokensUpdated today
    DatabasesAuto-check passed
  • Reactflow Workflow

    veloxbase/veloxdb

    Build and harden React Flow diagram surfaces in VeloxDB using @xyflow/react patterns (nodes, edges, viewport, controls, interactions, performance).

    646 GitHub stars~897 tokensUpdated 7 days ago
    Frontend & DesignAuto-check passed
  • Any Tdf Development

    any-tdf/any-tdf

    Guide implementation, fixes, reviews, documentation, generation, and validation in the Any TDF monorepo across the shared core, STDF/Svelte, RTDF/React, VTDF/Vue, demos, sites, tooling, AI skill…

    779 GitHub stars~1.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Typescript Style

    tjx666/vscode-mcp

    TypeScript code style and repo conventions for VSCode MCP — inference vs explicit types, ESM import suffixes, zod schema contracts, async VSCode/Node APIs, JSON-safe IPC results, JSDoc for public…

    106 GitHub stars~961 tokensUpdated 2 mo ago
    DevelopmentAuto-check passed
  • Add Tauri Command

    devlint/GitWand

    A skill your agent uses when the user wants to expose a Rust feature to the Vue frontend, add a Tauri IPC command, invoke something from a Vue component, or wire up any backend/frontend…

    180 GitHub stars~1.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Calcpad Web Frontend Developer

    imartincei/CalcpadCE

    Expert developer for Calcpad.Web/frontend - the TypeScript/Vue 3 frontend monorepo.

    110 GitHub stars~1.1k tokensUpdated today
    Frontend & DesignAuto-check: notes

More from pikax/verter

All 14 skills in this repo
  • Debug Tooling

    pikax/verter

    In-process backtrace watchdog + LLDB attach wrapper + release-dbg profile for diagnosing hangs and slow paths in Verter benches and binaries on Windows / macOS / Linux.

    112 GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Agent Prompts

    pikax/verter

    Generate copy-pasteable prompts for driving separate Claude Code sessions through refactor, review, or migration work.

    112 GitHub stars~5k tokensUpdated today
    Auto-check: warnings
  • Build dependency chains, rebuild sequences, profiling with MCP, and Analysis MCP server setup for Verter

    112 GitHub stars~4.3k tokensUpdated today
    Auto-check passed
  • Compiler Codegen

    pikax/verter

    Rust compiler pipeline, template codegen (VDOM/IDE), CodeTransform, cached directives, strict slots, IDE error recovery, style preprocessing, CompileTarget, compiler authority/policy/demand/admission

    112 GitHub stars~21k tokensUpdated today
    Auto-check passed
  • CTO/manager-of-managers methodology for autonomous multi-train plans where the user says "you are the MoM/CTO", "orchestrate the whole plan", "drive the migration end-to-end", "manager-of-managers"…

    112 GitHub stars~3.5k tokensUpdated today
    Auto-check passed
  • Rust Performance

    pikax/verter

    Rust performance optimization patterns: batch operations, allocation hierarchy, object pooling, CodeTransform API for vertercompiler

    112 GitHub stars~2.8k tokensUpdated today
    Auto-check passed

Questions about Position Encoding

What does Position Encoding do?

Position encoding, span types, coordinate systems, path normalization tables for Verter's multi-layer architecture (OXC, Rust, LSP, FFI, VS Code). Position Encoding is an agent skill from pikax/verter.

When should I use Position Encoding?

Position Encoding fits situations like: tasks that involve Database schema design; tasks that involve React components.

How do I install Position Encoding in Claude Code?

Run `npx skills add pikax/verter --skill position-encoding -a claude-code`. Or copy the skill folder (.claude/skills/position-encoding in pikax/verter) into .claude/skills/position-encoding in your project. Claude Code loads it when a task matches its description.

How do I install Position Encoding in Codex?

Run `npx skills add pikax/verter --skill position-encoding -a codex`. Or copy the skill folder (.claude/skills/position-encoding in pikax/verter) into .agents/skills/position-encoding in your project. Codex loads it when a task matches its description.

Can I use Position Encoding 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 pikax/verter --skill position-encoding -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/position-encoding, .gemini/skills/position-encoding, .github/skills/position-encoding and .opencode/skills/position-encoding in your project.

What does Position Encoding need to run?

SKILL.md names no scripts, command-line tools or credentials: Position Encoding is instructions for the agent only.

Does Position Encoding access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Position Encoding 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 Position Encoding use?

Position Encoding is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Position Encoding use?

About 4.6k tokens (SKILL.md is roughly 18k 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 Position Encoding?

Skills that share tags, products or a category with Position Encoding: Security Stance (fjrevoredo/mini-diarium, 308 stars), Reactflow Workflow (veloxbase/veloxdb, 646 stars), Any Tdf Development (any-tdf/any-tdf, 779 stars) and Typescript Style (tjx666/vscode-mcp, 106 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Position Encoding?

pikax (a GitHub user) maintains it in pikax/verter, which has 112 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 8, 2026.

Source: pikax/verter on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.