Skip to content

Commit 83af824

Browse files
authored
Merge pull request #45028 from github/repo-sync
Repo sync
2 parents a3e84a1 + 0406c77 commit 83af824

19 files changed

Lines changed: 526 additions & 34 deletions

File tree

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
---
2+
applyTo: "content/**,data/reusables/**"
3+
---
4+
5+
# Content guidelines for docs.github.com
6+
7+
**When to use**: Writing, editing, or reviewing documentation articles and reusable prose. These are strategic content rules: what to write and how to focus an article.
8+
9+
When asked to work on one part of a larger article, read the whole article first so you can judge whether it meets these guidelines as a whole.
10+
11+
**How to apply these guidelines**: Treat them as strategic suggestions to weigh per article, not mechanical rules to enforce. The right emphasis depends on the article's content type (procedural, conceptual, or reference), so use judgment and stay silent when a guideline does not cleanly apply, rather than flagging or rewriting reflexively.
12+
13+
## Keep only essential content
14+
15+
The strategic priority is simplification: create less content and remove content that is not essential, so readers can navigate higher-value content more easily. Flag content to trim or remove by asking:
16+
17+
* Does it serve a large or high-value audience, rather than an edge case the company does not prioritize?
18+
* Does it help people use GitHub the way we want them to, rather than documenting every possible use?
19+
* Would a typical internet user figure this out on their own by exploring the UI?
20+
* Is the information presented at the moment the reader actually needs it?
21+
22+
## Intros: pull people in
23+
24+
This section applies mainly to the `intro` frontmatter field and, for conceptual articles, section openings.
25+
26+
* Open with the value the reader gets, and the product that delivers it, rather than a restatement of the task or a bare feature name. Technical detail is not bad and belongs in the article; it just should not be the first thing the reader sees when a value-led opening is possible.
27+
* Do not repeat the wording of the title.
28+
* Do not start with "Learn how to..."; it buries the value.
29+
* When conceptual and procedural articles cover the same topic, differentiate them through sentence structure. Conceptual describes what the thing is and why it matters ("{% data variables.product.prodname_copilot %} is an AI coding assistant that helps you write code faster."). Procedural describes what the reader will do and the value they get ("Start using {% data variables.product.prodname_copilot %} to write code faster.").
30+
31+
Examples of strong intros by content type:
32+
33+
* **Conceptual** ("Larger runners"): "Organize and govern your workflows with larger runners using runner groups, concurrency policies, and granular access controls."
34+
* **Procedural** ("Running jobs on larger runners"): "Route jobs to the right machines by using runner groups and workflow labels."
35+
* **Reference** ("Supported AI models in {% data variables.product.prodname_copilot %}"): "Identify which AI models are supported in {% data variables.product.prodname_copilot %} for each client and plan."
36+
37+
## Drive people to the product
38+
39+
* Every article should move the reader to try or use the product, directly or indirectly. Even reference articles do this: readers consult them in order to use the product, so the support is built in and a separate CTA is often unnecessary.
40+
* Only include a CTA link when it genuinely makes the reader's task easier, for example by saving them the time of navigating to a settings page themselves. Do not force a CTA; if none would genuinely help the reader, do not add one. Avoid turning articles into clickbait.
41+
* A CTA can take several forms, for example a direct link to the relevant product or feature, a Copilot prompt the reader can run, or a link to start a free trial.
42+
* Only link to a URL that is the same for everyone on that version. Do not add a CTA when the in-product URL must include an enterprise, organization, or repository name (for example, `https://github.com/ORG/REPO/settings/copilot/code_review`), because the link cannot be made to work for all readers.
43+
* Procedural articles: include a CTA wherever one genuinely helps, as directly as possible.
44+
* Conceptual articles: point the reader to exactly one clear next step, usually a link to the related procedure (for example, an "About pull requests" article points to "Creating a pull request"). Place it where the reader is ready to act, typically at the end of the article.
45+
46+
## Energy and tone
47+
48+
These apply to the prose in an article (intros and explanatory text), not to structural elements like tables, procedural steps, or code.
49+
50+
* Lead with value and real-life impact over technical detail.
51+
* Connect features to the reader's real-life problems to generate genuine interest.
52+
* Use plain, friendly, approachable language. Avoid marketing jargon, buzzwords, and inflated adjectives.
53+
54+
## Scannability
55+
56+
* Give each article exactly one purpose, regardless of content type. That purpose may be physical (e.g., enabling a setting), conceptual (e.g., building a mental model of what a feature does and why it matters, choosing between two options), or referential (e.g., determining which AI models are available to the reader). Include only information central to that purpose for most readers.
57+
* Write for the one reader scenario the article targets, for example a particular deployment configuration (GHEC with EMUs vs. Classic) or a particular type of reader (an open source maintainer vs. an enterprise developer). When the article has a content design plan, target the audience it identifies rather than inventing one; for small edits without a plan, follow the audience the existing article is clearly written for. Do not branch content to serve multiple audiences; readers in other scenarios can adapt the guidance. The exception is version differences: when in-article `{% ifversion %}` branching is genuinely required (see the versioning rules in `content.instructions.md`), it is not a scannability violation.
58+
* Ruthlessly minimize links. Only link when you actively want most readers to follow it in the ideal scenario. No "just in case" links. Links that build a logical user journey are exactly the kind to keep, for example a Prerequisites link that sends the reader to setup they need first, or a Next steps link that points them to the natural follow-on task.
59+
* Ruthlessly minimize alerts (notes, tips, warnings): more than one per article should be exceptional, and crowding several into one section is worse than spreading them out. Keep each to 1-2 sentences. Don't open an article or section with an alert unless the reader needs it before the surrounding content. Prefer folding a useful alert into the prose over deleting it, but first apply this test: if the reader must actually notice it to use the page correctly, keep it as an alert (don't fold or count it), since folding defeats its purpose. This covers, for example, critical warnings, plan or availability constraints, public preview notices, and cues that orient the reader to how the page works or which content applies to them.
60+
* Prefer short sentences and paragraphs, generous white space, and formatting like bold and tables to highlight key information. Use a table only for genuinely complex data that belongs in a tabular format; do not add a table that repeats information already stated more clearly in prose.
-12 Bytes
Loading
-17 Bytes
Loading

