@precisa-saude/cli 1.0.4 → 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.
Files changed (44) hide show
  1. package/dist/bin.js +41 -12
  2. package/dist/bin.js.map +1 -1
  3. package/dist/index.d.ts +8 -1
  4. package/dist/index.js +28 -9
  5. package/dist/index.js.map +1 -1
  6. package/dist/templates/.claude/agents/debugger.md +130 -0
  7. package/dist/templates/.claude/agents/docs-sync.md +97 -0
  8. package/dist/templates/.claude/agents/pr-review-responder.md +117 -0
  9. package/dist/templates/.claude/agents/pre-commit-check.md +85 -0
  10. package/dist/templates/.claude/agents/refactor-scout.md +139 -0
  11. package/dist/templates/AGENTS.md +45 -0
  12. package/dist/templates/CLAUDE.md +9 -0
  13. package/dist/templates/commitlintrc.cjs +10 -0
  14. package/dist/templates/eslint.config.js +19 -0
  15. package/dist/templates/github/ISSUE_TEMPLATE/bug_report.md +33 -0
  16. package/dist/templates/github/ISSUE_TEMPLATE/config.yml +4 -4
  17. package/dist/templates/github/ISSUE_TEMPLATE/feature_request.md +18 -0
  18. package/dist/templates/github/PULL_REQUEST_TEMPLATE.md +10 -10
  19. package/dist/templates/github/workflows/_checks.yml +102 -0
  20. package/dist/templates/github/workflows/_deploy-site.yml +168 -0
  21. package/dist/templates/github/workflows/_publish.yml +77 -0
  22. package/dist/templates/github/workflows/_release.yml +156 -0
  23. package/dist/templates/github/workflows/ci.yml +63 -27
  24. package/dist/templates/github/workflows/doctor.yml +71 -0
  25. package/dist/templates/github/workflows/publish-tag.yml +71 -0
  26. package/dist/templates/github/workflows/release.yml +22 -8
  27. package/dist/templates/github/workflows/review.yml +75 -23
  28. package/dist/templates/governance/CITATION.cff +1 -1
  29. package/dist/templates/governance/CONTRIBUTING.md +14 -14
  30. package/dist/templates/governance/CONVENTIONS.md +21 -19
  31. package/dist/templates/governance/SECURITY.md +13 -13
  32. package/dist/templates/governance/SUPPORT.md +10 -10
  33. package/dist/templates/husky/commit-msg +4 -2
  34. package/dist/templates/husky/pre-commit +10 -0
  35. package/dist/templates/husky/pre-push +24 -10
  36. package/dist/templates/package.json +71 -0
  37. package/dist/templates/pnpm-workspace.yaml +3 -0
  38. package/dist/templates/scripts/worktree.sh +5 -0
  39. package/dist/templates/templates.manifest.yml +127 -7
  40. package/dist/templates/tsconfig.json +4 -0
  41. package/dist/templates/turbo.json +32 -0
  42. package/package.json +2 -2
  43. package/dist/templates/github/ISSUE_TEMPLATE/bug.md +0 -33
  44. package/dist/templates/github/ISSUE_TEMPLATE/feature.md +0 -18
@@ -1,8 +1,8 @@
1
- # Contributing
1
+ # Contribuindo
2
2
 
3
- Thanks for considering a contribution to `{{REPO_NAME}}`.
3
+ Obrigado por considerar contribuir com `{{REPO_NAME}}`.
4
4
 
5
- ## Development
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}}+ and pnpm {{PNPM_VERSION}}+ are required (see `.nvmrc` and the `packageManager` field).
15
+ Node {{NODE_VERSION}}+ e pnpm {{PNPM_VERSION}}+ são obrigatórios (veja `.nvmrc` e o campo `packageManager`).
16
16
 
17
- ## Workflow
17
+ ## Fluxo
18
18
 
