npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@lucasfelipe23/specway

v1.6.0

Published

Agent-ready starter kit: spec-driven + TDD methodology with discoverable skills and a consistency checker.

Readme

Specway — Spec-Driven + TDD Methodology

npm License: MIT Methodology AI Ready Status

Um kit de partida para projetos de software com metodologia integrada de engenharia de requisitos, desenvolvimento orientado a especificações e TDD.

Metodologia

Este Specway implementa um fluxo completo de engenharia de software:

IDEA BRUTA
  → LEVANTAMENTO (gather-requirements: User Stories, Use Cases, Job Stories, BDD)
    → ANÁLISE (MoSCoW, stakeholders, riscos, dependências)
      → ESPECIFICAÇÃO (specs em .specs/changes/)
        → TDD (Red → Green → Refactor)
          → ARQUIVO (specs completas em .specs/archive/)
        ↙
MEMÓRIA (clean-code.md, component-catalog.md)
CONSISTÊNCIA (check-consistency pré-commit)

Pilares

| Pilar | Descrição | |---|---| | Requirements Engineering | Levantamento e análise de requisitos antes de qualquer código | | Spec-Driven Development | Toda mudança passa por um documento de especificação | | Test-Driven Development | Testes escritos antes da implementação (Red → Green → Refactor) | | ADR (Architecture Decision Records) | Decisões de arquitetura documentadas e rastreáveis | | Clean Code | SOLID, métricas e anti-padrões definidos em .specs/memory/clean-code.md | | Reusable Catalog | Catálogo vivo de componentes reutilizáveis em .specs/memory/component-catalog.md | | Consistency | Validação automática de skills e convenções via check-consistency | | AI-Agent Friendly | Estrutura otimizada para agentes de IA via AGENTS.md e skills |

Uso Rápido

0. (Mais rápido) Via CLI, sem clonar

Sem clonar nada, rode a CLI direto do NPM (o npx baixa o pacote e copia os arquivos para o diretório atual):

npx @lucasfelipe23/specway init      # novo projeto (scaffold + CHANGELOG limpo + tooling)
npx @lucasfelipe23/specway scan      # projeto existente: sobrepõe sem clobber
npx @lucasfelipe23/specway upgrade   # projeto que já usa a metodologia: aplica só o delta
npx @lucasfelipe23/specway check     # roda os checks de consistência aqui

A CLI faz a parte determinística (copiar templates, resetar CHANGELOG, atualizar tooling, regenerar o índice, carimbar a versão); depois você roda a skill correspondente (init-project / scan-project / upgrade-methodology) para a parte de julgamento (stack, memória, merges). Fixe uma versão com @X.Y.Z para builds reprodutíveis. Ela nunca executa passos outward-facing (git, releases).

1. (Recomendado) One-shot com skill

Diga ao seu agente de IA: "criar novo projeto" ou "create new project"

A skill create-project faz tudo automaticamente: clona o repositório do Specway, limpa o .git, e inicia o bootstrap interativo com as 9 perguntas da stack. Nenhum comando manual necessário.

2. (Alternativo) Clone manual

git clone https://github.com/lucasfelipe24/specway.git meu-projeto
cd meu-projeto
rm -rf .git
git init

Diga ao seu agente de IA: "start project" ou "iniciar projeto"

A skill init-project fará 9 perguntas sobre sua stack (shell, frontend, backend, banco, testes, cobertura, linguagem, package manager) e preencherá os templates automaticamente.

Projeto já existente? Adote a metodologia

Se você já tem um projeto com código, não use create-project/init-project (são para projeto novo). Dentro do repositório existente, diga: "scan project" ou "adopt methodology".

A skill scan-project detecta sua stack (sem perguntas cegas), traz os arquivos da metodologia sem sobrescrever nada do projeto, rascunha os documentos de memória a partir do seu código real (convenções, catálogo de componentes, schema, ADR da stack) e registra um baseline de cobertura forward-only (TDD obrigatório só para mudanças novas).

Já usa a metodologia? Atualize para a versão mais nova

Se o projeto já adotou a metodologia e você quer só as melhorias mais recentes (novas skills, templates, regras do checker, páginas de memória), não rode scan-project de novo. Diga: "atualizar metodologia" ou "upgrade methodology".