config/moda/secrets/ci/secrets.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,21 @@ secrets:
77
playbook: ''
88
externally_usable: true
99
kind: latest_at_deployment_start
10+
DOCS_BOT_APP_CLIENT_ID:
11+
owner: docs-engineering
12+
type: github_app
13+
externally_usable: false
14+
playbook: ''
15+
kind: latest_at_deployment_start
16+
DOCS_BOT_APP_ID:
17+
owner: docs-engineering
18+
type: github_app
19+
externally_usable: false
20+
playbook: ''
21+
kind: latest_at_deployment_start
22+
DOCS_BOT_APP_PRIVATE_KEY:
23+
owner: docs-engineering
24+
type: github_app
25+
externally_usable: false
26+
playbook: ''
27+
kind: latest_at_deployment_start

content/billing/concepts/budgets-and-alerts.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,23 @@ Each budget has a type and a scope that define which paid use contributes to spe
2525

2626
* **Type**: Defines which metered product or SKU is measured.
2727
* **Scope**: Defines whether the budget applies to the whole account, or to a subset of repositories, organizations, cost centers (enterprise only), or users. User-scoped budgets are currently only supported for {% data variables.product.prodname_copilot_short %} {% data variables.product.prodname_ai_credits_short %}, and have three scopes:
28+
2829
* **Universal**: applies to all licensed users by default
2930
* **Cost center user-level**: applies to every user in a cost center
3031
* **Individual**: overrides the above for specific users
3132

