Skip to content

For the complete documentation index, see llms.txt.

Configuration Reference

All Promptless configuration lives in a single promptless.yaml file in your organization’s Agent Knowledge Base. This file defines your doc collections, triggers, context sources, and publishing policies in one place.

View and edit your configuration in the dashboard at app.gopromptless.ai/configuration. The Configuration page provides a YAML editor with syntax highlighting, schema-driven completions, and inline validation. Use it when you need precise control over the file format or want to copy configurations between environments.

Click Review changes to see a diff of the YAML, then Save & commit to apply it.

Every organization member can view the configuration, but only admins can edit and save changes. Non-admins see a read-only view.

The editor uses compare-and-swap to avoid overwriting concurrent changes. If someone else modifies the configuration while you’re editing, you see a conflict warning and can reload to get the latest version.

Changes saved in the Configuration page take effect immediately for new triggers. Policies resolve at publish time, so mid-session config edits apply when suggestions are finalized.

When you complete the setup wizard, Promptless creates your promptless.yaml with sensible defaults based on the integrations you connected:

Connected IntegrationGenerated TriggerGenerated Context Source
GitHub (docs or trigger app)github_pr (opened, first_approval, merge) and github_commit with repos: all
GitLabgitlab_mr (opened, merge) with repos: all
Bitbucketbitbucket_pr (opened, merge) with repos: all
Jira / ConfluenceUnscoped jira and/or confluence entries
LinearUnscoped linear entry
NotionUnscoped notion entry

These broad defaults let Promptless start listening for documentation-worthy events immediately. You can edit your configuration anytime to narrow scope, like restricting triggers to specific repositories or limiting context sources to particular projects.

Note

Automatic configuration is additive and idempotent. If you’ve already manually configured a trigger type or context source, onboarding won’t overwrite it.

The configuration file has four top-level sections:

doc_collections: # Where documentation lives (keyed by repo)
context_sources: # Integrations for additional context
triggers: # Events that initiate documentation work
policies: # Publishing and notification rules

All sections are optional. Unknown keys are rejected with validation errors.

Doc collections define the documentation repositories where Promptless publishes updates. Each collection is keyed by its GitHub repository name in owner/repo format.

doc_collections:
acme/docs:
docs_framework: docusaurus
docs_root_url: https://docs.acme.com
filter:
- docs/
- guides/
FieldDescription
platformRepository platform: github (default), github_oss, or github_enterprise
hostGitHub Enterprise hostname (required when platform: github_enterprise)
default_branchBranch to target for PRs (defaults to repository’s default branch)
docs_frameworkDocumentation framework (docusaurus, mkdocs, starlight, etc.)
docs_root_urlPublished documentation site URL
config_file_pathPath to framework config file (e.g., docusaurus.config.js)
vale_config_pathPath to Vale config file to enable prose linting
doc_detectiveDoc Detective configuration (presence enables the feature)
filterList of directory prefixes or file paths Promptless can modify

Note

One repository can have at most one doc collection per organization. Collection “names” are the repository names. There’s no separate display name field.

The filter field controls which files Promptless can modify:

  • Empty or omitted: Promptless can modify any file in the repository.
  • Directory paths: Entries ending with / allow modifications to any file in that directory tree.
  • File paths: Exact file paths allow only that specific file.
doc_collections:
acme/docs:
filter:
- docs/ # All files under docs/
- CHANGELOG.md # Only this specific file

Context sources give Promptless access to your organization’s tools for additional context. They’re used for narrowing scope when you want to limit which projects, spaces, or databases Promptless can query. Each entry requires a source_type field.

An empty entry (or no entry) for a context source means full access to that integration. Only add entries when you need to restrict scope.

context_sources:
jira:
source_type: jira
project_keys:
- DOCS
- PLATFORM
confluence:
source_type: confluence
space_keys:
- ENGINEERING
linear:
source_type: linear
team_keys:
- engineering
- product
notion:
source_type: notion
database_ids:
- abc123def456
Source TypeScope FieldsDescription
jiraproject_keysRestrict to specific Jira project keys
confluencespace_keysRestrict to specific Confluence space keys
linearteam_keysRestrict to specific Linear team identifiers
notiondatabase_ids, page_idsRestrict to specific Notion databases or pages

Triggers define events that automatically initiate documentation work. These are passive intake events that require explicit configuration. Each trigger has a trigger_type and a match list—the trigger fires when any clause in the list matches, and fields within a clause are ANDed together.

triggers:
github-prs:
trigger_type: github_pr
match:
- repos:
- acme/backend
- acme/api
trigger_on:
- opened
- first_approval
trigger_directories:
- src/
- lib/
slack-support:
trigger_type: slack_listen
match:
- channels:
- support
- customer-questions
github_pr

Triggers when pull requests are opened, approved, or merged in specified repositories.

Match clause fields:

FieldDescription
reposRequired. The literal all or a list of repositories (owner/repo format)
excluded_reposRepositories to exclude from monitoring
trigger_onRequired. Events that fire: opened, first_approval, merge
trigger_directoriesOnly trigger when changes touch these directories
branchesOnly trigger for PRs targeting these branches
repo_topicsOnly trigger for repos with these GitHub topics
repo_ownersOnly trigger for repos owned by these owners (the owner segment of owner/repo)
github_commit

Triggers when commits are pushed to specified branches.

Match clause fields:

