Skip to content

Commit 5cdf305

Browse files
Merge pull request #2670 from madeline-underwood/copilot_instructions_update
Copilot instructions update
2 parents 1831ce1 + 5e908be commit 5cdf305

1 file changed

Lines changed: 99 additions & 32 deletions

File tree

.github/copilot-instructions.md

Lines changed: 99 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -10,52 +10,54 @@ The key directories are:
1010

1111
### Top level structure
1212

13-
/content - The main directory containing all Learning Paths and install guides as markdown files
14-
/themes - HTML templates and styling elements that render the content into the final website
15-
/tools - Python scripts for automated website integrity checking
16-
config.toml - High-level Hugo configuration settings
13+
- `/content` - The main directory containing all Learning Paths and install guides as markdown files
14+
- `/themes` - HTML templates and styling elements that render the content into the final website
15+
- `/tools` - Python scripts for automated website integrity checking
16+
- `config.toml` - High-level Hugo configuration settings
1717

18-
### Content organization:
18+
### Content organization
1919

20-
The /content directory is organized into:
20+
The `/content` directory is organized into:
2121

22-
- learning-paths/ Core learning content organized by categories:
23-
-- embedded-and-microcontrollers/ MCU, IoT, and embedded development topics
24-
-- servers-and-cloud-computing/ Server, cloud, and enterprise computing topics
25-
-- mobile-graphics-and-gaming/ Mobile app development, graphics, and gaming
26-
-- cross-platform/ Cross-platform development and general programming topics, these appear in multiple categories on the website
27-
-- laptops-and-desktops/ Desktop application development, primarily Windows on Arm and macOS
28-
-- automotive/ Automotive and ADAS development
29-
-- iot/ IoT-specific Learning Paths
22+
- `learning-paths/` - Core learning content organized by categories:
23+
- `embedded-and-microcontrollers/` - MCU, IoT, and embedded development topics
24+
- `servers-and-cloud-computing/` - Server, cloud, and enterprise computing topics
25+
- `mobile-graphics-and-gaming/` - Mobile app development, graphics, and gaming
26+
- `cross-platform/` - Cross-platform development and general programming topics, these appear in multiple categories on the website
27+
- `laptops-and-desktops/` - Desktop application development, primarily Windows on Arm and macOS
28+
- `automotive/` - Automotive and ADAS development
29+
- `iot/` - IoT-specific Learning Paths
3030

31-
- install-guides/ - Tool installation guides with supporting subdirectories organized by tool categories like docker/, gcc/, license/, browsers/, plus an _images/ directory for screenshots and diagrams
31+
- `install-guides/` - Tool installation guides with supporting subdirectories organized by tool categories like `docker/`, `gcc/`, `license/`, `browsers/`, plus an `_images/` directory for screenshots and diagrams
3232

3333
These are special directories and not used for regular content creation:
34-
migration/ Migration guides and resources, this maps to https://learn.arm.com/migration
35-
lists/ Content listing and organization files, this maps to https://learn.arm.com/lists
36-
stats/ Website statistics and analytics, this maps to https://learn.arm.com/stats
3734

38-
The /content directory is the primary workspace where contributors add new Learning Paths as markdown files, organized into category-specific subdirectories that correspond to the different learning path topics available on the site at https://learn.arm.com/.
35+
- `migration/` - Migration guides and resources, this maps to https://learn.arm.com/migration
36+
- `lists/` - Content listing and organization files, this maps to https://learn.arm.com/lists
37+
- `stats/` - Website statistics and analytics, this maps to https://learn.arm.com/stats
38+
39+
The `/content` directory is the primary workspace where contributors add new Learning Paths as markdown files, organized into category-specific subdirectories that correspond to the different learning path topics available on the site at https://learn.arm.com/.
3940

4041
## Content requirements
4142

4243
Read the files in the directory `content/learning-paths/cross-platform/_example-learning-path` for information about how Learning Path content should be created. Also see the guidelines below.
4344

4445
### Content structure
4546

46-
Each Learning Path must have an _index.md file and a _next-steps.md file. The _index.md file contains the main content of the Learning Path. The _next-steps.md file contains links to related content and is included at the end of the Learning Path.
47+
Each Learning Path must have an `_index.md` file and a `_next-steps.md` file. The `_index.md` file contains the main content of the Learning Path. The `_next-steps.md` file contains links to related content and is included at the end of the Learning Path.
4748

4849
Additional resources and 'next steps' content should be placed in the `further_reading` section of `_index.md`, NOT in `_next-steps.md`. The `_next-steps.md` file should remain minimal and unmodified as indicated by "FIXED, DO NOT MODIFY" comments in the template.
4950

50-
The _index.md file should contain the following front matter and content sections:
51+
The `_index.md` file should contain the following front matter and content sections:
5152

