Niteco Agent Kit

Your team's shared
AI toolbox

One place where Niteco keeps ready-made abilities for AI assistants like Claude Code and Cursor — branded presentations, document conversion, website checks, time tracking and more. You install them once, then simply ask your AI assistant in plain English. No coding required.

Get started in 3 steps I build skills
Start here

What is this repository?


A company recipe book for AI assistants — written once, shared by everyone. Here's the whole idea in one picture:

You no coding needed Your AI assistant Claude Code or Cursor niteco tool the librarian — fetch & install Shared collection private repo — Niteco only "ask in plain English" operates it for you your Niteco access = the key improvements flow back — always reviewed before they join (pull request) install once · then just ask · everyone shares the same, always-improving toolbox branded presentations PDF → text time tracking website checks

Skills — the recipes

Written instructions that teach an assistant one job, e.g. "build a Niteco-branded PowerPoint".

Bundles — the starter packs

Related skills installed together, like a meal kit — one install, matching versions.

The niteco tool — the librarian

Fetches, installs and updates skills. Your assistant operates it — you almost never touch it.

The collection also holds more technical pieces (rules, subagents, MCP servers, commands, hooks) — see For builders. Day to day, the three above are all you need.

The key skill

Meet niteco-agent-kit — the one skill that manages all the others


niteco-agent-kit is an app-store assistant living inside your chat: it finds, installs, updates and shares every other skill. You never memorize commands — just say what you want (right) and it runs the right niteco command behind the scenes.

👀 Shows before it acts
You see the install plan first — no surprises.

🔒 Your data survives updates
Settings & saved logins (.user/) are never touched.

❓ Asks, never guesses
Same skill in two places? It shows both and lets you pick.

"Find me a skill that converts PDF files to text."
Searches the catalog and lists matches with short descriptions (niteco search).
"Install the pptx-brand skill."
Shows what will be installed and where, then installs it (niteco resolveapply).
"Update all my skills."
Pulls the latest versions, backs up anything it replaces (niteco sync).
"I improved this skill — share it with the team."
Reviews the change and sends it back to the shared collection as a proposal (niteco contribute).
Setup — once

Get started in 3 steps


One-time setup, about two minutes. It really is just one command, then ask.

✔ Run it anywhere — not tied to a project ✔ No init, no setup wizard ✔ Works in Claude Code and Cursor
  1. Install the niteco tool Copy the line for your computer, paste it into your terminal (macOS: Terminal app · Windows: PowerShell), press Enter. It also connects you to the Niteco skill collection.
    macOS / Linux curl -fsSL https://niss.pages.dev/install.sh | bash
    Windows irm https://niss.pages.dev/install.ps1 | iex
  2. Open your AI assistant Claude Code or Cursor — whichever you use. Both work the same with this kit.
  3. Just ask A real first prompt colleagues use:
    "Do you see the niteco skills? Install them for me."
    Or: "Search the niteco skills for presentations". The assistant takes it from there.

The only thing the installer needs on your machine is git (most Niteco machines already have it). Access to the collection uses your normal Niteco account — if you can't connect, IT can grant access.

Everyday uses

What can I use it for, day to day?


Real examples from the collection. Each card shows what you'd type to your assistant — first to install the skill (once), then any time you need it.

Sales · Marketing · Anyone

Branded presentations

"Make me a Niteco-branded deck about our Q2 results."

Correct colors, fonts, logo rules and layouts — automatically.

Skills: niteco-pptx-brand + niteco-brand

Back office · Finance · HR

Documents & reports

"Write this up as a Niteco-branded Word report."

Word documents and PDFs that follow the brand guideline without you opening it once.

Skills: niteco-docx-brand, niteco-pdf-brand

Everyone

Unlock file contents

"Extract everything from this PDF / PowerPoint / Excel into text I can edit."

Turns locked binary files into clean text, tables and images you can reuse.

Skill: doc-to-markdown

