Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/drumfiend21-google-style-ts
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/google-style-ts
What's inside
- Skill name
google-style-ts- Description
- Auto-attaches when JS/TS files are touched. Injects the Google JavaScript and TypeScript style rules — naming, formatting, imports, types, JSDoc, required and forbidden patterns — so generated and edited code is born-compliant. Cites RUBRIC.yaml IDs and Google's published style guide anchors. Use this whenever writing or modifying .ts/.tsx/.js/.jsx code.
- License
- Apache-2.0
- Instructions
- 72 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Google JavaScript / TypeScript style — applied rules
You are editing JS/TS code. Every line you write must satisfy the
Google JavaScript Style Guide and the Google TypeScript Style Guide.
The full extract is in `docs/standards/google-js-ts-style.md`. The
machine-checkable subset is in `rubric/RUBRIC.yaml` (rules `g-ts-*`).
## Required patterns (must do)
- `const` by default, `let` only when reassignment is needed; **never** `var`. ([RUBRIC g-ts-003](../../rubric/RUBRIC.yaml), [jsguide#features-use-const-and-let](https://google.github.io/styleguide/jsguide.html#features-use-const-and-let))
- One variable per declaration: `let a = 1; let b = 2;` not `let a = 1, b = 2;`.
- `===` and `!==` always; the only exception is `== null` to catch both `null` and `undefined`. ([g-ts-005](../../rubric/RUBRIC.yaml), [tsguide#equality-checks](https://google.github.io/styleguide/tsguide.html#equality-checks))
- Throw `new Error(...)` (or a subclass) only — never strings, never plain objects. Always include `new`. ([g-ts-009](../../rubric/RUBRIC.yaml))
- `catch (e: unknown)`, narrow via `instanceof Error`. Empty `catch` blocks must carry a comment explaining why.
- Function declarations for named functions (`function foo() {}`); arrow functions for callbacks and expressions.
- `for…of` for arrays; `for…in` only on dict objects with a `hasOwnProperty` guard.
- Mark unchanged class fields `readonly`; prefer parameter properties: `constructor(private readonly svc: Svc) {}`.
- Initialize fields at declaration when possible.
## Forbidden patterns (must not do)
- `var`, `with`, `eval`, `new Function(string)`, `debugger;` in production code. ([g-ts-003, g-ts-004, g-ts-010](../../rubric/RUBRIC.yaml))
- `const enum`, `#privateField`, `public` modifier (except on parameter properties), `obj['foo']` to bypass visibility.
- Prototype manipulation, mixins, monkey-patching builtins.
- `new String/Boolean/Number/Symbol` wrapper instantiations.
- `Array(x1, x2, x3)` constructor — use `[x1, x2, x3]`.
- `+x` unary plus or `parseInt(x)` for base-10 — use `Number(x)` + `isFinite`.
- Default exports — always use named exports. ([g-ts-002](../../rubric/RUBRIC.yaml))
- `any` without an explicit suppression comment justifying it. Prefer `unknown` and narrow. ([g-ts-006](../../rubric/RUBRIC.yaml))
- Wrapper types `String`, `Boolean`, `Number`, `Object` — use lowercase primitives.
- `|undefined` in type aliases — use `?` optional fields.
- `<Foo>x` type assertion syntax — use `x as Foo`. Double-assert via `unknown`.
- Non-null assertion `!` without a justifying comment.
## Naming (g-ts-001)
| Kind | Style | Example |
|---|---|---|
| Class / interface / type / enum / decorator / type-param | UpperCamelCase | `class Request`, `interface Readable` |
| Variable / parameter / function / method / property / module alias | lowerCamelCase | `sendMessage`, `customerId` |
| Module-level immutable constants and enum members | CONSTANT_CASE | `const MAX_RETRIES = 3` |
| TS file names | snake_case | `import * as fooBar from './foo_bar'` |
| Acronyms in identifiers | Treat as words | `loadHttpUrl`, not `loadHTTPURL` |
No `_` prefix or suffix; no `IFoo` Hungarian; no `$` prefix (except framework requirements); one-letter names only in scopes ≤10 lines.
## Imports
- Use modules, not namespaces. No `///<reference>`, no `namespace Foo {}`.
- Named exports only (`export class Foo {}`); no `export default`.
- Type-only imports: `import type {Foo} from './foo';` or inline `import {type Foo, Bar} from './foo';`.
- Relative paths for same-project files; minimize `../../..`.
## Comments / JSDoc
- `/** … */` for documentation; `//` for implementation comments.
- Document every top-level export of a module. ([g-ts-011](../../rubric/RUBRIC.yaml))
- No type annotations in TS JSDoc (`@param {string}`, `@implements`, `@private`, `@override`, `@enum` — TypeScript syntax already conveys it).
- Method descriptions start with a third-person verb: "Computes…", "Returns…".
## Formatting (g-ts-012, delegated to Prettier with the Google preset)
2-space indent, 80-col wrap, single quotes, semicolons required, K&R braces, trailing commas where the closing bracket is on its own line.
## When you write or edit code
1. **Cite rule IDs** in the commit message body when you make a non-trivial style choice (e.g. "named export per g-ts-002").
2. **If you must violate** a rule (e.g. test fixture needs `any`), include a comment on the offending line: `// SUPPRESS g-ts-006: <reason>`.
3. **Run `bash rubric/runner.sh --diff --md`** before declaring done; resolve P0 findings, address P1 findings or justify them.
4. **Refuse changes that bundle reformatting + logic** — split into a pure-format CL first per Google eng-practices.From drumfiend21/claude-tdd-pro, Apache-2.0.
More from drumfiend21/claude-tdd-pro
- 0.474score
tdd-pro-bash32-portability
drumfiend21
macOS bash 3.2 + BSD-tool portability checklist for substrate writing in claude-tdd-pro.
SkillCFreshness: CClaude Code +9 - 0.474score
adr-writer
drumfiend21
Use when the user explicitly invokes /adr or asks to "record an architecture decision" / "write an ADR." Produces an MADR-format Architecture Decision Record.
SkillCFreshness: CClaude Code +9 - 0.474score
agent-continuity
drumfiend21
H-13 long-running agent harness continuity per §26 v1.11.
SkillCFreshness: CClaude Code +9 - 0.474score
bug-fix-discipline
drumfiend21
Use when the user reports a BUG (existing behavior is wrong) — phrases like "X breaks when Y", "this used to work", "got an error/exception/500"…
SkillCFreshness: CClaude Code +9 - 0.474score
failure-domain-log
drumfiend21
Use when a refusal fires, a bug recurs, the agent makes a mistake the user has to correct twice, or the user explicitly invokes /failure-log.
SkillCFreshness: CClaude Code +9 - 0.474score
google-style-py
drumfiend21
Auto-attaches when Python files are touched.
SkillCFreshness: CClaude Code +9 - 0.474score
ide-rules-export
drumfiend21
X-6 per §23 — one-way IDE rules export.
SkillCFreshness: CClaude Code +9 - 0.471score
tdd-pro-cl-workflow
drumfiend21
The per-CL workflow loop for developing the claude-tdd-pro plugin.
SkillCFreshness: CClaude Code +9 - 0.471score
local-llm
drumfiend21
Local-LLM fallback for cheap-operation routing — Ollama, llama.cpp, LM Studio.
SkillCFreshness: CClaude Code +9 - 0.471score
architect
drumfiend21
Interactive architecture elicitation.
SkillCFreshness: CClaude Code +9 - 0.471score
tdd-pro-batch-cl
drumfiend21
Substrate-touch CL batching convention for claude-tdd-pro.
SkillCFreshness: CClaude Code +9 - 0.471score
feature
drumfiend21
TDD green-phase implementer.
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- May 4, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/drumfiend21/claude-tdd-pro
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from drumfiend21
- 0.474score
google-style-py
drumfiend21
Auto-attaches when Python files are touched.
SkillCFreshness: CClaude Code +9 - 0.474score
ide-rules-export
drumfiend21
X-6 per §23 — one-way IDE rules export.
SkillCFreshness: CClaude Code +9 - 0.474score
adr-writer
drumfiend21
Use when the user explicitly invokes /adr or asks to "record an architecture decision" / "write an ADR." Produces an MADR-format Architecture Decision Record.
SkillCFreshness: CClaude Code +9 - 0.474score
bug-fix-discipline
drumfiend21
Use when the user reports a BUG (existing behavior is wrong) — phrases like "X breaks when Y", "this used to work", "got an error/exception/500"…
SkillCFreshness: CClaude Code +9 - 0.474score
agent-continuity
drumfiend21
H-13 long-running agent harness continuity per §26 v1.11.
SkillCFreshness: CClaude Code +9 - 0.474score
tdd-pro-bash32-portability
drumfiend21
macOS bash 3.2 + BSD-tool portability checklist for substrate writing in claude-tdd-pro.
SkillCFreshness: CClaude Code +9
Cite this page
google-style-ts skill. Agent Mart. https://agentmart.dev/skills/drumfiend21-google-style-ts (last updated 2026-10-24)