FieldDescription
reposRequired. The literal all or a list of repositories
excluded_reposRepositories to exclude
branchesBranches to monitor (omit to match only the default branch)
trigger_directoriesOnly trigger when changes touch these directories
repo_topicsOnly trigger for repos with these GitHub topics
repo_ownersOnly trigger for repos owned by these owners
gitlab_mr

Triggers when merge requests are opened or merged in GitLab projects.

Match clause fields:

FieldDescription
reposRequired. The literal all or a list of GitLab projects
excluded_reposProjects to exclude
trigger_onRequired. Events that fire: opened, merge
trigger_directoriesOnly trigger when changes touch these directories
branchesOnly trigger for MRs targeting these branches
bitbucket_pr

Triggers when pull requests are opened or merged in Bitbucket repositories.

Match clause fields:

FieldDescription
reposRequired. The literal all or a list of Bitbucket repositories
excluded_reposRepositories to exclude
trigger_onRequired. Events that fire: opened, merge
trigger_directoriesOnly trigger when changes touch these directories
branchesOnly trigger for PRs targeting these branches
slack_listen

Passively monitors specified Slack channels for documentation-worthy conversations.

Match clause fields:

FieldDescription
channelsRequired. List of channel names to monitor (no # prefix)

Tip

Channel names are automatically updated when channels are renamed in Slack.

msteams_listen

Passively monitors specified Microsoft Teams channels.

Match clause fields:

FieldDescription
channel_idsRequired. List of Teams channel conversation IDs to monitor
clickup

Triggers when ClickUp tasks reach specified statuses.

Match clause fields:

FieldDescription
statusesRequired. List of task statuses that trigger documentation work

Some triggers are always active when their integration is connected and don’t appear in the YAML:

  • slack_mention — @Promptless mentions in Slack channels
  • msteams_mention — @Promptless mentions in Microsoft Teams
  • github_mention — @Promptless mentions in GitHub issues and PR comments
  • web — Requests submitted through the web dashboard
  • api — Requests from the HTTP API

Built-in triggers can’t be disabled, but their keys are valid in policy rules.

Policies control publishing behavior and notifications. They consist of a default overlay and ordered rules that apply based on trigger or doc collection.

policies:
default:
notification:
slack_channel: docs-notifications
publishing:
auto_create_pr: true
auto_merge: false
suppress_source_pr_comments: false
rules:
- if:
trigger: github-commits
then:
publishing:
auto_merge: true
- if:
doc_collection: acme/internal-docs
then:
notification:
slack_channel: internal-docs-team

notification

FieldDescription
slack_channelChannel name for notifications (no # prefix)

publishing

FieldDescription
auto_create_prAutomatically create PRs for suggestions
auto_mergeAutomatically merge documentation PRs
suppress_source_pr_commentsSkip posting comments on source PRs

Rules are evaluated in order. When multiple rules match, fields from later rules override earlier ones. The if clause supports:

  • trigger — Match a specific trigger key (including built-in triggers like slack_mention)
  • doc_collection — Match a specific doc collection by repository name

Both conditions must match if both are specified (AND logic).

Warning

Policies resolve at publish time, not when the trigger fires. If you update your configuration while a suggestion is being created, the new policy values apply when that suggestion is published.

doc_collections:
acme/documentation:
docs_framework: docusaurus
docs_root_url: https://docs.acme.com
config_file_path: docusaurus.config.js
filter:
- docs/
context_sources:
jira:
source_type: jira
project_keys:
- DOCS
- ENG
linear:
source_type: linear
team_keys:
- engineering
# Built-in triggers (api, github_mention, msteams_mention, slack_mention, web)
# are always on for connected integrations and are not configured here;
# their keys remain valid in policies rules.
triggers:
main-repos:
trigger_type: github_pr
match:
- repos:
- acme/backend
- acme/frontend
trigger_on:
- opened
- first_approval
trigger_directories:
- src/
support-channel:
trigger_type: slack_listen
match:
- channels:
- customer-support
policies:
default:
notification:
slack_channel: docs-updates
publishing:
auto_create_pr: true
auto_merge: false
rules:
- if:
trigger: slack_mention
then:
publishing:
suppress_source_pr_comments: true

The configuration editor validates your YAML before saving. Validation errors appear as inline markers at the relevant line, with details including:

  • Path — Which field has the error
  • Line — Line number in the YAML
  • Message — Description of what’s wrong

Common validation errors:

  • Unknown keys (typos or unsupported fields)
  • Invalid enum values (e.g., wrong trigger type)
  • Missing required fields (e.g., host for github_enterprise platform)
  • Duplicate repository keys in doc_collections

Tip

If you edit the configuration file directly via git push, invalid YAML keeps the last valid configuration active. The error is surfaced in the Configuration page editor.

Promptless automatically updates your configuration when repositories or Slack channels are renamed:

  • GitHub repository renames: The doc_collections key and any references in trigger repos/excluded_repos are updated.
  • Slack channel renames: Channel names in slack_listen triggers and notification.slack_channel policies are updated.

These updates are committed directly to your Agent Knowledge Base.

Existing organizations are automatically migrated from the legacy Projects configuration to promptless.yaml. The migration preserves:

  • All trigger configurations and settings
  • Doc collection settings
  • Automatic PR creation and notification preferences
  • Context source scoping

After migration, the Projects page is replaced by the Configuration page. Your triggers and doc collections continue working without any action required.