Everyone

Time tracking

"Log 8 hours on project X for yesterday."

Talks to Niteco's effort-tracking system (et.niteco.se) so you don't have to click through it.

Skill: niteco-et

Marketing · QA

Website health checks

"Check our client's site for accessibility and performance issues."

Runs the same audits our engineers use — speed, accessibility, SEO, broken structure.

Skills: lighthouse-run, axe-run, sitemap, performance-auditor

Everyone

Stay up to date

"Sync my niteco skills."

Pulls the newest versions of everything you've installed. Your settings and logins survive every update.

Skill: niteco-agent-kit

Not sure if a skill exists? Just ask: "search the niteco skills for …". New skills are added by colleagues all the time — that's the point of sharing one collection.

Sharing back

Improved a skill? Share it — you can't break anything


Yes, it's real: you fix or improve a skill, tell your assistant to "contribute this back", and it goes to the team. And it's safe by design — nothing joins the shared collection without a human review.

You improve a fix, a note, an idea "contribute this back" Quality check automatic validation Pull request never straight to main Human review approve → merge merged → the whole company gets it on their next "sync my skills" worried about mistakes? this is the safety net — a wrong change is caught at review, not on everyone's machine
Asked by the team

"Can we have per-project skills?" — yes, two ways


Coding style, a client's brand, project-specific rules — things that belong to one project, not the whole company. Pick the option that matches how sensitive the content is:

Option A — keep it in the project repo

  • Skills travel with the project's own git repo — everyone on the project already has access.
  • Simplest option: clone the project, the skills are just there.

Option B — a separate team source

  • For sensitive content: a separate repo with its own access list, registered alongside corporate.
  • Builders: see Scaffold a new source & multiple sources — equal peers, no precedence.
Quick reference

Plain-English glossary & FAQ


Five words you'll meet

skillA recipe: written instructions that teach your AI assistant one job.
bundleA starter pack of related skills installed together, with one version number.
artifactThe umbrella word for anything shareable in the collection (skills, rules, etc.).
sourceA place skills come from. corporate is the main Niteco one; teams can add their own.
sync"Fetch the latest versions of everything." Safe to run any time.

Common questions

Do I need to be a developer?

No. After the one-time install, everything happens by chatting with your AI assistant in normal language. The technical work is done by the assistant and the niteco tool together.

Where do I run the install command — inside a project?

Anywhere. It's not tied to any project or folder — it installs the tool into your home directory once, for your whole machine.

Do I need to init or set up anything first?

No. It starts with that one install command. After that, open your assistant and ask — e.g. "do you see the niteco skills? install them". No init, no config files, no wizard.

How does "contributing back" actually work? Can I mess it up?

Edit the skill (or just describe the improvement), then tell your assistant to contribute it back. It runs a quality check and opens a pull request — a maintainer reviews before anything is shared. A mistake gets caught at review, not on everyone's machine. See the picture above.

Can we have skills just for our project (coding style, client brand)?

Yes — either check them into the project's own repo, or put them in a separate team source with its own access rights. Two ways, explained here.

Can an update break or erase my stuff?

Updates back up anything they replace, and your personal data (saved logins, preferences) lives in a protected .user/ folder that updates never touch.

Is this safe? Who can access these skills?

Only Niteco people. The collection lives in a private Azure DevOps repository, so your normal company sign-in is the key — no access rights, no skills. And nothing enters the shared collection unchecked: every change goes through a pull request that a maintainer reviews and approves first. Details in Trust & security.

What if the assistant finds the same skill in two places?

It will show you both options (with their versions) and ask which one you want. Nothing is ever picked silently.

I found a bug or have an idea — what do I do?

Tell your assistant. It can log the issue with the skill, and if you've improved something it will offer to contribute it back so the whole company benefits. Sharing back is how this collection grows.

Which AI assistants work with this?

Claude Code and Cursor are both fully supported — the kit automatically installs skills in the right format for each.