5253
Front Matter (YAML format):
54+
5355
- `title`: Imperative heading following the [verb] + [technology] + [outcome] format
54-
- `weight`: Numerical ordering for display sequence, weight is 1 for _index.md and each page is ordered by weight, no markdown files should have the same weight in a directory
56+
- `weight`: Numerical ordering for display sequence, weight is 1 for `_index.md` and each page is ordered by weight, no markdown files should have the same weight in a directory
5557
- `layout`: Template type (usually "learningpathall")
5658
- `minutes_to_complete`: Realistic time estimate for completion
5759
- `prerequisites`: List of required knowledge, tools, or prior learning paths
58-
- `author`: Main contributor's name, multiple authors can be listed separated using - on new lines
60+
- `author`: Main contributor's name, multiple authors can be listed separated using `-` on new lines
5961
- `subjects`: Technology categories for filtering and search, this is a closed list and must match one of the subjects listed on https://learn.arm.com/learning-paths/cross-platform/_example-learning-path/write-2-metadata/
6062
- `armips`: Relevant Arm IP, stick to Neoverse, Cortex-A, Cortex-M, etc. Don't list specific CPU models or Arm architecture versions
6163
- `tools_software_languages`: Open category listing Programming languages, frameworks, and development tools used
@@ -64,7 +66,8 @@ Front Matter (YAML format):
6466

6567
### Further reading curation
6668

67-
Limit further_reading resources to four to six essential links. Prioritize:
69+
Limit `further_reading` resources to four to six essential links. Prioritize:
70+
6871
- Direct relevance to the topic
6972
- Arm-specific Learning Paths over generic external resources
7073
- Foundation knowledge for target audience
@@ -74,14 +77,16 @@ Limit further_reading resources to four to six essential links. Prioritize:
7477
Avoid overwhelming readers with too many links, which can cause them to leave the platform.
7578

7679
All Learning Paths should generally include:
77-
Title: [Imperative verb] + [technology/tool] + [outcome]
78-
Introduction paragraph: Context + user goal + value proposition
79-
Prerequisites section with explicit requirements and links
80-
Learning objectives: three to four bulleted, measurable outcomes with action verbs
81-
Step-by-step sections with logical progression
82-
Clear next steps/conclusion
80+
81+
- Title: [Imperative verb] + [technology/tool] + [outcome]
82+
- Introduction paragraph: Context + user goal + value proposition
83+
- Prerequisites section with explicit requirements and links
84+
- Learning objectives: three to four bulleted, measurable outcomes with action verbs
85+
- Step-by-step sections with logical progression
86+
- Clear next steps/conclusion
8387

8488
For title formatting:
89+
8590
- MUST use imperative voice ("Deploy", "Configure", "Build", "Create")
8691
- MUST include SEO keywords (technology names, tools)
8792
- Examples: "Deploy applications on Arm servers", "Configure Arm processors for optimal performance"
@@ -91,19 +96,21 @@ The term "Learning Path" should always be capitalized.
9196
### Writing style
9297

9398
Voice and Tone:
99+
94100
- Second person ("you", "your") - NEVER first person ("I", "we")
95101
- Active voice - AVOID passive constructions
96102
- Present tense for descriptions
97103
- Imperative mood for commands
98104
- Confident and developer-friendly tone
99105
- Encouraging language for complex tasks
100-
- Use inclusive language:
106+
- Use inclusive language:
101107
- Use "primary/subordinate" instead of "master/slave" terminology
102108
- Don't use gendered examples or assumptions
103109
- Be mindful of cultural references that might not translate globally
104110
- Focus on clear, accessible language for all developers
105111

106112
### Sentence structure and clarity
113+
107114
- Average 15-20 words per sentence
108115
- Split complex sentences for scalability
109116
- Plain English - avoid jargon overload
@@ -113,6 +120,7 @@ Voice and Tone:
113120
- Parallel structure in all lists
114121

115122
### Readability and section flow
123+
116124
- Flag any section over 700 words and suggest natural split points
117125
- Warn if more than 300 words appear between code examples
118126
- Identify paragraphs with sentences averaging over 20 words
@@ -127,11 +135,21 @@ Voice and Tone:
127135
- Walls of text cause people to bounce from the page
128136
- If you're explaining 3+ things in one section, split it into separate sections
129137
- Each code block should be preceded by one to three sentences explaining what it does.
138+
- For Learning Paths, include a short recap and forward-looking transition at the end of each major instructional section or module. Use a consistent heading such as:
139+
140+
## What you’ve accomplished and what’s next:
141+
142+
In this section:
143+
- Briefly summarize what the user has learned or completed
144+
- Briefly describe what the user should expect in the next section or suggest further exploration
145+
146+
Keep this concise and encouraging. Do not repeat earlier content verbatim.
130147