19
- 1. Fork (or branch) from `main`
20
- 2. Open a PR — direct pushes to `main` are not allowed
21
- 3. CI must be green
22
- 4. A reviewer approves and merges via GitHub
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 follow [Conventional Commits](https://www.conventionalcommits.org). Allowed scopes for this repo are configured in `.commitlintrc.cjs`.
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
- ## Dependency changes
26
+ ## Mudanças de dependências
27
27
 
28
- Ask before adding runtime or peer dependencies. In the PR description explain: what the package does, why it's needed, and whether an existing dependency could serve the purpose.
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
- ## Signing
30
+ ## Assinatura
31
31
 
32
- All commits should be GPG-signed. The `commit-msg` hook blocks AI-attribution footers (`Co-Authored-By: Claude` and similar).
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
- # Conventions
1
+ # Convenções
2
2
 
3
- ## Commit format
3
+ ## Formato de commit
4
4
 
5
5
  [Conventional Commits](https://www.conventionalcommits.org):
6
6
 
7
7
  ```
8
- type(scope): short description
8
+ tipo(escopo): descrição curta
9
9
 
10
- optional longer body
10
+ corpo opcional mais longo
11
11
 
12
- BREAKING CHANGE: notes (optional)
12
+ BREAKING CHANGE: notas (opcional)
13
13
  ```
14
14
 
15
- **Types**: `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `chore`, `build`, `ci`, `revert`
15
+ **Tipos**: `feat`, `fix`, `docs`, `style`, `refactor`, `perf`, `test`, `chore`, `build`, `ci`, `revert`
16
16
 
17
- **Scopes**: declared in `.commitlintrc.cjs`.
17
+ **Escopos**: declarados em `.commitlintrc.cjs`.
18
18
 
19
- **AI attribution**: Do not include `Co-Authored-By: Claude`, `Generated with Claude`, or similar lines. The `commit-msg` hook enforces this.
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
- ## Code style
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 modules
25
- - Prettier-enforced formatting (100 char width, single quotes, semicolons, trailing commas — via `@precisa-saude/prettier-config`)
26
- - ESLint rules via `@precisa-saude/eslint-config`
27
- - Imports sorted by `eslint-plugin-simple-import-sort`
28
- - Interfaces, objects, and JSX props sorted by `eslint-plugin-perfectionist` where applicable
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
- ## Tests
32
+ ## Testes
31
33
 
32
- Vitest with an 80% coverage floor (configured per-repo in `vitest.config.ts`).
34
+ Vitest com piso de 80% de cobertura (configurado por repo em `vitest.config.ts`).
33
35
 
34
- ## Dependency rules
36
+ ## Regras de dependências
35
37
 
36
- - Core/SDK packages avoid runtime dependencies when feasible
37
- - External dependencies require explicit approval in the PR
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
- # Security Policy
1
+ # Política de Segurança
2
2
 
3
- ## Reporting a Vulnerability
3
+ ## Reportar uma Vulnerabilidade
4
4
 
5
- If you discover a security vulnerability in this project, please report it responsibly.
5
+ Se você descobrir uma vulnerabilidade de segurança neste projeto, por favor reporte de forma responsável.
6
6
 
7
- **Do not open a public GitHub issue.**
7
+ **Não abra uma issue pública no GitHub.**
8
8
 
9
- Email: **{{SECURITY_EMAIL}}**
9
+ Envie um e-mail para: **{{SECURITY_EMAIL}}**
10
10
 
11
- Include:
11
+ Inclua:
12
12
 
13
- - Description of the vulnerability
14
- - Steps to reproduce
15
- - Potential impact
16
- - Suggested fix (if any)
13
+ - Descrição da vulnerabilidade
14
+ - Passos para reproduzir
15
+ - Impacto potencial
16
+ - Correção sugerida (se houver)
17
17
 
18
- We will acknowledge receipt within 48 hours and provide a timeline for resolution.
18
+ Confirmaremos o recebimento em até 48 horas e forneceremos um cronograma para resolução.
19
19
 
20
- ## Disclosure
20
+ ## Divulgação
21
21
 
22
- Disclosure is coordinated privately. Fixes are released in the affected package(s) and noted in the CHANGELOG.
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
- # Support
1
+ # Suporte
2
2
 
3
- ## Getting help
3
+ ## Como obter ajuda
4
4
 
5
- - **Report bugs**: [GitHub Issues](https://github.com/{{REPO_SLUG}}/issues)
6
- - **Request features**: [GitHub Issues](https://github.com/{{REPO_SLUG}}/issues)
7
- - **Questions and discussions**: [GitHub Discussions](https://github.com/{{REPO_SLUG}}/discussions)
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
- ## Before opening an issue
9
+ ## Antes de abrir uma issue
10
10
 
11
- 1. Search existing issues to avoid duplicates
12
- 2. Include a minimal reproducible example
13
- 3. Specify the package and version
14
- 4. Include Node/pnpm versions and the OS you're on
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
- if grep -q -i -E "co-authored-by:.*claude|generated with.*claude|co-authored-by:.*anthropic|co-authored-by:.*gpt|co-authored-by:.*copilot" "$1"; then
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 "co-authored-by:.*claude|generated with.*claude|co-authored-by:.*anthropic|co-authored-by:.*gpt|co-authored-by:.*copilot" "$1"
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
- # Full-checks hook. Runs the same gates as CI so a failing push is caught locally.
2
- # Per-repo coverage thresholds live in vitest config, not here.
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
- echo "→ eslint"
13
- pnpm -r lint
14
-
15
- echo "→ typescript"
16
- pnpm -r typecheck
17
-
18
- echo "→ tests"
19
- pnpm -r test
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
+ }
@@ -0,0 +1,3 @@
1
+ packages:
2
+ - 'packages/*'
3
+ - 'site'
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env bash
2
+ # Thin shim — the real implementation lives in @precisa-saude/worktree-cli.
3
+ # Keep this path for muscle memory; invoke the CLI directly if you prefer:
4
+ # pnpm exec precisa-worktree <command> [args]
5
+ exec pnpm exec precisa-worktree "$@"
@@ -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/bug.md
98
- target: .github/ISSUE_TEMPLATE/bug.md
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/feature.md
103
- target: .github/ISSUE_TEMPLATE/feature.md
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/release.yml
118
- target: .github/workflows/release.yml
119
- required_when: publishes_to_npm
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,4 @@
1
+ {
2
+ "extends": "@precisa-saude/tsconfig/library",
3
+ "exclude": ["node_modules", "dist"]
4
+ }
@@ -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.4",
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.4"
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. -->