A skill upgrade-methodology é versão-aware: compara a versão da metodologia do projeto (.specs/config.md## Methodology Version) com a do Specway e aplica apenas o delta, de forma não-destrutiva — adiciona o que falta, atualiza o tooling do kit, e anexa (sem sobrescrever) as novas seções aos docs do projeto. Veja o changelog de estrutura em METHODOLOGY.md## Methodology Versions.

3. Comece a desenvolver

Diga ao agente: "levantar requisitos" para iniciar o levantamento com a skill gather-requirements, ou "mudança rápida" para o caminho leve.

Estrutura de Diretórios

├── .claude/
│   ├── settings.json               # Hook SessionStart: "onde paramos" (Claude Code; opencode ignora)
│   └── skills/                     # Skills (descobertas por opencode E Claude Code)
│       ├── INDEX.md                # Catálogo gerado (name + purpose de cada skill)
│       └── <nome>/SKILL.md         # Uma pasta por skill, com frontmatter name+description
│
├── bin/
│   └── specway.mjs               # CLI: init | scan | upgrade | check (npx, sem clonar)
│
├── scripts/
│   ├── check-consistency.mjs       # Validador determinístico (roda no CI)
│   ├── update-skills-index.mjs     # Gera .claude/skills/INDEX.md a partir das skills
│   ├── session-context.mjs         # Resumo "onde paramos" (log + specs ativos)
│   ├── cut-release.mjs             # Prepara release (corta CHANGELOG; não taggea)
│   └── update-changelog.mjs        # Gera changelog a partir do archive (idempotente)
│
├── .github/workflows/consistency.yml  # CI: valida skills + changelog em cada push/PR
│
├── .specs/
│   ├── config.md                  # Fonte única de constantes (URL, stacks, defaults, formato de skill)
│   ├── requirements/              # Documentos de levantamento e análise
│   │   └── <nnn>-<slug>/
│   │       └── requirements.md
│   ├── changes/                   # Specs ativas (implementação)
│   │   └── <nnn>-<slug>/
│   │       ├── spec.md
│   │       └── alignment-review.md # Veredito semântico spec↔requisitos (gate de archive)
│   ├── templates/                 # Templates reutilizáveis
│   │   ├── requirements-spec.md   # Template de requisitos (15 seções)
│   │   ├── feature-spec.md        # Template de feature
│   │   ├── bugfix-spec.md         # Template de bugfix
│   │   ├── migration-spec.md      # Template de migração
│   │   ├── test-spec.md           # Template de cobertura de testes
│   │   └── changelog-template.md  # CHANGELOG.md limpo (reset no bootstrap do projeto)
│   ├── archive/                   # Specs concluídas
│   ├── memory/                    # Conhecimento persistente (LLM-Wiki: ver METHODOLOGY.md §6)
│   │   ├── architecture.md        # ADRs
│   │   ├── clean-code.md          # Padrões de código limpo (SOLID, métricas)
│   │   ├── component-catalog.md   # Catálogo de código reutilizável
│   │   ├── conventions.md         # Convenções de código
│   │   ├── glossary.md            # Glossário de domínio
│   │   ├── troubleshooting.md     # Memória de erros e estratégias de correção (TRB-NN)
│   │   └── log.md                 # Journal cronológico append-only (sessão a sessão)
│   └── shared/                    # Documentos de referência
│       ├── schema-current.md
│       ├── schema-target.md
│       └── entity-map.md
│
├── AGENTS.md                      # Instrução-raiz para agentes (índice de skills, fast-path)
├── CLAUDE.md                      # Importa AGENTS.md (@AGENTS.md) — evita divergência
├── CHANGELOG.md                   # Histórico de mudanças (gerado do archive)
├── METHODOLOGY.md                 # Guia completo da metodologia
├── package.json                   # Scripts de tooling do kit (check, changelog)
└── README.md

Templates de Especificação

| Template | Quando usar | |---|---| | requirements-spec.md | Levantamento: problem statement, stakeholders, user stories, use cases, job stories, BDD, MoSCoW | | feature-spec.md | Features novas: design, estados, edge cases, traceability | | bugfix-spec.md | Correções: reprodução, causa raiz, teste de regressão | | migration-spec.md | Migrações: schema, dados, rollback | | test-spec.md | Cobertura de testes: plano de testes unitários, integração, e2e |

Skills Disponíveis

O catálogo completo de skills (nome + propósito) é gerado em .claude/skills/INDEX.md a partir das próprias skills (node scripts/update-skills-index.mjs), validado pelo check-consistency — não há lista mantida à mão. Os gatilhos (trigger phrases) de cada skill estão na Referência Rápida de Comandos abaixo.

Tecnologias Suportadas

O Specway é agnóstico a tecnologia. Veja .specs/config.md para a lista completa de stacks suportadas.

| Camada | Opções | |---|---| | Shell | Tauri, Electron, Wails, Web, CLI, Mobile, Library | | Frontend | React, Vue, Svelte, Angular, Solid, HTMX, Vanilla | | Backend | Rust, Node, Python, Go, C#, Java, Elixir | | Database | SQLite, PostgreSQL, MySQL, MongoDB, SurrealDB | | Testes | Vitest, Jest, Pytest, Cargo test, Go test, JUnit, xUnit |

Convenções

  • Backend: Repository (dados locais), Adapter (API externa), Service (lógica de negócio)
  • Clean Code: SOLID, funções ≤20 linhas, ≤3 parâmetros, injeção de dependência — veja .specs/memory/clean-code.md
  • Reutilização: consulte .specs/memory/component-catalog.md antes de criar código novo
  • IDs sequenciais por projeto: o mesmo número rastreia requirements/changes/archive/
  • Slugs kebab-case: 001-search-fields, 002-fix-encoding
  • Placeholders {ENTRE_CHAVES}: devem ser substituídos por valores reais do projeto
  • Testes primeiro: nunca escreva implementação antes de testes
  • Bugfix = regression test: todo bugfix começa com um teste que reproduz o bug
  • Consistência: execute "verificar consistência" antes de commits em skills ou config

Referência Rápida de Comandos

| Comando | Descrição | |---|---| | "criar novo projeto" | One-shot: criar projeto do zero (clone + bootstrap) | | "iniciar projeto" | Bootstrap interativo (projeto já clonado) | | "scan project" | Adotar a metodologia em projeto existente (detecta stack, sem clobber) | | "atualizar metodologia" | Atualizar um projeto que já usa a metodologia para a versão mais nova (só o delta) | | "mudança rápida" | Roteador de cerimônia: leve vs completo | | "levantar requisitos" | Iniciar levantamento de requisitos | | "revisar alinhamento" | Verificar semanticamente se o spec cobre os requisitos (gate de archive) | | "executar TDD" | Ciclo Red → Green → Refactor | | "registrar troubleshooting" | Gravar erro + estratégia de correção em memory/troubleshooting.md | | "criar skill" | Criar nova skill padronizada | | "verificar consistência" | Validar skills, catálogo e convenções | | "atualizar changelog" | Gerar changelog a partir do archive | | Ver METHODOLOGY.md | Guia completo da metodologia |

Licença

MIT