131148
### Word choice and style
149+
132150
- Use these preferred terms and phrases for consistency:
133151
- Numbers and units: Spell out numbers one through five (one, two, three, four, five), after this use numerals (6, 7, 8...). Use proper spacing for units: "1 GB", "23 MB/day" (not "1GB", "23MB/day"). Use "K" for thousands: "64K" (not "64k"). Use abbreviations for data rates: "Gbps" (not "Gb per second").
134-
- Common phrases: "To [action]" (not "Follow the steps below to [action]"), "for example" (not "e.g."), "that is" (not "i.e."), "because" (not "since"), "also" (not "in addition"), "to" (not "in order to"), "see" (not "refer to"), "use" (not "utilize" or "leverage"), "need" (not "require"), "can" or "might" (not "may"), "set up" as verb, "setup" as noun, "therefore" (not "ergo"), "namely" (not "viz."), "avoid" (not "try not to").
152+
- Common phrases: "To [action]" (not "Follow the steps below to [action]"), "for example" (not "e.g."), "that is" (not "i.e."), "because" (not "since"), "also" (not "in addition"), "to" (not "in order to"), "see" (not "refer to"), "use" (not "utilize" or "leverage"), "need" (not "require"), "can" or "might" (not "may"), "set up" as verb, "setup" as noun, "therefore" (not "ergo"), "namely" (not "viz."), "avoid" (not "try not to").
135153
- Avoid condescending language: Don't use "simply", "just", "obviously", "clearly" - what's simple to you might not be to the learner.
136154
- Acknowledge when something can be tricky: Use phrases like "this step can be confusing at first" to validate learner experience.
137155
- Normalize errors: Use phrases like "if you see this error, here's how to fix it" to reassure learners that errors are part of the learning process.
@@ -141,6 +159,7 @@ Voice and Tone:
141159
## Content structure and consistency
142160

143161
### Cross-file and quality assurance
162+
144163
- Use the same technical terms consistently throughout all sections
145164
- Apply the word choice and style guidelines uniformly across all files
146165
- Maintain consistent capitalization of product names, technologies, and concepts
@@ -166,6 +185,7 @@ Voice and Tone:
166185
## Formatting and code samples
167186

168187
### Heading guidelines
188+
169189
- Use sentence case for all headings (first word capitalized, rest lowercase except proper nouns)
170190
- Heading types:
171191
- Conceptual headings: When explaining technology/motivation ("What is containerization?")
@@ -178,6 +198,7 @@ Voice and Tone:
178198
- H4: Specific technical details or troubleshooting
179199

180200
### Code samples and formatting
201+
181202
- ALWAYS provide explanation before code blocks
182203
- Format: [What it does][Code][Expected outcome][Key parameters]
183204
- Use markdown tags for programming languages like bash, python, yaml, json, etc.
@@ -188,13 +209,20 @@ Voice and Tone:
188209
- Use shortcodes for common pitfalls, warnings, important notes.
189210

190211
## Arm naming and architecture terms
212+
191213
- Use Arm for the brand in prose (for example, "Arm processors", "Arm servers").
192214
- Use arm64 or aarch64 for the CPU architecture; these are acceptable and interchangeable labels. Prefer whichever term a tool, package, or OS uses natively.
193215
- Always use "Arm" (not "ARM") in all contexts except when referring to specific technical terms that require the original casing.
194216
- ARM64 is used by Windows on Arm and Microsoft documentation, so it is acceptable to use ARM64 when specifically referring to Windows on Arm.
195217
- In code blocks, CLI flags, package names, file paths, and outputs, keep the exact casing used by the tool (for example, --arch arm64, uname -m → aarch64).
196218

219+
## Product name emphasis
220+
221+
- Product names and technical technologies (for example, LiteRT, XNNPACK, KleidiAI, SME2) should appear in regular text.
222+
- Avoid using italics or bold to emphasize product or technology names unless they are part of a heading or a UI label.
223+
197224
## Hyperlink guidelines
225+
198226
- Use the full path format for internal links: `/learning-paths/category/path-name/` (e.g., `/learning-paths/cross-platform/docker/`). Do NOT use relative paths like `../path-name/`.
199227
- Use the full URL for external links that are not on learn.arm.com, these open in a new tab.
200228
- When creating Learning Path content:
@@ -206,66 +234,96 @@ Voice and Tone:
206234
- Some links are useful in content, but too many links can be distracting and readers will leave the platform following them. Include only necessary links in the content; place others in the "Next Steps" section at the end. Flag any page with too many links for review.
207235

