Skip to content

fix(cli/init): rephrase agent prompt with ASD-STE100 - #236

Open
Xe wants to merge 1 commit into
mainfrom
Xe/ste100-onboarding-prompt
Open

fix(cli/init): rephrase agent prompt with ASD-STE100#236
Xe wants to merge 1 commit into
mainfrom
Xe/ste100-onboarding-prompt

Conversation

@Xe

@Xe Xe commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Agents need deterministic phrasing to behave predictably. This patch is a further round of hardening to ensure that agent instructions result in more deterministic output.

I applied the concepts from ASD-STE1001 to ensure that there is one instruction per sentence, active voice for every action, and that conditions prefix sentences.

The goal is to make instructions unambiguous for AI agents. A less capable model reads these instructions the same way as a more capable model.

Ref: #230


Note

Low Risk
Copy-only changes to agent-facing prompt text and matching tests; no CLI execution or credential-handling logic is modified.

Overview
tigris init --agent now prints a setup recipe whose wording follows ASD-STE100-style rules: imperative sentences, conditions before commands, and compound steps split so each sentence is one action.

In buildAgentSetup (plan.ts), every step string is rephrased without changing the underlying workflow—install/update lead-in, auth, org selection, bucket creation, access-key temp file handling, .env scripting, and closing links/agent-config snippet. The intro line becomes “Help the user configure Tigris for this project” instead of “set up their project with Tigris.” Secret-handling guidance is spelled out as explicit bullets (script reads credentials; agent must not load the secret into context).

Tests in plan.test.ts are updated to assert the new step-one and step-two phrasing. A changeset documents the patch-level CLI behavior change for consumers.

Reviewed by Cursor Bugbot for commit c2fe7c8. Bugbot is set up for automated code reviews on this repo. Configure here.

Agents need deterministic phrasing to behave predictably. This patch
is a further round of hardening to ensure that agent instructions
result in more deterministic output.

I applied the concepts from ASD-STE100[1] to ensure that there is
one instruction per sentence, active voice for every action, and
that conditions prefix sentences.

The goal is to make instructions unambiguous for AI agents. A less
capable model reads these instructions the same way as a more
capable model.

[1]: https://www.asd-ste100.org/

Ref: #230
Signed-off-by: Xe Iaso <xe@tigrisdata.com>
@Xe
Xe requested a review from designcode August 5, 2026 20:54
@Xe Xe self-assigned this Aug 5, 2026
@greptile-apps

greptile-apps Bot commented Aug 5, 2026

Copy link
Copy Markdown

Greptile Summary

The PR rewrites the tigris init --agent setup recipe in simplified, imperative language to make agent execution more deterministic.

  • Splits compound setup instructions into shorter sentences with explicit conditions and actions.
  • Updates install, authentication, bucket, access-key, environment, and documentation guidance.
  • Adjusts the init-plan tests and adds patch changesets for both CLI packages.

Confidence Score: 4/5

The organization-selection instruction should be fixed before merging because agents can execute it without a concrete organization and stop the setup flow.

The rewritten condition governs only asking the user, while the required orgs select <org> command is presented as the next unconditional action and fails when no organization value is available.

Files Needing Attention: packages/cli/src/lib/init/plan.ts

Important Files Changed

Filename Overview
packages/cli/src/lib/init/plan.ts Rephrases the generated agent recipe, but separates organization selection from its intended condition and can direct agents to run it without a resolved organization.
packages/cli/test/lib/init/plan.test.ts Updates assertions for the revised wording but does not cover the conditional organization-selection instruction.
.changeset/cli-init-agent-recipe-simplified-english.md Adds appropriate patch release notes for the agent-recipe wording changes.

Reviews (1): Last reviewed commit: "fix(cli/init): rephrase agent prompt wit..." | Re-trigger Greptile

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit c2fe7c8. Configure here.

'Infer the project name from metadata (package.json, go.mod, pyproject.toml, ...). Check `tigris buckets list --format json` first; if the bucket is absent, `tigris buckets create <name> --format json`. Ask the user whenever anything is ambiguous.',
`Create the access key into a private temp file (overwrite, never append), then print only the ID:
'Run `tigris whoami` to get the authentication state. If the user is not authenticated, run `tigris login oauth`.',
'Run `tigris orgs list --format json`. If there is more than one org, ask the user which org to use. Then run `tigris orgs select <org>` to make that org active. The commands that come after target the active org.',

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Org select lost its condition

Medium Severity

Splitting the org step into STE sentences left tigris orgs select without the multi-org condition that used to gate it. Agents can now treat select as always required even when <org> was never chosen, which is common for single-org users and undermines the deterministic phrasing this change aims for.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit c2fe7c8. Configure here.

'Infer the project name from metadata (package.json, go.mod, pyproject.toml, ...). Check `tigris buckets list --format json` first; if the bucket is absent, `tigris buckets create <name> --format json`. Ask the user whenever anything is ambiguous.',
`Create the access key into a private temp file (overwrite, never append), then print only the ID:
'Run `tigris whoami` to get the authentication state. If the user is not authenticated, run `tigris login oauth`.',
'Run `tigris orgs list --format json`. If there is more than one org, ask the user which org to use. Then run `tigris orgs select <org>` to make that org active. The commands that come after target the active org.',

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Organization selection loses its guard

When the account has zero or one organization, the condition only guards asking the user, while the separate Then run instruction still directs the agent to execute tigris orgs select <org>. Without a concrete organization, this required positional argument produces an organization-required or organization-not-found error and stops setup.

Suggested change
'Run `tigris orgs list --format json`. If there is more than one org, ask the user which org to use. Then run `tigris orgs select <org>` to make that org active. The commands that come after target the active org.',
'Run `tigris orgs list --format json`. If there is more than one org, ask the user which org to use. If there is more than one org, run `tigris orgs select <org>` to make that org active. The commands that come after target the active org.',

Knowledge Base Used: Tigris CLI

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants