# Does Nutlope/hallmark Have an Entry Point File Like `index.js` or `main.ts`?

> Discover if Nutlope/hallmark has an entry point file like index.js or main.ts. Learn about its skill-based architecture and primary AI entry point.

- Repository: [Hassan El Mghari/hallmark](https://github.com/Nutlope/hallmark)
- Tags: how-to-guide
- Published: 2026-08-18

---

**No, the hallmark repository does not contain a conventional [`index.js`](https://github.com/Nutlope/hallmark/blob/main/index.js), [`main.ts`](https://github.com/Nutlope/hallmark/blob/main/main.ts), or any top-level JavaScript/TypeScript entry point.** Instead, it uses a skill-based architecture where [`skills/hallmark/SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md) serves as the primary entry for AI coding assistants, while [`site/index.html`](https://github.com/Nutlope/hallmark/blob/main/site/index.html) and [`site/js/main.js`](https://github.com/Nutlope/hallmark/blob/main/site/js/main.js) power the static demo site.

The **hallmark** repository is a **design-skill package** built for AI coding assistants rather than a traditional Node.js application. This architectural choice shapes its entire directory structure. Understanding this distinction helps you navigate the codebase correctly and integrate it into your own projects.

## Why Hallmark Has No Root Entry Point File

Most Node.js repositories rely on [`index.js`](https://github.com/Nutlope/hallmark/blob/main/index.js) or [`main.ts`](https://github.com/Nutlope/hallmark/blob/main/main.ts) at the project root to expose their public API. Hallmark breaks this convention because it serves a fundamentally different purpose: it provides **design flows** that AI assistants can invoke through structured skill definitions.

The repository's [`package.json`](https://github.com/Nutlope/hallmark/blob/main/package.json) confirms this design. Rather than a `main` field pointing to a JavaScript module, it contains a **skill configuration**:

```json
{
  "skill": {
    "entry": "skills/hallmark/SKILL.md",
    "references": "skills/hallmark/references",
    "harnesses": ["claude-code", "cursor", "codex"]
  }
}

```

This skill object tells host applications exactly where to find the entry point for the Hallmark design engine—not in executable code, but in the **SKILL.md** documentation file.

## The Actual Entry Points in Hallmark

### Primary Entry: [`skills/hallmark/SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md)

The core skill definition resides in this Markdown file. AI assistants read it to discover available **verbs** (`audit`, `redesign`, `study`) and the design flows they trigger. When you import hallmark into a compatible AI coding environment, this file becomes the effective entry point.

### Demo Site Entry: [`site/index.html`](https://github.com/Nutlope/hallmark/blob/main/site/index.html)

For human users exploring the project, [`site/index.html`](https://github.com/Nutlope/hallmark/blob/main/site/index.html) serves as the **HTML entry point**. This static page demonstrates hallmark's capabilities in a browser environment. It loads supporting assets including [`site/js/main.js`](https://github.com/Nutlope/hallmark/blob/main/site/js/main.js), which contains client-side JavaScript for interactive elements like navigation toggles.

### Script Entry: [`package.json`](https://github.com/Nutlope/hallmark/blob/main/package.json) serve Script

The only runnable command defined in the repository starts a static HTTP server:

```bash

# Launch the demo site on port 4173

npm run serve

```

This script, defined in [`package.json`](https://github.com/Nutlope/hallmark/blob/main/package.json), uses Python's built-in HTTP server module to serve files from the `site/` directory. It does not execute any application logic from a root-level JavaScript file.

## How to Run and Consume Hallmark

### Running the Demo Site Locally

Since there's no [`index.js`](https://github.com/Nutlope/hallmark/blob/main/index.js) to execute directly, use the provided npm script:

```bash

# Clone and navigate to the repository

git clone https://github.com/Nutlope/hallmark.git
cd hallmark

# No dependencies to install for the demo

# Start the static server

npm run serve

```

After the server starts, visit `http://localhost:4173`. The browser loads [`site/index.html`](https://github.com/Nutlope/hallmark/blob/main/site/index.html), which in turn fetches [`site/js/main.js`](https://github.com/Nutlope/hallmark/blob/main/site/js/main.js) for interactive functionality.

### Consuming Hallmark as a Skill

If you're building an AI-coding assistant that supports skills, integrate hallmark by reading its skill configuration:

```json
{
  "skill": {
    "entry": "skills/hallmark/SKILL.md",
    "references": "skills/hallmark/references",
    "harnesses": ["claude-code", "cursor", "codex"]
  }
}

```

Your host application should parse [`skills/hallmark/SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md) to extract the design verbs and orchestrate the corresponding workflows. This **skill-first architecture** replaces the conventional package entry point pattern.

## Key File Reference

| File | Purpose |
|------|---------|
| [`package.json`](https://github.com/Nutlope/hallmark/blob/main/package.json) | Package metadata and `serve` script definition |
| [`site/index.html`](https://github.com/Nutlope/hallmark/blob/main/site/index.html) | HTML entry point for the demo site |
| [`site/js/main.js`](https://github.com/Nutlope/hallmark/blob/main/site/js/main.js) | Client-side JavaScript powering demo interactions |
| [`skills/hallmark/SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md) | Core skill definition for AI assistant integration |
| [`README.md`](https://github.com/Nutlope/hallmark/blob/main/README.md) | Documentation (no executable code) |

## Summary

- **No root entry point**: Hallmark deliberately omits [`index.js`](https://github.com/Nutlope/hallmark/blob/main/index.js), [`main.ts`](https://github.com/Nutlope/hallmark/blob/main/main.ts), or equivalent files at the project root.
- **Skill-based entry**: The [`skills/hallmark/SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md) file serves as the functional entry point for AI coding assistants.
- **Demo site entry**: Human users interact through [`site/index.html`](https://github.com/Nutlope/hallmark/blob/main/site/index.html) and [`site/js/main.js`](https://github.com/Nutlope/hallmark/blob/main/site/js/main.js).
- **No installable package**: The repository is designed to be **imported as a skill** rather than required as a dependency.

## Frequently Asked Questions

### Why doesn't hallmark have a traditional [`index.js`](https://github.com/Nutlope/hallmark/blob/main/index.js) file?

Hallmark is a **design-skill package** for AI assistants, not a reusable JavaScript library. Its purpose is to expose structured design workflows through Markdown-based skill definitions rather than programmatic APIs. The [`skills/hallmark/SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md) file fulfills the entry point role that [`index.js`](https://github.com/Nutlope/hallmark/blob/main/index.js) would serve in a conventional package.

### How do I run hallmark if there's no main entry point?

Use the **`npm run serve`** command defined in [`package.json`](https://github.com/Nutlope/hallmark/blob/main/package.json). This starts a static HTTP server that serves the demo site from the `site/` directory. The actual entry for this experience is [`site/index.html`](https://github.com/Nutlope/hallmark/blob/main/site/index.html), not a root-level JavaScript file.

### Can I import hallmark into my Node.js project?

Not through traditional `require()` or `import` statements. You **consume hallmark as a skill** by configuring your AI assistant host to read [`skills/hallmark/SKILL.md`](https://github.com/Nutlope/hallmark/blob/main/skills/hallmark/SKILL.md). Check your AI coding tool's documentation for skill support, as hallmark targets `claude-code`, `cursor`, and `codex` harnesses specifically.