208236
## Avoid looking like AI-generated content
237+
209238
- Warning signs of over-bulleting: More than 3 consecutive sections using bullet lists, bullet points that could be combined into narrative paragraphs, lists where items don't have parallel structure, bullet points that are actually full sentences better suited for paragraphs.
210239
- Use flowing narrative instead of excessive bullets.
211240
- Use natural writing patterns: Vary sentence length, use transitional phrases, include contextual explanations, add relevant examples, connect ideas logically.
212241
- Use conversational elements: Instead of "Execute the following command:", use "Now that you've configured the environment, run the following command to start the service:". Instead of "This provides benefits:", use "You'll notice several advantages with this approach, particularly when working with...".
213242

243+
### Language smoothing
244+
245+
Avoid robotic or generic encouragement phrases such as:
246+
- "Great job — let’s get started!"
247+
- "Great job — your environment is ready!"
248+
249+
Use calm, natural transitions that focus on what happens next.
250+
251+
Also avoid multiple consecutive sentences starting with "This" (for example, "This ensures...", "This creates...", "This provides..."). Vary sentence structure to maintain natural flow.
252+
214253
## AI-specific guidelines for content creation and editing
215254

216255
### Context awareness
256+
217257
- Consider the learner's likely environment (development vs. production, local vs. cloud)
218258
- Recognize when content assumes x86 defaults and suggest Arm alternatives
219259
- Flag when third-party tools may have limited Arm support
220260
- Suggest Arm-native alternatives when available (e.g., Arm compilers, optimized libraries)
221261

222262
### Technical depth consistency
263+
223264
- Maintain appropriate complexity level throughout the Learning Path
224265
- Avoid oversimplifying for Advanced skill level content
225266
- Don't assume prior knowledge beyond stated prerequisites
226267
- Balance theoretical explanation with practical implementation
227268

228269
### Platform-specific considerations
270+
229271
- Default to Arm-optimized solutions and configurations
230272
- Mention x86 alternatives only when Arm solutions don't exist
231273
- Consider performance implications specific to Arm architectures
232274
- Address common Arm migration challenges when relevant
233275

234276
### Quality assurance
277+
235278
- Flag inconsistent terminology usage across sections
236279
- Identify missing error handling or troubleshooting guidance
237280
- Suggest where visual aids (diagrams, screenshots) would improve understanding
238281
- Recommend splitting overly complex sections
239282
- Verify that code examples follow established patterns in the repository
240283

241284
### Accessibility and inclusivity
285+
242286
- Ensure content is screen reader compatible
243287
- Provide descriptive alt text for images and diagrams
244288
- Use clear, descriptive link text (not "click here" or "read more")
245289
- Avoid assumptions about user's physical capabilities or setup
290+
- When adding images or diagrams, ensure that alt text is complete and meaningful for screen reader users. Alt text should explain:
291+
- The main subject and purpose of the image
292+
- Any visible text labels, UI elements, or controls
293+
- The environment or context (for example, dashboard, code editor, terminal, or hardware setup)
294+
- The emotional tone only if it adds meaning (for example, warning or error states)
295+
296+
Use the following format consistently:
297+
![Descriptive alt text#center](image.png "Caption")
298+
299+
Avoid placeholders or generic phrases. Alt text should stand alone as a full description of the image.
246300

247301
### SEO and discoverability
302+
248303
- Use Arm-specific keywords naturally throughout content
249304
- Include relevant technical terms that developers search for
250305
- Optimize titles and headings for search engines
251306
- Use semantic HTML structure in markdown when possible
252307
- Consider how content will appear in search results
253308

254309
### Cross-reference validation
310+
255311
- Verify all internal links point to existing content
256312
- Check that referenced Learning Paths and install guides are current
257313
- Ensure cross-references between sections remain accurate after edits
258314
- Flag broken or outdated external links
259315
- Maintain consistency in how related content is referenced
260316

261317
### Performance testing guidance
318+
262319
- Include benchmarks when comparing Arm vs. x86 performance
263320
- Suggest performance testing steps for resource-intensive applications
264321
- Recommend profiling tools that work well on Arm platforms
265322
- Include guidance on measuring and optimizing for Arm-specific performance characteristics
266323
- Mention when performance improvements are architecture-specific
267324

268325
### AI optimization (AIO) guidance
326+
269327
- Structure content with clear, semantic headings that AI can parse and understand
270328
- Use descriptive, standalone sentences that make sense without surrounding context
271329
- Include explicit problem statements and clear solutions for AI to reference
@@ -281,3 +339,12 @@ Voice and Tone:
281339
- Write comprehensive summaries that AI can use as content overviews
282340
- Ensure each section can stand alone as a coherent piece of information
283341
- Use clear, declarative statements rather than implied or contextual references
342+
343+
#### Editorial decision priorities
344+
345+
When content trade-offs are required, prioritize the following in order:
346+
347+
1. Alignment with the stated purpose and positioning of the content
348+
2. Clarity and readability for the intended skill level
349+
3. Consistency with existing Learning Paths and install guides
350+
4. Completeness within the stated scope

0 commit comments

Comments
 (0)