Skip to content

feat(update-project-settings): RM-18985 Add project settings skill for PATCH /v2/projects/me - #15

Merged
xavierandueza merged 16 commits into
feature/improve-skillsfrom
feature/rm-18985-update-project-settings-skill
Oct 13, 2026
Merged

xavierandueza merged 16 commits into
feature/improve-skillsfrom
feature/rm-18985-update-project-settings-skill

Conversation

@xavierandueza

@xavierandueza xavierandueza commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor
🚥 Resolves RM-18985

🧰 Changes

Reviewer Note - I wouldn't bother reading over the testing logic too much - its just to ensure that the endpoint and instructions here don't drift/when they do we catch it.

Creates the update-project-styling skill - covers everything in PATCH /v2/projects/me so largest one we have. I broke down the changes into different "categories" for each change that could be made.

This one is MUCH more vibe-coded than the others due to the sheer number of things users can do here.

Note -> also made test cases because I want to make sure that long-term the things that we're saying can be done via this skill can continue to be done:
https://linear.app/readme-io/issue/RM-19065/setup-ci

🧬 QA & Testing

  • See test cases created for this that emulate what we say the user can do -> ran all of those and they all worked just fine.
  • full intergration testing needs final skill - that will follow up after this one.

@xavierandueza xavierandueza self-assigned this Oct 12, 2026
@greptile-apps

greptile-apps Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

[Low impact] The PR appears safe to merge based on this incremental review.

Reviews (2) · Last reviewed commit: "Revert "chore(skills): sync skills to cl..." · Reviewed by Greptile

Comment thread tests/update-project-settings/lib/snapshot.mjs Outdated

@xavierandueza xavierandueza left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

self-reviewed, LGTM

@xavierandueza
xavierandueza marked this pull request as ready for review October 12, 2026 12:50
greptile-apps[bot]
greptile-apps Bot previously approved these changes Oct 12, 2026

@runnabro runnabro left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

just blocking on the link, thx!


### Give the agent custom knowledge

Set `ai.chat.knowledge.custom_knowledge` to free text the agent should always know, such as a product terminology, target audience notes and more. It is sent in full with every agent request rather than searched, so keep it concise; writes over the length limit are rejected. Set it to `null` to clear it. Style guides exist under the "Docs Audit" feature and are better configured there.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
Set `ai.chat.knowledge.custom_knowledge` to free text the agent should always know, such as a product terminology, target audience notes and more. It is sent in full with every agent request rather than searched, so keep it concise; writes over the length limit are rejected. Set it to `null` to clear it. Style guides exist under the "Docs Audit" feature and are better configured there.
Set `ai.chat.knowledge.custom_knowledge` to free text the agent should always know, such as product terminology, target audience notes, and more. It is sent in full with every agent request rather than searched, so keep it concise; writes over the length limit are rejected. Set it to `null` to clear it. Style guides exist under the "Docs Audit" feature and are better configured there.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

(agent response)
Applied. 761ded7

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

confirmed fixed


## Slack AI Writer

The Slack AI Writer drafts documentation changes from Slack threads, opening a ReadMe branch per thread. See [AI Writer](https://docs.readme.com/main/docs/github-ai-writer). It is currently under closed beta, reach out to support@readme.io to request access.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

wrong link?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

(agent response)
Yes, it pointed to the GitHub AI Writer. The Slack AI Writer is in closed beta and has no public docs page, so I removed the link and kept the note about requesting access through support. 407290a

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Good callout.

We want this to point to:

https://docs.readme.com/main/docs/slack-ai-writer

Instead please - that's hidden for now but will be live by the time this merges in.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

(agent response)
Linked to the Slack AI Writer page instead. It is hidden for now and will be live before this merges. 011f3e7

@greptile-apps
greptile-apps Bot dismissed their stale review October 12, 2026 17:20

Dismissed because a newer commit was pushed; Greptile will re-review the current head.

@minhthanhdang minhthanhdang left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I feel like lots of context about the endpoints should be in MCP tool/endpoint description rather than in skills here.

Comment on lines +14 to +34
### Turn Ask AI on or off

Set `ai.owlbot.enabled`.

The `ai.owlbot.new_experience` is a legacy field - leave as `true` as the legacy experience is deprecated.

Without the AI Booster Pack, Ask AI offers limited customization. The Booster Pack is an add-on: `ai.owlbot.is_paying` reports whether the project has it.

### Choose where Ask AI appears

Set `ai.owlbot.placements` (full array) to any of:

- `header`: a button in the page header
- `floating`: a floating button on every page, centered at the bottom
- `in_search`: inside the search modal - this appears as an 'Ask about "{query}"' and with the booster alternative questions will be generated that on selection will be sent to Ask AI.

The API stores placements in the order `header`, `floating`, `in_search`, whatever order you send. `in_search` only renders in the unified search modal (`appearance.navigation.search_modal: unified`).

The default is `header` and `in_search`. An empty array hides every surface while leaving Ask AI enabled. On an enterprise child, placements come from the parent until the child sets its own.

Related settings elsewhere: the Ask AI accent color (`appearance.brand.askai`) and the unified search modal that combines search with Ask AI (`appearance.navigation.search_modal`) are in [appearance](appearance.md).

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

For example, IMO these should be in endpoint description in MCP, it feels too low-level to be in a skill. Imagine we add a placement option in the future

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

(agent response)
Agreed on the values. The skill already tells the agent to read the updateProject schema with get-endpoint, so the list of values and the default were duplicates that would drift. I removed them and now point to the schema. I kept only the behaviour the schema doesn't describe: in_search needs the unified search modal, the API stores placements in a fixed order, an empty array hides every surface, and how enterprise children inherit. cb824b7

@xavierandueza

Copy link
Copy Markdown
Contributor Author

(agent response)
@minhthanhdang on the wider point: agreed that facts about a single field (allowed values, defaults, read-only, inheritance) belong in the OpenAPI descriptions. That way the MCP tool and the docs stay correct when the API changes. That means editing the API spec, which lives outside this repo, so it would be a follow-up.

This skill is meant to hold what the schema can't say: which field matches a request, how fields affect each other (e.g. in_search only renders in the unified search modal), plan tiers, which settings are dashboard-only, and how to verify a change. It already sends the agent to the schema for exact fields, and the live test suite catches drift in the behaviour it documents.

I fixed the placements example in cb824b7. Other places still repeat values from the schema, so we can trim those the same way.

@xavierandueza
xavierandueza changed the base branch from feature/improve-mcp-auth-skill to feature/improve-skills October 13, 2026 01:17
@xavierandueza
xavierandueza merged commit 94dbd59 into feature/improve-skills Oct 13, 2026
1 check failed
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.

3 participants