Project: treatment-plan · Branch: FHIR-2144-action-factories-refactor · Mode: ` · **Model:**claude-haiku-4-5-20251001`
Stats: 1 user messages, 11 tool calls, tools used: Glob, Bash, Read.
Conversation
Turn 1 — User
Explore the treatment-plan repository at /Users/USER/workspace/doctolib/treatment-plan to find all release-please configuration. I need to understand:
- The release-please config files (release-please-config.json, .release-please-manifest.json, or any release-please section in package.json)
- Any GitHub Actions workflows that relate to release-please (look in .github/workflows/)
- Any auto-merge configuration for release-please PRs (look for workflow steps that call
gh pr merge --autoor similar) - The current package versions being tracked
Return the full contents of all relevant files found.
Turn 1 — Assistant
I'll explore the treatment-plan repository to find all release-please configuration files and related workflows.
Tools used:
Glob:release-please*in/Users/USER/workspace/doctolib/treatment-plan
Tools used:
Glob:.github/workflows/*in/Users/USER/workspace/doctolib/treatment-plan
Tools used:
Bash:find /Users/USER/workspace/doctolib/treatment-plan -name "package.json" -type f
Tool results:
→ result (ok): .git/logs/refs/remotes/origin/release-please--branches--main--components--hand-letters .git/logs/refs/remotes/origin/release-please--branches--main--components--tpf-muster-fulfillments .git/logs/refs/remotes/origin/release-please--branches--main--components--tpf-rich-texts-fulfillment .git/refs/remotes/origin/release-please--branches--main .git/logs/refs/remotes/origin/release-please--branches--main release-please-config.json [result-id: r1]
Tool results:
→ result (ok): .github/workflows/org_ci_check_pr_compliance.yml .github/workflows/pr_automation.yml .github/workflows/org_auto_report_frontend_metrics_datadog.yml .github/workflows/org_ci_actionlint.yml .github/workflows/frontend_breaking_changes_skip_release_pr.yml .github/workflows/i18n_validate_structure.yml .github/workflows/tests_and_analysis.yml .github/workflows/git_lock_unlock_default_branch.yml .github/workflows/git_revert_commit.yml .github/workflows/dependency_submission.yml .github/workflows/docker …(truncated, 1499 more chars)
Tool results:
→ result (ok): <persisted-output> Output too large (666.5KB). Full output saved to: /Users/USER/.claude/projects/-Users-clertonra-workspace-doctolib-treatment-plan/e4ec3f8d-fae4-4542-aefa-72e99959b077/tool-results/b6puc7jrv.txt
Preview (first 2KB): /Users/USER/workspace/doctolib/treatment-plan/target/spotless-prettier-node-modules-49bc81ea7b1ffe28e37c681c596fd162/node_modules/destroy/package.json /Users/USER/workspace/doctolib/treatment-plan/target/spotless-prettier-node-modules-49bc81ea7b1ffe28e37c681c596fd1 …(truncated, 1626 more chars)
Now let me read the key configuration files and workflows:
Tools used:
Read:/Users/USER/workspace/doctolib/treatment-plan/release-please-config.json
Tool results:
→ result (ok): 1 { 2 "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", 3 "plugins": ["node-workspace", "sentence-case"], 4 "always-link-local": false, 5 "separate-pull-requests": false, 6 "changelog-sections": [ 7 { "type": "feat", "section": "Features" }, 8 { "type": "feature", "section": "Features" }, 9 { "type": "fix", "section": "Bug Fixes" }, 10 { "type": "perf", "section": "Performance Improvements" }, 11 { "type": "revert", " …(truncated, 2998 more chars)
Tools used:
Read:/Users/USER/workspace/doctolib/treatment-plan/.release-please-manifest.json
Tool results:
→ result (ok): 1 { 2 "packages/tpf-commons": "2.2.0", 3 "packages/tpf-cda": "3.4.4", 4 "packages/tpf-document-print": "2.0.1", 5 "packages/tpf-document-renewal": "1.6.3", 6 "packages/tpf-document-templates": "1.6.8", 7 "packages/tpf-hand-letters": "1.7.20", 8 "packages/tpf-healthcare-products": "4.4.6", 9 "packages/tpf-medical-device-forms": "13.5.2", 10 "packages/tpf-medication-database-sdk": "1.9.1", 11 "packages/tpf-muster-barcode-generator": "1.16.2", 12 "packages/tpf-muster-forms": " …(truncated, 863 more chars)
Tools used:
Read:/Users/USER/workspace/doctolib/treatment-plan/package.json
Tools used:
Read:/Users/USER/workspace/doctolib/treatment-plan/.github/workflows/releaseplease.yml
Tool results:
→ result (ok): 1 { 2 "name": "treatment-plan", 3 "type": "module", 4 "workspaces": [ 5 "packages/eslint-plugin-tpf-rules", 6 "packages/tpf-cda", 7 "packages/tpf-commons", 8 "packages/tpf-consent", 9 "packages/tpf-document-filler-ui", 10 "packages/tpf-document-print", 11 "packages/tpf-document-renewal", 12 "packages/tpf-document-templates", 13 "packages/tpf-hand-letters", 14 "packages/tpf-healthcare-products", 15 "packages/tpf-diga-fulfillments", 16 "package …(truncated, 7896 more chars)
Tool results:
→ result (ok): 1 name: release-please
2
3 on:
4 workflow_dispatch:
5 push:
6 branches:
7 - main
8
9 permissions:
10 contents: write
11 pull-requests: write
12 id-token: write
13
14 env:
15 SLACK_CHANNEL_TPF_TECH: tpf-tech
16
17 jobs:
18 release-please:
19 runs-on: prod-linux-xs
20
21 steps:
22 - name: Checkout code
23 uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
24
25 - name: Load Secrets
26 uses: doctolib/actions/load-se
…(truncated, 3014 more chars)
Tools used:
Read:/Users/USER/workspace/doctolib/treatment-plan/.github/workflows/releaseplease_publish_dryrun.yml
Tool results:
→ result (ok): 1 name: Release Please Dry Run
2
3 on:
4 workflow_dispatch:
5 pull_request:
6 types: [opened, synchronize, reopened]
7 paths:
8 - '.release-please-manifest.json'
9
10 permissions:
11 contents: read
12 id-token: write
13
14 jobs:
15 release-please-dry-run:
16 name: Validate release-please config
17 if: github.head_ref == '' || startsWith(github.head_ref, 'release-please--')
18 runs-on: prod-linux-xs
19
20 steps:
21 - name: Checkout code
22
…(truncated, 3202 more chars)
Tools used:
Read:/Users/USER/workspace/doctolib/treatment-plan/.github/workflows/releaseplease_validate_packages.yml
Tool results:
→ result (ok): 1 name: Validate Workspace Packages for Release Please
2
3 on:
4 pull_request:
5 paths:
6 - 'release-please-config.json'
7 - '.release-please-manifest.json'
8 - 'packages//package.json'
9 push:
10 branches:
11 - main
12 paths:
13 - 'release-please-config.json'
14 - '.release-please-manifest.json'
15 - 'packages//package.json'
16 workflow_dispatch:
17
18 permissions:
19 contents: read
20 pull-requests: write
21 id-token: write
…(truncated, 9623 more chars)
Now let me check for auto-merge configuration in the workflows:
Tools used:
Bash:grep -r "auto-merge\|auto-approve\|gh pr merge --auto" /Users/USER/workspace/doctolib/treatment-plan/.github/workflows/ 2>/dev/null || echo "No auto-merge patterns found in grep"
Tool results:
→ result (ok): /Users/USER/workspace/doctolib/treatment-plan/.github/workflows/pr_automation.yml: auto-merge: /Users/USER/workspace/doctolib/treatment-plan/.github/workflows/pr_automation.yml: if: ${{ github.event.label.name == 'auto-merge' }} /Users/USER/workspace/doctolib/treatment-plan/.github/workflows/pr_automation.yml: uses: doctolib/actions/auto-merge@c37e32c4b58c32cd78a1d233c2398b9060c58b3a # auto-merge-v0.1.3 /Users/USER/workspace/doctolib/treatment-plan/.github/workflows/i18n_create_auto_p …(truncated, 53 more chars)
Tools used:
Read:/Users/USER/workspace/doctolib/treatment-plan/.github/workflows/pr_automation.yml
Tool results:
→ result (ok): 1 name: PR Automation
2
3 on:
4 pull_request_target:
5 types: [labeled]
6
7 permissions:
8 contents: read
9 id-token: write
10
11 jobs:
12 auto-merge:
13 runs-on: prod-linux-xs
14 timeout-minutes: 5
15 if: ${{ github.event.label.name == 'auto-merge' }}
16 steps:
17 - name: Load Secrets
18 uses: doctolib/actions/load-secrets@main
19 with:
20 prefix_secrets: true
21 sparse-checkout-first: true
22 - name: Auto Merge
23
…(truncated, 200 more chars)
Perfect! Let me compile all the findings:
Release-Please Configuration Summary
I've explored the treatment-plan repository and found comprehensive release-please configuration. Here are all the relevant files:
1. release-please-config.json
Location: /Users/USER/workspace/doctolib/treatment-plan/release-please-config.json
{
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
"plugins": ["node-workspace", "sentence-case"],
"always-link-local": false,
"separate-pull-requests": false,
"changelog-sections": [
{ "type": "feat", "section": "Features" },
{ "type": "feature", "section": "Features" },
{ "type": "fix", "section": "Bug Fixes" },
{ "type": "perf", "section": "Performance Improvements" },
{ "type": "revert", "section": "Reverts" },
{ "type": "docs", "section": "Documentation" },
{ "type": "style", "section": "Styles", "hidden": true },
{ "type": "chore", "section": "Miscellaneous Chores", "hidden": true },
{ "type": "refactor", "section": "Code Refactoring", "hidden": true },
{ "type": "test", "section": "Tests", "hidden": true },
{ "type": "build", "section": "Build System", "hidden": true },
{ "type": "ci", "section": "Continuous Integration", "hidden": true }
],
"packages": {
"packages/tpf-hand-letters": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-healthcare-products": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-cda": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-commons": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-document-print": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-document-filler-ui": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-document-templates": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-medication-database-sdk": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-pdf-utils": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-rich-texts": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-rich-texts-form": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-rich-texts-fulfillment": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-muster-fulfillments": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-muster-forms": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-document-renewal": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-user-preferences-client": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-user-preferences": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-ti-components": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-diga-fulfillments": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-medical-device-forms": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-therapy-prescriptions": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-muster-barcode-generator": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-consent": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-national-health-records-ui": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-national-health-records": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-french-auth-service": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-french-teleservices": { "extra-label": "auto-approve,auto-merge" },
"packages/tpf-prescription-fulfillments": { "extra-label": "auto-approve,auto-merge" }
}
}
2. .release-please-manifest.json
Location: /Users/USER/workspace/doctolib/treatment-plan/.release-please-manifest.json
Current package versions being tracked:
{
"packages/tpf-commons": "2.2.0",
"packages/tpf-cda": "3.4.4",
"packages/tpf-document-print": "2.0.1",
"packages/tpf-document-renewal": "1.6.3",
"packages/tpf-document-templates": "1.6.8",
"packages/tpf-hand-letters": "1.7.20",
"packages/tpf-healthcare-products": "4.4.6",
"packages/tpf-medical-device-forms": "13.5.2",
"packages/tpf-medication-database-sdk": "1.9.1",
"packages/tpf-muster-barcode-generator": "1.16.2",
"packages/tpf-muster-forms": "6.4.6",
"packages/tpf-muster-fulfillments": "1.30.11",
"packages/tpf-pdf-utils": "1.5.0",
"packages/tpf-rich-texts-form": "5.2.5",
"packages/tpf-rich-texts-fulfillment": "4.4.2",
"packages/tpf-rich-texts": "4.1.3",
"packages/tpf-therapy-prescriptions": "1.7.4",
"packages/tpf-ti-components": "1.9.4",
"packages/tpf-user-preferences-client": "1.8.2",
"packages/tpf-user-preferences": "1.13.0",
"packages/tpf-document-filler-ui": "3.3.4",
"packages/tpf-diga-fulfillments": "5.4.2",
"packages/tpf-national-health-records-ui": "9.0.0",
"packages/tpf-national-health-records": "4.1.1",
"packages/tpf-consent": "1.4.0",
"packages/tpf-french-auth-service": "1.3.0",
"packages/tpf-french-teleservices": "0.0.0",
"packages/tpf-prescription-fulfillments": "1.1.0"
}
3. GitHub Actions Workflows
A. .github/workflows/releaseplease.yml
Location: /Users/USER/workspace/doctolib/treatment-plan/.github/workflows/releaseplease.yml
Main release workflow that:
- Runs on push to main or manual workflow_dispatch
- Uses googleapis/<REDACTED>
- Publishes packages to npm via CodeArtifact
- Sends Slack notifications to #tpf-tech channel on success/failure
- Extracts released package names and versions for notification
B. .github/workflows/releaseplease_publish_dryrun.yml
Location: /Users/USER/workspace/doctolib/treatment-plan/.github/workflows/releaseplease_publish_dryrun.yml
Dry-run validation workflow that:
- Triggers on PR changes to .release-please-manifest.json
- Runs npx <REDACTED> release-pr in dry-run mode
- Validates changed packages by comparing manifest versions
- Packs changed packages with npm pack --dry-run
C. .github/workflows/releaseplease_validate_packages.yml
Location: /Users/USER/workspace/doctolib/treatment-plan/.github/workflows/releaseplease_validate_packages.yml
Package validation workflow that:
- Validates packages in release-please-config.json against doctolib/github-workspaces repository configuration
- Ensures all packages are declared in workspace configuration
- Posts PR comments and Slack notifications on validation failures
4. Auto-Merge Configuration
.github/workflows/pr_automation.yml
Location: /Users/USER/workspace/doctolib/treatment-plan/.github/workflows/pr_automation.yml
name: PR Automation
on:
pull_request_target:
types: [labeled]
permissions:
contents: read
id-token: write
jobs:
auto-merge:
runs-on: prod-linux-xs
timeout-minutes: 5
if: ${{ github.event.label.name == 'auto-merge' }}
steps:
- name: Load Secrets
uses: doctolib/actions/load-secrets@main
with:
prefix_secrets: true
sparse-checkout-first: true
- name: Auto Merge
uses: doctolib/actions/auto-merge@c37e32c4b58c32cd78a1d233c2398b9060c58b3a # auto-merge-v0.1.3
with:
pr-url: ${{github.event.pull_request.html_url}}
Auto-merge is triggered when the auto-merge label is applied to a PR. All 27 packages in the release-please config have "extra-label": "auto-approve,auto-merge" configured, which means release-please will automatically add both labels to its generated release PRs.
Key Insights:
- 27 packages tracked in release-please configuration
- All packages have auto-approve and auto-merge labels configured
- Release PRs are automatically created via release-please when commits hit main
- Auto-merge is triggered via label application (handled by
doctolib/actions/auto-merge) - Workspace plugin enables cross-package dependency linking
- Sentence-case plugin is enabled for changelog formatting …(truncated, 161 more chars)