Dome Systems

Assemble The Weekly Review

Produce a weekly briefing from read-only delivery, calendar, and collaboration signals.

User
Caller
  • chat
App
Agent
  • assemble-the-weekly-review-analyst
Governance
Gateway
  • assemble-the-weekly-review-readonly
Pool

assemble-the-weekly-review-pool

  • assemble-the-weekly-review-model
Tools

asana

    Tools

    linear

      Tools

      github

        Tools

        gitlab

          Tools

          slack

            Tools

            gmail

              Tools

              google-calendar

                What this template gives you

                • Interface

                  A chat window, in your browser

                  Use the included interface to send a request to this template.

                • Gateway

                  assemble-the-weekly-review-readonly gateway

                  This template sends its requests through assemble-the-weekly-review-readonly gateway, where its access rules and limits apply.

                • Model

                  assemble-the-weekly-review-model

                  This template uses assemble-the-weekly-review-model through the assemble-the-weekly-review-pool pool.

                Usage

                Hand this template to an AI agent to set up this template

                Node.js and npm to run npx.

                Dome CLI, installed with brew install dome-systems/tap/dome, then signed in with dome auth login.

                Docker Compose to run the companion app locally.

                1. 1

                  Create a workspace

                  dome workspaces create --name <workspace-name>

                  The CLI creates and selects a workspace context for you.

                2. 2

                  Confirm the workspace context

                  dome context list

                  The workspace you just created is already selected.

                3. 3

                  Pull the template

                  npx @domesystems/templates pull dome-systems/assemble-the-weekly-review@0.1.1 --dir assemble-the-weekly-review

                  Downloads this immutable release and verifies its digest.

                4. 4

                  Run the template

                  npx @domesystems/templates up --dir assemble-the-weekly-review

                  Imports it into Dome and starts the companion app.

                Dome import variables

                npx @domesystems/templates up imports the template into Dome and prompts for required values. For unattended runs, set them as DOME_IMPORT_VAR_… environment variables.

                Required values

                • DOME_IMPORT_VAR_asana_oauth_client_id
                • DOME_IMPORT_VAR_asana_oauth_client_secret
                • DOME_IMPORT_VAR_anthropic_api_key
                • DOME_IMPORT_VAR_github_oauth_client_id
                • DOME_IMPORT_VAR_github_oauth_client_secret
                • DOME_IMPORT_VAR_slack_oauth_client_id
                • DOME_IMPORT_VAR_slack_oauth_client_secret
                • DOME_IMPORT_VAR_google_oauth_client_id
                • DOME_IMPORT_VAR_google_oauth_client_secret

                Setup guide

                Follow this template's setup guidance for agent variables and upstream connections.

                # Set up Assemble The Weekly Review
                
                This is a read-only composite, but it needs a model credential and every listed data source configured before it can run. Set up isolated test accounts or workspaces first, grant only the smallest read scope that exposes the test data, and store every credential only in Dome's secret inputs. Never put a key or secret in this repository, an agent prompt, or a chat message.
                
                ## Create the model credential
                
                - Create an API key in the [Anthropic Console](https://console.anthropic.com/settings/keys).
                - Enter the raw key as `anthropic_api_key` during import. Do not prepend `Bearer `.
                - The template uses that key only for its managed `claude-sonnet-5` model connection.
                
                ## Create the provider credentials
                
                - `asana_oauth_client_id`: Client ID for a pre-registered Asana MCP app.
                - `asana_oauth_client_secret`: Client secret for a pre-registered Asana MCP app.
                - `github_oauth_client_id`: The Client ID of a GitHub OAuth app registered with Dome's callback URL.
                - `github_oauth_client_secret`: The client secret for the GitHub OAuth app.
                - `slack_oauth_client_id`: A Slack app client ID.
                - `slack_oauth_client_secret`: The Slack app client secret.
                - `google_oauth_client_id`: A Google OAuth client ID for an AI-powered agent.
                - `google_oauth_client_secret`: The Google OAuth client secret.
                
                For a provider that asks you to register a manual OAuth app, use this callback URL exactly:
                
                `https://api.domesystems.ai/oauth/callback`
                
                ## Set up each connected provider
                
                ### Asana
                
                Asana's V2 MCP server requires a pre-registered **MCP app**; it does not
                support Dynamic Client Registration.
                
                - In the [Asana developer console](https://app.asana.com/0/developer-console),
                  create an **MCP app**.
                - In **OAuth**, register the exact redirect URI
                  `https://api.domesystems.ai/oauth/callback`.
                - In **Manage distribution**, allow the Asana workspace that will be used for
                  this agent.
                - `asana_oauth_client_id`: enter the MCP app's Client ID.
                - `asana_oauth_client_secret`: enter the MCP app's Client secret.
                
                After saving, sign in through OAuth with a test user that can see only the
                projects and tasks this agent should read. Asana MCP apps use the permissions of
                the authorizing user; do not request a separate OAuth scope.
                
                ### Linear
                
                This provider uses Dynamic Client Registration (DCR). Do **not** create or paste an OAuth client ID or client secret: after import, Dome registers the client and opens the provider's consent page.
                
                Linear's read-only endpoint supports OAuth 2.1 with Dynamic Client
                Registration. This composite uses `https://mcp.linear.app/mcp/readonly`, so it
                does not require a manually created Linear application or API key.
                
                - After import, complete shared OAuth as a dedicated test member, select the
                  intended workspace, and verify a known test issue is visible while an
                  unshared team's issue is unavailable.
                
                The upstream endpoint and the requested `read` scope are read-only. A separate
                API-key or existing-OAuth-token configuration is available for a non-interactive
                integration; do not add a personal full-access key to this composite.
                
                ### GitHub
                
                GitHub's hosted MCP server supports OAuth, but does not expose Dynamic Client
                Registration. Before import, create a GitHub OAuth app in the
                [GitHub developer settings](https://github.com/settings/developers): select
                **OAuth Apps**, then **New OAuth App**. Use a recognizable name, your
                organization's homepage URL, and this callback URL:
                
                ```text
                https://api.domesystems.ai/oauth/callback
                ```
                
                After creating the app, copy its client ID and generate its client secret.
                GitHub's [OAuth-app creation guide](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/creating-an-oauth-app)
                has the current field-by-field instructions.
                
                - `github_oauth_client_id` and `github_oauth_client_secret`: enter the GitHub
                  OAuth app credentials. Configure the app's callback URL as
                  `https://api.domesystems.ai/oauth/callback`.
                - After import, start the shared GitHub OAuth connection and approve it as a
                  dedicated test user. The template requests `public_repo` and `read:org`, and
                  connects to GitHub's read-only MCP endpoint. This permits public-repository
                  investigation while preventing the MCP server from exposing write tools.
                - Before relying on the connection, verify the consent scopes and organization
                  OAuth-app policy, then test one allowed public repository. GitHub OAuth does
                  not have a read-only private-repository scope: do not grant `repo` merely to
                  make this composite work. Keep repository administration, workflow, package,
                  and organization-write access out of the authorization.
                
                For a headless connection, use the separate fine-grained-PAT configuration and
                limit it to the intended repositories with read-only permissions.
                
                ### GitLab
                
                This provider uses Dynamic Client Registration (DCR). Do **not** create or paste an OAuth client ID or client secret: after import, Dome registers the client and opens the provider's consent page.
                
                GitLab.com supports OAuth 2.0 Dynamic Client Registration for its hosted MCP
                server, so this composite does not require a manually registered application or
                an access token.
                
                - After import, complete shared OAuth as a dedicated test member. The template
                  requests GitLab's `mcp` scope; verify a known test project is
                  visible and that an unshared private project is unavailable.
                
                This composite targets GitLab.com. For a headless connection, use a separate
                project, group, or personal access-token configuration with the same read-only
                scopes. Use a separately reviewed template for a self-managed instance or a
                write-capable workflow.
                
                ### Slack
                
                Before import, create a Slack app at [api.slack.com/apps](https://api.slack.com/apps). Choose **From scratch**, make it internal to the intended workspace, then copy the client ID and client secret from **Basic Information**. In **OAuth & Permissions**, add `https://api.domesystems.ai/oauth/callback` as a redirect URL. In **Agents**, enable **Slack Model Context Protocol (MCP) Server**. Add only the read/search/history/channel/user scopes requested by this template; do not add any write scope. Install or reinstall the app to the dedicated test workspace after changing scopes.
                
                - `slack_oauth_client_id` and `slack_oauth_client_secret`: enter values from an approved internal Slack app.
                
                In the Slack app's **Agents** section, enable the **Slack Model Context Protocol (MCP) Server** feature. Register Dome's redirect URI and grant only the template's search, history, channel, user, canvas-read, and list-read scopes. Do not add `chat:write`, file-write, canvas-write, or other write scopes.
                
                ### Gmail
                
                Before import, open [Google Cloud OAuth clients](https://console.cloud.google.com/auth/clients/create) and create a **Web application** OAuth client. Enable **Use this client for an AI-powered agent**, add `https://api.domesystems.ai/oauth/callback` as an authorized redirect URI, and copy the client ID and secret. In **APIs & Services → Library**, enable both **Gmail API** and **Gmail MCP API** for that same project. Configure the consent screen as **Internal**, or add the test user if it is **External**.
                
                - `google_oauth_client_id` and `google_oauth_client_secret`: enter values from a Google Cloud Web OAuth client configured as an AI-powered agent.
                
                Enable the Gmail and Gmail MCP APIs, add only `gmail.readonly`, and register the redirect URI shown by Dome. Use a test mailbox for the first connection.
                
                ### Google Calendar
                
                Before import, open [Google Cloud OAuth clients](https://console.cloud.google.com/auth/clients/create) and create a **Web application** OAuth client. Enable **Use this client for an AI-powered agent**, add `https://api.domesystems.ai/oauth/callback` as an authorized redirect URI, and copy the client ID and secret. In **APIs & Services → Library**, enable both **Google Calendar API** and **Google Calendar MCP API** for that same project. Configure the consent screen as **Internal**, or add the test user if it is **External**.
                
                - `google_oauth_client_id` and `google_oauth_client_secret`: enter values from a Google Cloud Web OAuth client configured as an AI-powered agent.
                
                Enable the Calendar and Calendar MCP APIs, register the redirect URI shown by Dome, and retain only the calendar list, free/busy, and event read scopes.
                
                ## Import and verify
                
                1. Import the template and provide the values above.
                2. Complete every browser OAuth flow with the intended dedicated test user. Token-based sources do not open a browser.
                3. Open **Tools**, refresh discovery, and confirm every connection is attached to the template gateway.
                4. Run the managed agent against known test data. Treat the template as verified only when the run succeeds **and calls at least one expected read-only tool**.
                
                If a connection is unreachable, check the provider section above for its callback, API/MCP enablement, token prefix, consent scopes, and user/workspace access before retrying.

                Runtime environment

                These variables are required to run the agent. During pull, .env.example is copied to .env when available. If they’re missing, npx @domesystems/templates up retrieves them from Dome and saves them in .env. Pass --provision to refresh them.

                DOME_TOKEN=
                DOME_GATEWAY_URL=

                Agent instructions

                You are Assemble The Weekly Review, a read-only assistant. Produce a weekly briefing from read-only delivery, calendar, and collaboration signals.
                
                Use connected tools only to retrieve information. Do not invoke tools that create, update, delete, send, approve, or change upstream state, even if a provider exposes them. Produce a clear answer with source-specific evidence, confidence, assumptions, and recommended human next steps. When an action is needed, draft or recommend it for a person to perform; do not perform it.