Part 2

For Builders

Everything below is for engineers who author, contribute, and maintain artifacts. Day-to-day users can stop reading here — you're all set.

Builder

The six artifact types


One repo, one CLI, six shareable shapes. The kit resolves the per-provider mapping for each — some copy verbatim, some transform, some merge into a shared config. _meta/docs/artifact-types.json is the authority.

TypeWhat it isSourceClaude CodeCursor
skillOn-demand instruction folderskills/<n>/copy → skills/copy → skills/
ruleAlways-on / path-scoped guidancerules/<n>.mdctransform → path-scoped skillnative rules/<n>.mdc
subagentDelegated task agentagents/<n>.mdcopy → agents/copy → agents/
MCP serverTool / data server configmcp/<n>.jsonmerge → .mcp.jsonmerge → mcp.json
commandSlash commandcommands/<n>.mdcopy → commands/copy → commands/
hookLifecycle automationhooks/<n>/merge → settings.jsonmerge → hooks.json

Metadata is inline: frontmatter for the prose artifacts (skill · rule · subagent · command), a sidecar meta.yaml for the config artifacts (MCP · hook). The bundle groups any of the six by path and holds the one authoritative version.

How an artifact activates depends on its type: skills & commands trigger on intent ("fetch this page", /review); rules are always-on or path-scoped; MCP servers & hooks are wired in as config & lifecycle — never invoked by name.

Builder

How the Agent Kit works


The niteco CLI does the deterministic, mechanical work — clone, cache, search, resolve. Your agent applies the resolved plan with the transforms each harness needs. The seam: the CLI resolves, the agent applies.

