orange-opensource/orange-boosted-bootstrap/javascript-conventions

Claude Code and agent skill by orange-opensource/orange-boosted-bootstrap

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

JavaScript coding conventions for OUDS Web. Use this skill when writing, editing, or reviewing any JS file in js/src/ or js/tests/. Covers no-semicolons style, no trailing commas, template literals, .js import extensions, no console.* in production, strict mode, and the BaseComponent pattern. All JS is shared across brands — never put JS in packages/<brand>/.

Install

npx vskill@latest install orange-opensource/orange-boosted-bootstrap/javascript-conventions

SKILL.md

JavaScript Conventions

Why these rules exist

OUDS Web uses a strict ESLint config (xo + unicorn) enforced in CI. All 15 JS components share the same conventions. JavaScript is 100% shared across brands — only CSS differs.


Style rules (ESLint-enforced)

RuleExample
No semicolonsconst x = 1 (not const x = 1;)
No trailing commas{ a: 1, b: 2 } (not { a: 1, b: 2, })
Template literals` Hello, ${name} (not "Hello, " + name`)
.js extension on importsimport Foo from './foo.js'
No console.* in js/src/Use event dispatching or throw
Strict mode'use strict' at top of every module
2-space indentConsistent with SCSS/HTML

Component structure (BaseComponent pattern)

javascript
'use strict'
import BaseComponent from './base-component.js'
import EventHandler from './dom/event-handler.js'
import { defineJQueryPlugin } from './util/index.js'
const NAME = 'myComponent'
const DATA_KEY = `bs.${NAME}`
const EVENT_KEY = `.${DATA_KEY}`
class MyComponent extends BaseComponent {
static get NAME() { return NAME }
static get Default() { return {} }
static get DefaultType() { return {} }
// Public methods
show() {
const event = EventHandler.trigger(this._element, `show${EVENT_KEY}`)
if (event.defaultPrevented) return
this._element.classList.add('show')
EventHandler.trigger(this._element, `shown${EVENT_KEY}`)
}
// Private methods prefixed with _
_handleClick(event) { /* ... */ }
static jQueryInterface(config) {
return this.each(function () {
const data = MyComponent.getOrCreateInstance(this)
if (typeof config === 'string') {
if (typeof data[config] === 'undefined') {
throw new TypeError(`No method named "${config}"`)
}
data[config]()
}
})
}
}
defineJQueryPlugin(MyComponent)
export default MyComponent

Key patterns

  • Static `NAME` getter — required for instance management
  • `data-bs-*` attributes — all config via HTML attributes, never inline handlers
  • Event constants — EVENT_SHOW, EVENT_SHOWN etc. with EVENT_KEY suffix
  • jQuery interface — always provide for backward compatibility
  • Register in entries — add to js/index.esm.js and js/index.umd.js

File locations

PurposePath
Component sourcejs/src/<name>.js
Utilitiesjs/src/util/
DOM helpersjs/src/dom/
Testsjs/tests/unit/<name>.spec.js
ESM entryjs/index.esm.js
UMD entryjs/index.umd.js

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
219
Repository forks
61
7-day trend score
27

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/orange-opensource/orange-boosted-bootstrap/javascript-conventions/badge)](https://verified-skill.com/skills/orange-opensource/orange-boosted-bootstrap/javascript-conventions)

Something wrong with this skill or its page? Tell us.