@precisa-saude/cli 1.0.3 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin.js +41 -12
- package/dist/bin.js.map +1 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.js +28 -9
- package/dist/index.js.map +1 -1
- package/dist/templates/.claude/agents/debugger.md +130 -0
- package/dist/templates/.claude/agents/docs-sync.md +97 -0
- package/dist/templates/.claude/agents/pr-review-responder.md +117 -0
- package/dist/templates/.claude/agents/pre-commit-check.md +85 -0
- package/dist/templates/.claude/agents/refactor-scout.md +139 -0
- package/dist/templates/AGENTS.md +45 -0
- package/dist/templates/CLAUDE.md +9 -0
- package/dist/templates/commitlintrc.cjs +10 -0
- package/dist/templates/eslint.config.js +19 -0
- package/dist/templates/github/ISSUE_TEMPLATE/bug_report.md +33 -0
- package/dist/templates/github/ISSUE_TEMPLATE/config.yml +4 -4
- package/dist/templates/github/ISSUE_TEMPLATE/feature_request.md +18 -0
- package/dist/templates/github/PULL_REQUEST_TEMPLATE.md +10 -10
- package/dist/templates/github/workflows/_checks.yml +102 -0
- package/dist/templates/github/workflows/_deploy-site.yml +168 -0
- package/dist/templates/github/workflows/_publish.yml +77 -0
- package/dist/templates/github/workflows/_release.yml +156 -0
- package/dist/templates/github/workflows/ci.yml +63 -27
- package/dist/templates/github/workflows/doctor.yml +71 -0
- package/dist/templates/github/workflows/publish-tag.yml +71 -0
- package/dist/templates/github/workflows/release.yml +22 -8
- package/dist/templates/github/workflows/review.yml +75 -23
- package/dist/templates/governance/CITATION.cff +1 -1
- package/dist/templates/governance/CONTRIBUTING.md +14 -14
- package/dist/templates/governance/CONVENTIONS.md +21 -19
- package/dist/templates/governance/SECURITY.md +13 -13
- package/dist/templates/governance/SUPPORT.md +10 -10
- package/dist/templates/husky/commit-msg +4 -2
- package/dist/templates/husky/pre-commit +10 -0
- package/dist/templates/husky/pre-push +24 -10
- package/dist/templates/package.json +71 -0
- package/dist/templates/pnpm-workspace.yaml +3 -0
- package/dist/templates/scripts/worktree.sh +5 -0
- package/dist/templates/templates.manifest.yml +127 -7
- package/dist/templates/tsconfig.json +4 -0
- package/dist/templates/turbo.json +32 -0
- package/package.json +2 -2
- package/dist/templates/github/ISSUE_TEMPLATE/bug.md +0 -33
- package/dist/templates/github/ISSUE_TEMPLATE/feature.md +0 -18
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Contribuindo
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Obrigado por considerar contribuir com `{{REPO_NAME}}`.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Desenvolvimento
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
pnpm install
|
|
@@ -12,21 +12,21 @@ pnpm -r test
|
|
|
12
12
|
pnpm -r lint
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
Node {{NODE_VERSION}}+
|
|
15
|
+
Node {{NODE_VERSION}}+ e pnpm {{PNPM_VERSION}}+ são obrigatórios (veja `.nvmrc` e o campo `packageManager`).
|
|
16
16
|
|
|
17
|
-
##
|
|
17
|
+
## Fluxo
|
|
18
18
|
|
|
19
|
-
1.
|
|
20
|
-
2.
|
|
21
|
-
3. CI
|
|
22
|
-
4.
|
|
19
|
+
1. Faça fork (ou branch) a partir de `main`
|
|
20
|
+
2. Abra um PR — pushes diretos para `main` não são permitidos
|
|
21
|
+
3. CI precisa estar verde
|
|
22
|
+
4. Um revisor aprova e mescla via GitHub
|
|
23
23
|
|
|
24
|
-
Commits
|
|
24
|
+
Commits seguem [Conventional Commits](https://www.conventionalcommits.org). Os escopos válidos para este repo estão configurados em `.commitlintrc.cjs`. Mensagens de commit em pt-BR (descrição); o `tipo` (`feat`, `fix`, etc.) permanece em inglês por convenção universal.
|
|
25
25
|
|
|
26
|
-
##
|
|
26
|
+
## Mudanças de dependências
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
Pergunte antes de adicionar dependências runtime ou peer. Na descrição do PR explique: o que o pacote faz, por que é necessário e se uma dependência existente poderia atender ao propósito.
|
|
29
29
|
|
|
30
|
-
##
|
|
30
|
+
## Assinatura
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
Todos os commits devem ser assinados via GPG. O hook `commit-msg` bloqueia atribuições de IA (`Co-Authored-By: Claude` e similares).
|
|
@@ -1,37 +1,39 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Convenções
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Formato de commit
|
|
4
4
|
|
|
5
5
|
[Conventional Commits](https://www.conventionalcommits.org):
|
|
6
6
|
|
|
7
7
|
```
|
|
8
|
-
|
|
8
|
+
tipo(escopo): descrição curta
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
corpo opcional mais longo
|
|
11
11
|
|
|
12
|
-
BREAKING CHANGE:
|
|
12
|
+
BREAKING CHANGE: notas (opcional)
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
**
|
|
15
|
+
**Tipos**: `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `chore`, `build`, `ci`, `revert`
|
|
16
16
|
|
|
17
|
-
**
|
|
17
|
+
**Escopos**: declarados em `.commitlintrc.cjs`.
|
|
18
18
|
|
|
19
|
-
**
|
|
19
|
+
**Idioma**: a descrição do commit é escrita em pt-BR; o tipo permanece em inglês (convenção universal do Conventional Commits).
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
**Atribuição de IA**: não inclua linhas como `Co-Authored-By: Claude`, `Generated with Claude` ou similares. O hook `commit-msg` bloqueia esses padrões.
|
|
22
|
+
|
|
23
|
+
## Estilo de código
|
|
22
24
|
|
|
23
25
|
- TypeScript strict mode, `noUncheckedIndexedAccess`
|
|
24
|
-
- ESM
|
|
25
|
-
- Prettier
|
|
26
|
-
- ESLint
|
|
27
|
-
- Imports
|
|
28
|
-
- Interfaces,
|
|
26
|
+
- Módulos ESM
|
|
27
|
+
- Formatação aplicada via Prettier (100 chars de largura, aspas simples, ponto-e-vírgula, trailing commas — via `@precisa-saude/prettier-config`)
|
|
28
|
+
- Regras ESLint via `@precisa-saude/eslint-config`
|
|
29
|
+
- Imports ordenados por `eslint-plugin-simple-import-sort`
|
|
30
|
+
- Interfaces, objetos e props JSX ordenados por `eslint-plugin-perfectionist` quando aplicável
|
|
29
31
|
|
|
30
|
-
##
|
|
32
|
+
## Testes
|
|
31
33
|
|
|
32
|
-
Vitest
|
|
34
|
+
Vitest com piso de 80% de cobertura (configurado por repo em `vitest.config.ts`).
|
|
33
35
|
|
|
34
|
-
##
|
|
36
|
+
## Regras de dependências
|
|
35
37
|
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
+
- Pacotes core/SDK evitam dependências runtime quando viável
|
|
39
|
+
- Dependências externas requerem aprovação explícita no PR
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Política de Segurança
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Reportar uma Vulnerabilidade
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Se você descobrir uma vulnerabilidade de segurança neste projeto, por favor reporte de forma responsável.
|
|
6
6
|
|
|
7
|
-
**
|
|
7
|
+
**Não abra uma issue pública no GitHub.**
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
Envie um e-mail para: **{{SECURITY_EMAIL}}**
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Inclua:
|
|
12
12
|
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
13
|
+
- Descrição da vulnerabilidade
|
|
14
|
+
- Passos para reproduzir
|
|
15
|
+
- Impacto potencial
|
|
16
|
+
- Correção sugerida (se houver)
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
Confirmaremos o recebimento em até 48 horas e forneceremos um cronograma para resolução.
|
|
19
19
|
|
|
20
|
-
##
|
|
20
|
+
## Divulgação
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
A divulgação é coordenada de forma privada. Correções são lançadas no(s) pacote(s) afetado(s) e registradas no CHANGELOG.
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Suporte
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Como obter ajuda
|
|
4
4
|
|
|
5
|
-
- **
|
|
6
|
-
- **
|
|
7
|
-
- **
|
|
5
|
+
- **Reportar bugs**: [GitHub Issues](https://github.com/{{REPO_SLUG}}/issues)
|
|
6
|
+
- **Solicitar features**: [GitHub Issues](https://github.com/{{REPO_SLUG}}/issues)
|
|
7
|
+
- **Perguntas e discussões**: [GitHub Discussions](https://github.com/{{REPO_SLUG}}/discussions)
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## Antes de abrir uma issue
|
|
10
10
|
|
|
11
|
-
1.
|
|
12
|
-
2.
|
|
13
|
-
3.
|
|
14
|
-
4.
|
|
11
|
+
1. Pesquise issues existentes para evitar duplicatas
|
|
12
|
+
2. Inclua um exemplo mínimo reproduzível
|
|
13
|
+
3. Especifique o pacote e a versão
|
|
14
|
+
4. Inclua versões de Node/pnpm e o sistema operacional
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
pnpm exec commitlint --edit "$1"
|
|
2
2
|
|
|
3
3
|
# Block AI attribution lines in commit messages
|
|
4
|
-
|
|
4
|
+
AI_ATTRIBUTION_PATTERN='co-authored-by:.*claude|generated with.*claude|co-authored-by:.*anthropic|co-authored-by:.*gpt|co-authored-by:.*copilot'
|
|
5
|
+
|
|
6
|
+
if grep -q -i -E "$AI_ATTRIBUTION_PATTERN" "$1"; then
|
|
5
7
|
echo "❌ Commit message contains AI attribution. Remove these lines:"
|
|
6
|
-
grep -i -E "
|
|
8
|
+
grep -i -E "$AI_ATTRIBUTION_PATTERN" "$1"
|
|
7
9
|
exit 1
|
|
8
10
|
fi
|
|
@@ -1 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env sh
|
|
2
|
+
# Staged-file formatting + full test suite.
|
|
3
|
+
#
|
|
4
|
+
# Running the full test suite on every commit is strict but cheap once
|
|
5
|
+
# turbo's cache is warm (only affected packages rebuild). Catches
|
|
6
|
+
# regressions before they hit PR review; the tradeoff is worth it.
|
|
7
|
+
|
|
8
|
+
set -e
|
|
9
|
+
|
|
1
10
|
pnpm exec lint-staged
|
|
11
|
+
pnpm test
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
#
|
|
1
|
+
#!/usr/bin/env sh
|
|
2
|
+
# Full-checks hook. Runs the same gates as CI so a failing push is
|
|
3
|
+
# caught locally. Per-package coverage thresholds live in vitest config,
|
|
4
|
+
# not here — this hook fails the push if any threshold fails.
|
|
5
|
+
#
|
|
6
|
+
# Uses `pnpm turbo run` when turbo is available (parallelism + caching);
|
|
7
|
+
# falls back to `pnpm -r --parallel` for repos without turbo.
|
|
3
8
|
|
|
4
9
|
set -e
|
|
5
10
|
|
|
@@ -9,13 +14,22 @@ pnpm install --frozen-lockfile --prefer-offline
|
|
|
9
14
|
echo "→ prettier"
|
|
10
15
|
pnpm format:check
|
|
11
16
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
if pnpm exec turbo --version >/dev/null 2>&1; then
|
|
18
|
+
echo "→ lint + typecheck + test + coverage (turbo)"
|
|
19
|
+
pnpm turbo run lint typecheck test test:coverage
|
|
20
|
+
else
|
|
21
|
+
# Fallback without turbo. Lint runs in parallel (no cross-package
|
|
22
|
+
# output dependencies). Typecheck/test run topologically (pnpm -r
|
|
23
|
+
# default) because they may depend on .d.ts or dist/ from upstream
|
|
24
|
+
# packages.
|
|
25
|
+
echo "→ lint"
|
|
26
|
+
pnpm -r --parallel lint
|
|
27
|
+
echo "→ typecheck"
|
|
28
|
+
pnpm -r typecheck
|
|
29
|
+
echo "→ test"
|
|
30
|
+
pnpm -r test
|
|
31
|
+
echo "→ coverage"
|
|
32
|
+
pnpm -r test:coverage
|
|
33
|
+
fi
|
|
20
34
|
|
|
21
35
|
echo "✓ pre-push checks passed"
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{REPO_NAME}}",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"private": true,
|
|
5
|
+
"description": "",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/{{REPO_SLUG}}.git"
|
|
9
|
+
},
|
|
10
|
+
"license": "Apache-2.0",
|
|
11
|
+
"author": "Precisa Saúde",
|
|
12
|
+
"type": "module",
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "turbo run build",
|
|
15
|
+
"clean": "turbo run clean",
|
|
16
|
+
"format": "prettier --write .",
|
|
17
|
+
"format:check": "prettier --check .",
|
|
18
|
+
"lint": "turbo run lint",
|
|
19
|
+
"prepare": "husky",
|
|
20
|
+
"release": "semantic-release",
|
|
21
|
+
"test": "turbo run test",
|
|
22
|
+
"test:coverage": "turbo run test:coverage",
|
|
23
|
+
"typecheck": "turbo run typecheck"
|
|
24
|
+
},
|
|
25
|
+
"lint-staged": {
|
|
26
|
+
"*.{ts,tsx}": [
|
|
27
|
+
"prettier --write",
|
|
28
|
+
"eslint --fix --max-warnings 0 --no-warn-ignored"
|
|
29
|
+
],
|
|
30
|
+
"*.{js,jsx,json,md,css,yml,yaml}": [
|
|
31
|
+
"prettier --write"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"@commitlint/cli": "^20.5.0",
|
|
36
|
+
"@precisa-saude/agent-instructions": "^1.0.0",
|
|
37
|
+
"@precisa-saude/commitlint-config": "^1.0.0",
|
|
38
|
+
"@precisa-saude/eslint-config": "^1.0.0",
|
|
39
|
+
"@precisa-saude/prettier-config": "^1.0.0",
|
|
40
|
+
"@precisa-saude/tsconfig": "^1.0.0",
|
|
41
|
+
"@precisa-saude/worktree-cli": "^1.0.0",
|
|
42
|
+
"@semantic-release/changelog": "^6.0.3",
|
|
43
|
+
"@semantic-release/exec": "^7.1.0",
|
|
44
|
+
"@semantic-release/git": "^10.0.1",
|
|
45
|
+
"@semantic-release/github": "^12.0.6",
|
|
46
|
+
"@types/node": "^22.10.0",
|
|
47
|
+
"@vitest/coverage-v8": "^2.1.8",
|
|
48
|
+
"conventional-changelog-conventionalcommits": "^9.3.1",
|
|
49
|
+
"eslint": "^10.1.0",
|
|
50
|
+
"husky": "^9.1.7",
|
|
51
|
+
"lint-staged": "^16.4.0",
|
|
52
|
+
"prettier": "^3.4.2",
|
|
53
|
+
"prettier-plugin-packagejson": "^3.0.2",
|
|
54
|
+
"semantic-release": "^25.0.3",
|
|
55
|
+
"tsup": "^8.3.5",
|
|
56
|
+
"turbo": "^2.3.3",
|
|
57
|
+
"typescript": "~5.7.3",
|
|
58
|
+
"vitest": "^2.1.8"
|
|
59
|
+
},
|
|
60
|
+
"packageManager": "pnpm@{{PNPM_VERSION}}",
|
|
61
|
+
"engines": {
|
|
62
|
+
"node": ">={{NODE_VERSION}}",
|
|
63
|
+
"pnpm": ">=9"
|
|
64
|
+
},
|
|
65
|
+
"worktree": {
|
|
66
|
+
"directoryPrefix": "{{REPO_NAME}}",
|
|
67
|
+
"portRegistry": "/tmp/{{REPO_NAME}}-worktree-ports.json",
|
|
68
|
+
"buildCommand": "pnpm turbo run build --filter=./packages/*",
|
|
69
|
+
"services": []
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -2,6 +2,40 @@
|
|
|
2
2
|
# See templates/README.md for schema and placeholder reference.
|
|
3
3
|
|
|
4
4
|
templates:
|
|
5
|
+
# ─── Package manifest ─────────────────────────────────────────────────────
|
|
6
|
+
# The package.json is the single most critical bootstrap file — without
|
|
7
|
+
# it, `pnpm install` fails and nothing else works.
|
|
8
|
+
- source: package.json
|
|
9
|
+
target: package.json
|
|
10
|
+
required_when: always
|
|
11
|
+
merge_strategy: skip_if_exists
|
|
12
|
+
|
|
13
|
+
- source: pnpm-workspace.yaml
|
|
14
|
+
target: pnpm-workspace.yaml
|
|
15
|
+
required_when: always
|
|
16
|
+
merge_strategy: skip_if_exists
|
|
17
|
+
|
|
18
|
+
- source: turbo.json
|
|
19
|
+
target: turbo.json
|
|
20
|
+
required_when: always
|
|
21
|
+
merge_strategy: overwrite
|
|
22
|
+
|
|
23
|
+
# ─── TypeScript / ESLint / Prettier / Commitlint configs ──────────────────
|
|
24
|
+
- source: tsconfig.json
|
|
25
|
+
target: tsconfig.json
|
|
26
|
+
required_when: always
|
|
27
|
+
merge_strategy: overwrite
|
|
28
|
+
|
|
29
|
+
- source: eslint.config.js
|
|
30
|
+
target: eslint.config.js
|
|
31
|
+
required_when: always
|
|
32
|
+
merge_strategy: overwrite
|
|
33
|
+
|
|
34
|
+
- source: commitlintrc.cjs
|
|
35
|
+
target: .commitlintrc.cjs
|
|
36
|
+
required_when: always
|
|
37
|
+
merge_strategy: overwrite
|
|
38
|
+
|
|
5
39
|
# ─── Root dotfiles ────────────────────────────────────────────────────────
|
|
6
40
|
- source: dotfiles/editorconfig
|
|
7
41
|
target: .editorconfig
|
|
@@ -57,6 +91,56 @@ templates:
|
|
|
57
91
|
merge_strategy: overwrite
|
|
58
92
|
executable: true
|
|
59
93
|
|
|
94
|
+
# ─── Agent instructions ───────────────────────────────────────────────────
|
|
95
|
+
# AGENTS.md is the repo-specific addendum; the shared base lives in
|
|
96
|
+
# the @precisa-saude/agent-instructions npm package and is loaded via
|
|
97
|
+
# CLAUDE.md's @-imports at agent startup.
|
|
98
|
+
- source: AGENTS.md
|
|
99
|
+
target: AGENTS.md
|
|
100
|
+
required_when: always
|
|
101
|
+
merge_strategy: skip_if_exists
|
|
102
|
+
|
|
103
|
+
- source: CLAUDE.md
|
|
104
|
+
target: CLAUDE.md
|
|
105
|
+
required_when: always
|
|
106
|
+
merge_strategy: overwrite
|
|
107
|
+
|
|
108
|
+
# ─── Scripts ──────────────────────────────────────────────────────────────
|
|
109
|
+
- source: scripts/worktree.sh
|
|
110
|
+
target: scripts/worktree.sh
|
|
111
|
+
required_when: always
|
|
112
|
+
merge_strategy: overwrite
|
|
113
|
+
executable: true
|
|
114
|
+
|
|
115
|
+
# ─── Claude Code sub-agents ───────────────────────────────────────────────
|
|
116
|
+
# Generic agents extracted from platform's .claude/agents/. Repo-specific
|
|
117
|
+
# agents (iOS QA, UI polish, perf audit for web) stay in the consumer
|
|
118
|
+
# repo's own .claude/agents/ and are NOT synced by precisa sync.
|
|
119
|
+
- source: .claude/agents/debugger.md
|
|
120
|
+
target: .claude/agents/debugger.md
|
|
121
|
+
required_when: always
|
|
122
|
+
merge_strategy: overwrite
|
|
123
|
+
|
|
124
|
+
- source: .claude/agents/docs-sync.md
|
|
125
|
+
target: .claude/agents/docs-sync.md
|
|
126
|
+
required_when: always
|
|
127
|
+
merge_strategy: overwrite
|
|
128
|
+
|
|
129
|
+
- source: .claude/agents/pr-review-responder.md
|
|
130
|
+
target: .claude/agents/pr-review-responder.md
|
|
131
|
+
required_when: always
|
|
132
|
+
merge_strategy: overwrite
|
|
133
|
+
|
|
134
|
+
- source: .claude/agents/pre-commit-check.md
|
|
135
|
+
target: .claude/agents/pre-commit-check.md
|
|
136
|
+
required_when: always
|
|
137
|
+
merge_strategy: overwrite
|
|
138
|
+
|
|
139
|
+
- source: .claude/agents/refactor-scout.md
|
|
140
|
+
target: .claude/agents/refactor-scout.md
|
|
141
|
+
required_when: always
|
|
142
|
+
merge_strategy: overwrite
|
|
143
|
+
|
|
60
144
|
# ─── Governance ───────────────────────────────────────────────────────────
|
|
61
145
|
- source: governance/CODE_OF_CONDUCT.md
|
|
62
146
|
target: CODE_OF_CONDUCT.md
|
|
@@ -94,13 +178,13 @@ templates:
|
|
|
94
178
|
required_when: always
|
|
95
179
|
merge_strategy: overwrite
|
|
96
180
|
|
|
97
|
-
- source: github/ISSUE_TEMPLATE/
|
|
98
|
-
target: .github/ISSUE_TEMPLATE/
|
|
181
|
+
- source: github/ISSUE_TEMPLATE/bug_report.md
|
|
182
|
+
target: .github/ISSUE_TEMPLATE/bug_report.md
|
|
99
183
|
required_when: always
|
|
100
184
|
merge_strategy: overwrite
|
|
101
185
|
|
|
102
|
-
- source: github/ISSUE_TEMPLATE/
|
|
103
|
-
target: .github/ISSUE_TEMPLATE/
|
|
186
|
+
- source: github/ISSUE_TEMPLATE/feature_request.md
|
|
187
|
+
target: .github/ISSUE_TEMPLATE/feature_request.md
|
|
104
188
|
required_when: always
|
|
105
189
|
merge_strategy: overwrite
|
|
106
190
|
|
|
@@ -109,17 +193,53 @@ templates:
|
|
|
109
193
|
required_when: always
|
|
110
194
|
merge_strategy: overwrite
|
|
111
195
|
|
|
196
|
+
# ─── Workflows (canonical split pattern) ──────────────────────────────────
|
|
197
|
+
# Orchestrator + reusable workflows. Each reusable is `workflow_call`-only;
|
|
198
|
+
# the orchestrator (`ci.yml`) wires them together.
|
|
112
199
|
- source: github/workflows/ci.yml
|
|
113
200
|
target: .github/workflows/ci.yml
|
|
114
201
|
required_when: always
|
|
115
202
|
merge_strategy: overwrite
|
|
116
203
|
|
|
117
|
-
- source: github/workflows/
|
|
118
|
-
target: .github/workflows/
|
|
119
|
-
required_when:
|
|
204
|
+
- source: github/workflows/_checks.yml
|
|
205
|
+
target: .github/workflows/_checks.yml
|
|
206
|
+
required_when: always
|
|
120
207
|
merge_strategy: overwrite
|
|
121
208
|
|
|
122
209
|
- source: github/workflows/review.yml
|
|
123
210
|
target: .github/workflows/review.yml
|
|
124
211
|
required_when: always
|
|
125
212
|
merge_strategy: overwrite
|
|
213
|
+
|
|
214
|
+
- source: github/workflows/_release.yml
|
|
215
|
+
target: .github/workflows/_release.yml
|
|
216
|
+
required_when: publishes_to_npm
|
|
217
|
+
merge_strategy: overwrite
|
|
218
|
+
|
|
219
|
+
- source: github/workflows/_publish.yml
|
|
220
|
+
target: .github/workflows/_publish.yml
|
|
221
|
+
required_when: publishes_to_npm
|
|
222
|
+
merge_strategy: overwrite
|
|
223
|
+
|
|
224
|
+
- source: github/workflows/publish-tag.yml
|
|
225
|
+
target: .github/workflows/publish-tag.yml
|
|
226
|
+
required_when: publishes_to_npm
|
|
227
|
+
merge_strategy: overwrite
|
|
228
|
+
|
|
229
|
+
- source: github/workflows/_deploy-site.yml
|
|
230
|
+
target: .github/workflows/_deploy-site.yml
|
|
231
|
+
required_when: has_site
|
|
232
|
+
merge_strategy: overwrite
|
|
233
|
+
|
|
234
|
+
- source: github/workflows/doctor.yml
|
|
235
|
+
target: .github/workflows/doctor.yml
|
|
236
|
+
required_when: always
|
|
237
|
+
merge_strategy: overwrite
|
|
238
|
+
|
|
239
|
+
# Standalone release workflow (alternative to _release+_publish split)
|
|
240
|
+
# for tooling-style monorepos. Gated off by default; consumers choose
|
|
241
|
+
# one or the other.
|
|
242
|
+
- source: github/workflows/release.yml
|
|
243
|
+
target: .github/workflows/release.yml
|
|
244
|
+
required_when: never
|
|
245
|
+
merge_strategy: overwrite
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://turbo.build/schema.json",
|
|
3
|
+
"tasks": {
|
|
4
|
+
"build": {
|
|
5
|
+
"dependsOn": ["^build"],
|
|
6
|
+
"outputs": ["dist/**"]
|
|
7
|
+
},
|
|
8
|
+
"clean": {
|
|
9
|
+
"cache": false
|
|
10
|
+
},
|
|
11
|
+
"dev": {
|
|
12
|
+
"cache": false,
|
|
13
|
+
"persistent": true
|
|
14
|
+
},
|
|
15
|
+
"lint": {
|
|
16
|
+
"dependsOn": ["^build"],
|
|
17
|
+
"outputs": []
|
|
18
|
+
},
|
|
19
|
+
"test": {
|
|
20
|
+
"dependsOn": ["^build"],
|
|
21
|
+
"outputs": ["coverage/**"]
|
|
22
|
+
},
|
|
23
|
+
"test:coverage": {
|
|
24
|
+
"dependsOn": ["^build"],
|
|
25
|
+
"outputs": ["coverage/**"]
|
|
26
|
+
},
|
|
27
|
+
"typecheck": {
|
|
28
|
+
"dependsOn": ["^build"],
|
|
29
|
+
"outputs": []
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@precisa-saude/cli",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Bootstrap and sync Precisa Saúde repositories — the `precisa` CLI.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"@types/prompts": "^2.4.9",
|
|
46
46
|
"tsup": "^8.3.5",
|
|
47
47
|
"typescript": "~5.7.3",
|
|
48
|
-
"@precisa-saude/tsconfig": "1.0
|
|
48
|
+
"@precisa-saude/tsconfig": "1.1.0"
|
|
49
49
|
},
|
|
50
50
|
"engines": {
|
|
51
51
|
"node": ">=22.0.0"
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Bug report
|
|
3
|
-
about: Something is broken
|
|
4
|
-
title: '[bug] '
|
|
5
|
-
labels: [bug]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## What happened
|
|
9
|
-
|
|
10
|
-
<!-- Short description of the unexpected behavior. -->
|
|
11
|
-
|
|
12
|
-
## Reproduction
|
|
13
|
-
|
|
14
|
-
<!-- Minimal steps. Include the exact command run, package + version, Node/pnpm versions. -->
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
# command(s)
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Expected
|
|
21
|
-
|
|
22
|
-
<!-- What you expected to happen. -->
|
|
23
|
-
|
|
24
|
-
## Environment
|
|
25
|
-
|
|
26
|
-
- Package + version:
|
|
27
|
-
- Node: `node --version`
|
|
28
|
-
- pnpm: `pnpm --version`
|
|
29
|
-
- OS: macOS / Linux / Windows
|
|
30
|
-
|
|
31
|
-
## Additional context
|
|
32
|
-
|
|
33
|
-
<!-- Stack trace, CI logs, etc. -->
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Feature request
|
|
3
|
-
about: Propose a new feature or improvement
|
|
4
|
-
title: '[feat] '
|
|
5
|
-
labels: [enhancement]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## Problem
|
|
9
|
-
|
|
10
|
-
<!-- What limitation or friction are you hitting? -->
|
|
11
|
-
|
|
12
|
-
## Proposed solution
|
|
13
|
-
|
|
14
|
-
<!-- Sketch the API / behavior. Prefer concrete examples over prose. -->
|
|
15
|
-
|
|
16
|
-
## Alternatives considered
|
|
17
|
-
|
|
18
|
-
<!-- Other approaches you thought about and why you ruled them out. -->
|