fix(ci): pass tessl-token to skill-review and fix env scope - #267
Conversation
The Tessl Skill Review workflow has been failing on every PR since 2026-07-27. Bump the tesslio/skill-review pin from 22e928dd (March 2026) to 7e7ea574 (latest main), pass the new tessl-token input from the existing TESSL_TOKEN org secret, and move the TESSL_TOKEN env var from job level down to the guard step only, since job-level env no longer reaches the CLI now that the composite shadows it with its own step-level value. Also refresh the header comment. Closes #265
|
Note Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Up to standards ✅🟢 Issues
|
|
Greptile SummaryRestores authenticated Tessl skill reviews by updating the pinned action and passing the existing organization token through the action’s supported input.
Confidence Score: 5/5The PR appears safe to merge, with no actionable changed-code defects identified. The guard retains access to the secret at step scope, while the review action receives the same secret through its supported input; missing secrets still cause an intentional skip rather than an authentication failure.
|
| Filename | Overview |
|---|---|
| .github/workflows/tessl-skill-review.yml | Correctly updates the action pin, passes the Tessl token through the new input, and preserves graceful skipping when the secret is unavailable. |
Reviews (1): Last reviewed commit: "fix(ci): pass tessl-token to skill-revie..." | Re-trigger Greptile
There was a problem hiding this comment.
No issues found across 1 file
Confidence score: 5/5
- Automated review surfaced no issues in the provided summaries.
- No files require special attention.
Architecture diagram
sequenceDiagram
participant GH as GitHub Actions
participant WF as tessl-skill-review.yml
participant Guard as Check TESSL_TOKEN step
participant Action as tesslio/skill-review@7e7ea574
participant SetupTessl as tesslio/setup-tessl
participant TesslCLI as tessl CLI
participant TesslSvc as Tessl Service
Note over GH,TesslSvc: Tessl Skill Review - Authenticated Flow
GH->>WF: Trigger on PR (path filter: plugins/**/skills/**)
WF->>Guard: Run guard step
Guard->>Guard: Read TESSL_TOKEN from step-level env
alt TESSL_TOKEN not set
Guard->>GH: Warning + set skip=true
Note over GH: Job no-ops silently
else TESSL_TOKEN set
Guard->>GH: Set skip=false
end
alt skip != true
WF->>Action: Invoke with tessl-token input
Action->>SetupTessl: Forward token
SetupTessl->>TesslCLI: Configure auth with token
Action->>TesslCLI: Run "tessl review run quality"
TesslCLI->>TesslSvc: Authenticated review request
alt Token sees exactly one workspace
TesslSvc-->>TesslCLI: Review scores (0-100)
TesslCLI-->>Action: Valid score range
Action->>GH: Post PR comment with scores
alt Score below fail-threshold
Action->>GH: Fail check
else Score at/above threshold
Action->>GH: Pass check
end
else Multiple workspaces detected
TesslSvc-->>TesslCLI: Ambiguous workspace error
TesslCLI-->>Action: Explicit failure (requests workspace input)
Action->>GH: Fail check with self-describing message
end
end



Summary
The Tessl Skill Review check has been failing on every PR since 2026-07-27 (last green run was 2026-07-20). In the logs, every skill returns
score: -1, then the action crashes with:The negative score feeds a
repeat()call — a bug upstream already fixed in commit5aefcf5e.Root cause: our pin
22e928ddis from March 2026 and predates three upstream changes:c9357d38— reviews now require Tessl auth; the unauthenticated path is closed server-sideb8d7e7dc— migrated totessl review run quality5aefcf5e— the score-range crash fixFix:
tesslio/skill-reviewpin to7e7ea574722a6d72752aa5a316bcc813d06b7cd2(latest main)tessl-tokeninput from the existingTESSL_TOKENsecretTESSL_TOKENfrom job-levelenvdown to the guard step onlyThe env move matters because the upstream composite now sets its own step-level
TESSL_TOKENfrom thetessl-tokeninput, which shadows any job-level value — without passing the input, auth would be silently empty even though our guard step passed.Deliberate deviations from issue #265
TESSL_API_TOKENsecret.TESSL_TOKENalready exists as an org secret visible to this repo, and it's whattessl-publish.ymlalready uses.@main, per the org's GitHub Actions SHA-pinning standard.Open caveat
It could not be verified whether the org
TESSL_TOKENsees more than one Tessl workspace (the localtesslCLI is not authenticated here). If it sees several, the run fails with an explicit request to set aworkspace:input — a clear, self-describing failure. The workflow's header comment documents this; worth watching the check on this PR to confirm.Note for reviewers
This PR only touches
.github/workflows/tessl-skill-review.yml, so the Tessl Skill Review check itself will not trigger here — its path filter isplugins/**/skills/**. The fix will first be exercised on the next PR that touches a skill. Don't expect a green Tessl check on this PR as proof; validation here isactionlint+ YAML parsing.Validation
actionlintpasses on the workflowRelated issue
Closes #265
Checklist
bun run test)actionlint)BREAKING CHANGE:note is includedSummary by cubic
Restores Tessl Skill Review by updating the
tesslio/skill-reviewaction and passing the required Tessl token. Previously the check ran unauthenticated, returned -1 scores, and crashed; now it authenticates, uses the updated command, and avoids the score-range crash.tesslio/skill-reviewto the latest main; adopts upstream auth requirement and bug fix.tessl-tokeninput from the existingTESSL_TOKENsecret; scopesTESSL_TOKENto the guard step to avoid being shadowed by the composite.TESSL_TOKENspans multiple Tessl workspaces, set aworkspace:input to select one.Written for commit 42f87f3. Summary will update on new commits.