32-
For more information about how user-level budgets work and how they interact with other budget controls, see [AUTOTITLE](/copilot/concepts/billing/budgets-for-usage-based-billing).
33+
For {% data variables.product.prodname_copilot_short %}, cost centers can also have included usage controls, which cap how much of the shared {% data variables.product.prodname_ai_credits_short %} pool a cost center can use before metered usage begins. This is a separate control from the budgets and the included usage alerts described below. See [AUTOTITLE](/copilot/concepts/billing/budgets-for-usage-based-billing#included-usage-controls-for-cost-centers).
34+
35+
## Roles and access for budgets
36+
37+
Enterprise owners and billing managers can create and edit enterprise and cost center budgets, and they receive budget alerts by default. Organization owners can set budgets for their own organization, and personal account owners can set budgets for their own account. Each of these roles can view usage for the scopes they manage.
3338

3439
## Budget alerts
3540

36-
You can enable alerts for budgets to receive emails when usage reaches 75%, 90%, and 100% of the budget amount. Emails are sent to account owners and billing managers by default. Additional recipients can be added as needed.
41+
You can enable alerts for budgets to be notified when usage reaches 75%, 90%, and 100% of the budget amount. Alerts are shown in the {% data variables.product.github %} UI and sent by email. By default, alerts go to account owners and billing managers, and you can add additional recipients as needed. Budget alerts are available for budgets scoped to your enterprise, a cost center, an organization, or a repository.
42+
43+
> [!NOTE]
44+
> Alerting for user-level budgets is not consistently available in all scenarios. Don't rely on user-level budget alerts as your only signal, also monitor usage at the cost center or enterprise level.
3745
3846
## Included usage alerts
3947

content/billing/concepts/cost-centers.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,19 @@ To get started with cost centers, see [AUTOTITLE](/billing/tutorials/control-cos
2929

3030
For more details, see [AUTOTITLE](/billing/reference/cost-center-allocation).
3131

32+
## Controlling included usage
33+
34+
For cost centers that contain {% data variables.product.prodname_copilot_short %} licenses, you can apply included usage controls in addition to budgets.
35+
36+
{% data reusables.billing.included-usage-controls %}
37+
38+
This is separate from a cost center budget, which caps metered charges only after the shared pool of {% data variables.product.prodname_ai_credits_short %} is exhausted. For more information, see [AUTOTITLE](/copilot/concepts/billing/budgets-for-usage-based-billing#included-usage-controls-for-cost-centers).
39+
3240
## Cost center limitations
3341

3442
* The maximum number of active cost centers per enterprise is 500.
3543
* The maximum number of resources per cost center is 25,000.
3644
* A maximum of 50 resources can be added to or removed from a cost center at a time.
3745
* Azure subscriptions can only be added to or removed from cost centers through the UI.
3846
* Outside collaborators or unaffiliated users can only be added to cost centers via the cost center API. For more information, see [AUTOTITLE](/billing/tutorials/control-costs-at-scale#add-resources-to-the-cost-center).
47+
* You can't set different budgets for teams within the same cost center. A budget applies to the whole cost center, so if two teams need separate budgets, create a separate cost center for each. Separate cost centers can share the same Azure billing identity.

content/billing/how-tos/products/use-cost-centers.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ When you create a cost center, you can add **organizations**, **repositories**,
3636
1. If your account is billed to Azure, you have the option to add an Azure ID. Your credentials will be verified against Azure to ensure the Azure IDs associated to your account are available.
3737
1. Under **Resources**, select the organizations, repositories, users, and/or enterprise teams that will be a part of the cost center.
3838

39-
>[!NOTE] A resource (organization, repository, or user) can only be assigned to one cost center at a time. If you add a resource that belongs to a different cost center, it will be moved to the new cost center and you will be notified.
39+
> [!NOTE]
40+
> A resource (organization, repository, user, or enterprise team) can only be assigned to one cost center at a time. If you add a resource that belongs to a different cost center, it will be moved to the new cost center and you will be notified.
4041
4142
{% data reusables.billing.cost-center-create-button %}
4243

content/billing/how-tos/set-up-budgets.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,11 @@ You can edit or delete a budget at any time, but you cannot change the scope of
149149
1. In the list of budgets, click {% octicon "kebab-horizontal" aria-label="View actions" %} next to the budget you want to edit, and click **{% octicon "pencil" aria-hidden="true" aria-label="pencil" %} Edit** or **{% octicon "trash" aria-hidden="true" aria-label="trash" %} Delete**.
150150
1. Follow the prompts.
151151

152+
### Controlling included usage for a cost center
153+
154+
Budgets cap metered charges after the shared pool of {% data variables.product.prodname_ai_credits_short %} is exhausted. To cap how much of the pool a cost center can use **before** the metered phase, use an included usage control. {% data variables.product.github %} sets the cap automatically based on the licenses assigned to the cost center, and you choose whether members are blocked or roll into paid overage when the cap is reached. See [AUTOTITLE](/copilot/concepts/billing/budgets-for-usage-based-billing#included-usage-controls-for-cost-centers) and [AUTOTITLE](/billing/concepts/cost-centers).
155+
> [!NOTE]
156+
> Enabling included usage controls does not retroactively redistribute the shared {% data variables.product.prodname_ai_credits_short %} enterprise pool. After the setting is enabled, users in the cost center share only the included {% data variables.product.prodname_ai_credits_short %} funded by licenses attributed to that cost center. When the setting is disabled, users in the cost center can continue drawing from the shared enterprise pool.
152157
## Next steps
153158

154159
For {% data variables.product.prodname_copilot_short %}-specific budget guidance under usage-based billing, including user-level budgets and configuration scenarios, see [AUTOTITLE](/copilot/concepts/billing/budgets-for-usage-based-billing) and [AUTOTITLE](/copilot/tutorials/budgets/optimizing-your-budget-configuration).

content/billing/tutorials/control-costs-at-scale.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ Create one budget for each product, SKU, or group of SKUs that you want to contr
106106

107107
### Review existing budgets for conflicts
108108

109-
After creating your cost center budgets, check existing enterprise-wide budgets to ensure they don't conflict with or override your new cost center budgets.
109+
After creating your cost center budgets, check existing enterprise-wide budgets to ensure they don't conflict with or override your new cost center budgets. When budgets overlap, the most restrictive one applies, so a low budget at a higher scope can block a cost center before its own budget is reached.
110110

111111
Navigate to the "Budgets and alerts" page. You'll see two lists of budgets:
112112

@@ -121,6 +121,14 @@ Review whether any enterprise budgets apply to the same products or SKUs as your
121121

122122
Filter the other budgets list to show a scope of **Cost Centers**. You should see your new cost center with a row for each budget you created. Initially, usage will be near zero, but within a few days you'll see costs accumulating as users and repositories consume products beyond the allowance in their plan.
123123

124+
### Troubleshooting budget conflicts
125+
126+
Keep these limits in mind as you combine budgets across scopes:
127+
128+
* **Budgets overlap, and the most restrictive one applies.** A user can be covered by an individual, cost center, organization, and enterprise budget at the same time. Whichever has the least headroom remaining blocks them first. If someone is blocked unexpectedly, review every scope that applies to them. For the full evaluation order, see [AUTOTITLE](/copilot/concepts/billing/budgets-for-usage-based-billing).
129+
* **You can't set different budgets for teams in the same cost center.** A budget applies to the whole cost center, not to teams within it. If two teams need separate budgets, create a separate cost center for each. Separate cost centers can still share the same Azure billing identity.
130+
* **Budgets don't add up across levels.** An enterprise budget isn't the sum of your cost center budgets, and raising one doesn't raise another. When you change a budget at one level, reconcile the totals at the others yourself.
131+
124132
## 4. Create a cost center with the REST API
125133

126134
Now that you understand how to create cost centers in the user interface, you can explore the REST API to see how cost centers can be created programmatically. Understanding the API helps you evaluate whether automation would benefit your organization.

content/copilot/concepts/billing/budgets-for-usage-based-billing.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,12 @@ When a cost center's budget is exhausted, only users in that cost center are blo
4646
> [!NOTE]
4747
> A cost center budget is different from a cost center user-level budget. A cost center budget caps the team's **total metered charges** after the pool is exhausted. A cost center user-level budget caps **each member's individual consumption** across both the pool and metered phases, the same way other user-level budgets do. You can apply both to the same cost center.
4848
49+
### Included usage controls for cost centers
50+
51+
{% data reusables.billing.included-usage-controls %}
52+
53+
Unlike a cost center budget, which caps metered charges only after the shared pool of {% data variables.product.prodname_ai_credits_short %} is exhausted, an included usage control limits how much of the pool a cost center can draw **before** the metered phase begins. To enable it, see [AUTOTITLE](/billing/how-tos/set-up-budgets).
54+
4955
### Organization budget
5056

5157
An organization budget caps metered charges for users who receive their {% data variables.product.prodname_copilot_short %} license through that organization. Like cost center budgets, it is only active after the shared pool is exhausted.

0 commit comments

Comments
 (0)