contribute back — niteco contribute → pull request (reviewed) User run any skill (e.g. pptx) search · install · sync Agent Claude Code / Cursor loads skills · drives the CLI applies the plan niteco CLI search · resolve · apply contribute deterministic — no rendering Remote sources git · private (ADO access) Azure DevOps + team .claude/ · .cursor/ installed artifacts Local cache ~/.niss · read-only mirror asks niteco search / resolve install plan (raw inputs) fetch / pull (git auth) artifacts read / write apply the CLI resolves · the agent applies bundles/*.json = the index — search & resolve start here; each artifact carries inline frontmatter (skill · rule · agent · command) or a sidecar meta.yaml (mcp · hook)
Builder · also useful for everyone

Trust & security model


The kit deliberately has no security system of its own — it rides on controls Niteco already operates. Two gates, both in Azure DevOps:

You + agent Gate 1 · READ ADO repo access right your git credentials clone the private repo no permission → no clone → no skills Gate 2 · WRITE pull-request review contribute → branch → PR → approval never a push to main · branch policies apply Shared collection use / sync contribute merge On your machine: installs are previewed · overwrites are backed up · secrets in .user/ never reach the LLM

Access = your ADO repo rights

  • The corporate source is a private Azure DevOps git repo. The first niteco sync clones it with your git credentials — that clone is the access gate.
  • No repo permission → no clone → no skills, no updates. Revoking someone's ADO access cuts them off at the next sync.
  • Team sources work the same way: each registered source is just another git repo guarded by its own repo permissions.
  • The CLI binary itself is public (niss.pages.dev, HTTPS) — it's useless without access to a source.

Changes = pull request, always

  • niteco contribute never pushes to main. It creates a feature branch and opens a PR in Azure DevOps.
  • A maintainer reviews and approves before anything joins the shared collection — same governance as production code.
  • The contribute flow runs a quality review first (validation, naming, bundle version bump) so PRs arrive clean.
  • Branch policies on the repo (required reviewers, build checks) apply unchanged — the kit adds nothing to bypass them.

Installs are inspectable & reversible

  • niteco resolve shows the full plan — every file, action, and destination — before anything is written; --dry-run previews with zero writes.
  • Every overwrite is backed up; installs are recorded in ~/.niss/installed.json; niteco doctor detects drift.
  • Your .user/ data (credentials, preferences) is preserved across every update.

Credentials never reach the LLM

  • Skill scripts read secrets from files in .user/ (chmod 700/600) — the agent passes file paths, never values.
  • Script output must not contain tokens or cookies — conversation history may be logged; a credential in context is a credential leaked.
  • Full policy: Authentication & credential security below.
Builder

Working with multiple sources


The corporate source is registered for you on install. Add your division's or team's repo alongside it — sources are unordered, with no precedence. Every source is indexed; the same artifact in two places is surfaced to you, never silently merged or shadowed.

Manage sources

# register a source (cloned on next sync)
niteco sources add <url> --name team --branch main
niteco sources list
niteco sources remove team

# pull latest from every source (+ CLI self-update)
niteco sync                 # all sources
niteco sync --source team

When an artifact lives in two sources

  • The CLI emits a source_decision — it never auto-picks
  • Each candidate carries a version + a differs flag (byte-compared)
  • Your agent surfaces the choice; you resolve with --source <name>
  • search / list flag cross-source hits as identical | differs

No precedence means no surprise overrides — a team source can't shadow corporate, and vice-versa.

Builder

Builder guides at a glance


AGENTS.md is the router — it carries the "which guide" table and the non-negotiables. Everything substantive lives under _meta/docs/:

AGENTS.mdThe router — "which guide" table + the three non-negotiables
conventionsThe location model (repo · cache · install · workspace), .user/ vs .session/, naming discipline
authoring-guideWrite for LLMs — imperative, explain why, standard structure
metadata-specFrontmatter fields + the bundle is the single source of version
provider-mappingHow each artifact maps to Claude Code vs Cursor install targets
artifact-typesThe 6 types: skill · rule · agent · mcp · command · hook
authenticationCredential isolation & token lifecycle — deep-dive below
parallelismScript vs agent concurrency, checkpoints — deep-dive below
multi-sourceMany sources, no precedence + scaffold a new source repo

Non-negotiables: metadata is inline (frontmatter for prose artifacts, a sidecar for MCP & hooks) · Claude Code & Cursor are both first-class · one version per bundle.

Builder

Artifact anatomy


Inline metadata (per artifact)

  • Frontmatter on the prose types — skill (SKILL.md), rule (.mdc), subagent & command (.md)
  • Sidecar meta.yaml for the config types — MCP (mcp/<n>.meta.yaml) & hooks (hooks/<n>/meta.yaml) carry name + description beside the pure-JSON config
  • name + "pushy" description + when_to_use. No version here. Frontmatter is read by the agent runtime (Claude, Cursor) and the niteco CLI; the sidecar feeds niteco search only — the runtime consumes the merged config, never the sidecar.

bundles/<name>.json (per bundle)

  • Reference manifest grouping any of the six types by path
  • Carries the authoritative version + cross-bundle deps
  • No niss.json — frontmatter / sidecar + bundles are the source.
# a skill — the flagship artifact
my-skill/
├── SKILL.md      # instructions + frontmatter (name, description, when_to_use)
├── scripts/      # optional executables
├── references/   # docs loaded on demand
└── assets/       # templates, icons

Progressive disclosure — three layers

  • Layer 1 — Metadata. Always in context (~100 words). Triggers loading.
  • Layer 2 — SKILL.md body. Loaded when triggered. Keep under 500 lines.
  • Layer 3 — Resources. scripts/, references/, assets/ — loaded on demand. Unlimited size.

Applies to skills — and to the skill a rule compiles to on Claude — to keep agent context lean.

Builder

Bundles as virtual boundaries


A bundle isn't just a version number — it's the unit you install to give an agent a coherent working context. Draw the boundary whichever way fits the install:

Project

Everything one project/repo needs — its skills + transforms + rules + MCP. One install onboards an agent to that project.

Stack / capability

Group by tech stack or capability — e.g. a web-audit stack: lighthouse · axe · crawlability · schema. Reusable across projects.

Combine

dependencies lets a bundle pull in other bundles, so large boundaries compose from small ones.

The version is per-boundary; dependencies compose boundaries. A skill can live in several bundles — the resolver dedupes by path, so boundaries may overlap freely.

Builder

How to contribute — always via pull request


Contribution is the default: the repo compounds when improvements flow back. But nothing lands directly — niteco contribute opens a reviewed PR in Azure DevOps, never a push to main.

  1. Scaffold from a template niteco new <type> <name> (skill · rule · agent · command · mcp · hook), or copy _meta/templates/<type>-template/.
  2. Author the artifact Imperative LLM instructions for the prose types; JSON config for MCP / hooks. name = kebab-case; pushy description + when_to_use.
  3. Add it to a bundle Reference the artifact from a bundles/<b>.json includes; bump the bundle version.
  4. Validate · niteco validate name == folder; referenced by a bundle; bundle refs resolve.
  5. Contribute · niteco contribute Quality review → feature branch → pull request. A maintainer approves before merge; repo branch policies apply.

Validation checklist

  • name matches the artifact path (folder for skill / hook, file for the rest)
  • Artifact referenced by at least one bundles/<b>.json
  • Bundle version bumped when behavior changes
  • when_to_use = natural-language trigger phrases
  • Description is "pushy" with synonyms & scenarios
  • No niss.json — frontmatter / sidecar + bundles only
# upload mechanics — branch + PR, never main
niteco contribute --bundle web-audit \
  --bump patch -m "fix axe selector" \
  --path skills/axe-run --push
Builder

Scaffold a new source


Stand up a division or team artifact repo that the niteco CLI treats as a first-class peer of corporate — same layout, no precedence. Access to it is governed the same way too: whoever can clone the repo can use it.

  1. Initialize the layout niteco init <dir> seeds skills/ rules/ agents/ mcp/ commands/ hooks/ bundles/ + _meta/docs/artifact-types.json + README.
  2. Add an artifact niteco new <type> <name> — scaffolds a skill / rule / agent with template frontmatter.
  3. Publish the repo git init & commit → push to Azure DevOps or GitHub; set branch policies / required reviewers there.
  4. Register it for your team niteco sources add <url> --name teamniteco sync.
# 1. create + seed a new source repo
niteco init my-team-skills
cd my-team-skills
niteco new skill my-first-skill

# 2. publish it
git init && git add . && git commit -m "init"
git remote add origin <url> && git push -u origin main

# 3. register alongside corporate
niteco sources add <url> --name my-team
niteco sync
Builder

Authoring principles


The prose artifacts — skill · rule · subagent · command — are written for an LLM, so they share one rulebook. MCP servers & hooks are config — they follow the JSON schema, not these prose rules.

Do

  • Write for an LLM, not a human reader
  • Use imperative: "Read the file" not "The file should be read"
  • Explain why — the model generalizes better than ALWAYS/NEVER
  • Include concrete examples and expected output formats
  • Define error paths: "If the file doesn't exist, tell the user and ask…"
  • One operation = one capability, with a distinct trigger

Don't

  • "Handle errors appropriately" — too vague
  • Write documentation-style prose
  • Exceed 500 lines — overflow to references/
  • Use weak descriptions that won't trigger the artifact
  • Forget to bump version on behavior changes
  • Use function names as triggers — use natural language
Builder — advanced

Where artifacts & data live


authoring · PRs · contribute back → the repo ① Repo Azure DevOps · git source of truth all authoring & PRs Cache ~/.niss sources · lock · backups · bin outside the provider dirs ② SKILL_ROOT ~/.claude/skills/ ~/.cursor/skills/ installed skill copies ③ <workspace> your project where skills run PRs target the repo sync install runs in skill folder writes .user/ persistent creds · prefs · cache survives updates feedback/ open-issues log ships with skill deleted when fixed .session/ ephemeral generated output reports · fetched pages · skill-update-notes.md gitignored — disposable / user-private committed — ships in the skill
Builder — advanced

Skills improve through use


Every skill carries a tiny feedback loop, so friction found in one run makes the skill better for the next — and the fix flows back to everyone.

  1. Capture On friction, a bug, or an idea, the skill logs a note to .session/<skill>/skill-update-notes.md (local, gitignored), workaround included.
  2. Check known issues Before improvising, it glances at the skill's shipped feedback/ for an open issue that already carries a workaround.
  3. Contribute back At end of run it persuades you to send useful notes upstream as an open issue, or an outright fix, via niteco contribute (a reviewed PR).

Two homes for feedback

  • .session/<skill>/ — local capture, disposable & gitignored
  • <skill>/feedback/shipped open-issues log; travels with the skill so a prior workaround helps the next run

An issue tracker, not an archive — the maintainer deletes an open issue once the fix lands.

Contribution is the default: the repo compounds when improvements flow back.

Builder — advanced

Authentication & credential security


LLM isolation — core principle

  • Scripts read credentials from files directly
  • The agent never sees secret values
  • Pass file paths as args, never credential values
  • Script output must not contain tokens or cookies

Agent conversation history may be logged or cached — credentials in context are credentials leaked.

Interactive login pattern

  • Agents can't handle stdin/TTY — no password prompts, no MFA
  • Guide the user to run login in their own terminal
  • Re-run preflight check to verify before continuing
# credential storage — per skill
<skill-dir>/.user/
├── cookie.txt    # session cookies
├── token.json    # OAuth/JWT tokens
├── api-key.txt   # API keys
└── prefs.json    # non-secret prefs

# dir: chmod 700 · files: chmod 600 — set immediately after writing

Token lifecycle

  • Session cookies — user re-login (interactive)
  • OAuth tokens — script-level refresh, no user interaction
  • API keys — long-lived, guide user to regenerate if revoked
  • Use distinct exit codes: exit 2 for auth vs exit 1 for other errors
Builder — advanced

Parallel execution & long-running tasks


Two levels of parallelism

  • Script-level — concurrency within one process (--concurrency 3). Best for batch ops against a single resource.
  • Agent-level — sub-agents via the Agent tool, each with its own context. Best for independent tasks across domains.

Max 5 concurrent sub-agents. One level deep — sub-agents don't spawn sub-agents.

Checkpoint & resume

  • Cache-hit pattern: check if output exists before processing. Re-run resumes automatically.
  • Write progress.json with status, progress count, errors
  • Background tasks: use run_in_background: true for 2+ min tasks

Decision matrix

Same domain batch I/OScript concurrency
Multi-domain batchSub-agents, one per domain
Many identical filesSub-agents, 2–3 per batch
< 10 itemsDon't parallelize

Timeout & retry

  • Per-item timeouts — don't let one stuck item block the batch
  • Exponential backoff: 1s → 2s → 4s, max 3 retries
  • 429/503 → retry. 404 → skip. 401/403 → stop, re-auth.
  • Collect failures, report once at the end

Start building


Improved something? Contribute it back with niteco contribute — a note, a fix, or a new artifact, reviewed via PR. The repo compounds when work flows back.

Where to start

  • AGENTS.md — the router; start here
  • _meta/docs/ — the guides (see the at-a-glance map)
  • _meta/templates/ — skill / rule / agent / command / mcp / hook / bundle
  • niteco init — scaffold your own source
  • niss.pages.dev — install + CLI / skill downloads
# Install the niteco CLI (macOS / Linux)
curl -fsSL https://niss.pages.dev/install.sh | bash

# Windows (PowerShell)
irm https://niss.pages.dev/install.ps1 | iex

# Then just ask your agent:
"search skills for scraping"
"install the sitemap skill"
"sync all my artifacts"
"contribute my skill"