Skip to content

Commit 283089d

Browse files
fixes with skills
1 parent dbc81d1 commit 283089d

19 files changed

Lines changed: 461 additions & 478 deletions

File tree

.github/skills/writing-style-review/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Use this skill for granular prose, voice, readability, terminology, and style re
1919
## Voice and tone
2020

2121
- Use second person: `you` and `your` for Learning Path summaries, Learning Path content, install guide content, answers to FAQs, and metadata descriptions. Avoid first person for these content types.
22-
- Use first person: `I` and `we` for FAQs.
22+
- Use first person: `I` for FAQ questions only.
2323
- Use active voice.
2424
- Use present tense for descriptions.
2525
- Use imperative mood for commands.

content/learning-paths/cross-platform/adler32/_index.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ generated_summary_faq:
3333
checksum project on an Arm Linux system, establish a C baseline, and measure results. First, you'll
3434
generate the C implementation, create a test program that validates correctness and records
3535
timing for multiple input sizes, and ask Copilot to produce a GCC-based Makefile tuned for
36-
a Neoverse N1 target. Then, you'll to build and run the project, verify outputs, and
36+
a Neoverse N1 target. Then, you'll build and run the project, verify outputs, and
3737
collect timing data. With a working harness and repeatable measurements, you're positioned
3838
to introduce Arm Neon intrinsics for the Adler32 hot path and compare behavior against the
3939
baseline C version.
@@ -57,8 +57,8 @@ generated_summary_faq:
5757
If a flag is not recognized for your CPU, adjust or remove it and rebuild.
5858
- question: What output should I expect when measuring performance?
5959
answer: >-
60-
The test program measures timing around Adler32 calls on random inputs of 1 kb, 10 kb, 100
61-
kb, 1 mb, and 10 mb. You should see per-size timings that you can reuse when evaluating
60+
The test program measures timing around Adler32 calls on random inputs of 1 KB, 10 KB, 100
61+
KB, 1 MB, and 10 MB. You should see per-size timings that you can reuse when evaluating
6262
a Neon-based implementation.
6363
# END generated_summary_faq
6464

@@ -106,4 +106,3 @@ weight: 1 # _index.md always has weight of 1 to order corr
106106
layout: "learningpathall" # All files under learning paths have this same wrapper
107107
learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content.
108108
---
109-

content/learning-paths/cross-platform/automate-mcp-with-testcontainers/_index.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,12 @@ generated_summary_faq:
3838
and execute commands inside it. Then, you'll build a minimal integration test suite for
3939
the Arm MCP server, focusing on JSON-RPC 2.0 communication over standard input and output.
4040
Finally, you'll add a GitHub Actions workflow to run the tests on every push and pull request
41-
using native Arm64 runners with Docker. By the end, you'll have containerized tests that validate
41+
using native arm64 runners with Docker. By the end, you'll have containerized tests that validate
4242
MCP server behavior locally and in continuous integration.
4343
faqs:
4444
- question: How do I know Docker is ready before running the examples?
4545
answer: >-
46-
Run docker info and confirm it returns configuration details without errors. If it fails,
46+
Run `docker info` and confirm it returns configuration details without errors. If it fails,
4747
start the Docker daemon and retry.
4848
- question: What should I expect when I run the basic Testcontainers example?
4949
answer: >-
@@ -56,11 +56,11 @@ generated_summary_faq:
5656
each test run.
5757
- question: Where can I find a complete reference implementation of the tests?
5858
answer: >-
59-
A full test implementation is available in the Arm MCP repository under mcp-local/tests/.
59+
A full test implementation is available in the Arm MCP repository under `mcp-local/tests/`.
6060
You can consult those files while building your own suite.
6161
- question: Which events should trigger the GitHub Actions workflow, and where is it defined?
6262
answer: >-
63-
The workflow runs on push and pull_request and is defined at `.github/workflows/integration-tests.yml`.
63+
The workflow runs on `push` and `pull_request` and is defined at `.github/workflows/integration-tests.yml`.
6464
GitHub’s native Arm64 runners include Docker.
6565
# END generated_summary_faq
6666

@@ -117,4 +117,3 @@ weight: 1 # _index.md always has weight of 1 to order corr
117117
layout: "learningpathall" # All files under learning paths have this same wrapper
118118
learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content.
119119
---
120-

content/learning-paths/cross-platform/aws-greengrass-pacbti-test/_index.md

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -22,48 +22,50 @@ prerequisites:
2222
# START generated_summary_faq
2323
generated_summary_faq:
2424
template_version: summary-faq-v3
25-
generated_at: '2026-07-02T17:15:02Z'
25+
generated_at: '2026-07-02T19:01:20Z'
2626
generator: ai
2727
ai_assisted: true
2828
ai_review_required: true
2929
model: gpt-5
3030
prompt_template: summary-faq-v3
3131
source_hash: 202dcb3054a983defc04c70315a3329f88ebbb20ca21039d3f24fb44314d1e09
32-
summary_generated_at: '2026-07-02T17:15:02Z'
32+
summary_generated_at: '2026-07-02T19:01:20Z'
3333
summary_source_hash: 202dcb3054a983defc04c70315a3329f88ebbb20ca21039d3f24fb44314d1e09
34-
faq_generated_at: '2026-07-02T17:15:02Z'
34+
faq_generated_at: '2026-07-02T19:01:20Z'
3535
faq_source_hash: 202dcb3054a983defc04c70315a3329f88ebbb20ca21039d3f24fb44314d1e09
3636
summary: >-
37-
This Learning Path guides you through registering a Raspberry Pi 5 and an NVIDIA Jetson Thor
38-
as AWS IoT Greengrass core devices, building a custom component that checks for Arm Pointer
39-
Authentication (PAC) and Branch Target Identification (BTI), and deploying it to both devices
40-
using a Greengrass thing group. The Raspberry Pi 5 (Armv8.2-A) acts as the negative comparison
41-
platform, while the Jetson Thor (Armv9-A) provides the positive case. After uploading the
42-
component artifact to Amazon S3 and completing the deployment, you use MQTT to trigger the
43-
checks and compare results, confirming the expected difference in PAC/BTI support.
37+
You'll configure two Arm devices as AWS IoT Greengrass
38+
core devices, build a custom component that checks Pointer Authentication (PAC) and Branch
39+
Target Identification (BTI), and deploy that component to both targets via a Greengrass
40+
thing group. You'll upload the component artifact to Amazon S3, create a Greengrass deployment
41+
in the AWS console, and use MQTT to trigger the checks. The Raspberry Pi 5 (Armv8.2-A) serves
42+
as a negative comparison for PAC/BTI, while the Jetson Thor (Armv9-A) provides a positive
43+
control. By completing the steps, you'll compare per-device results and recognize unsupported
44+
versus supported PAC/BTI behavior across Armv8 and Armv9 platforms.
4445
faqs:
45-
- question: How do I know both devices are ready before I create the deployment?
46+
- question: How do I know each device is ready to receive a Greengrass deployment?
4647
answer: >-
47-
Check that each device is set up as an AWS IoT Greengrass core device and added to the thing
48-
group you plan to target (for example, My_PAC_BTI_Test_Devices). If both appear when selecting
49-
the group during deployment creation, you are ready to proceed.
50-
- question: Which device should report PAC/BTI support after the test runs?
48+
In AWS IoT Core, confirm the device is registered as a Greengrass core device and appears
49+
in the thing group you plan to deploy to. If it is not in the group, add it before creating
50+
the deployment.
51+
- question: What result should I expect from the PAC/BTI test on Raspberry Pi 5 versus Jetson
52+
Thor?
5153
answer: >-
52-
Jetson Thor (Armv9-A) should report support for both PAC and BTI. Raspberry Pi 5 (Armv8.2-A)
53-
should report that neither feature is supported.
54-
- question: What should I check after uploading the component artifact to Amazon S3?
54+
Raspberry Pi 5 (Armv8.2-A) should report PAC and BTI as not supported. Jetson Thor (Armv9-A)
55+
should report both PAC and BTI as supported.
56+
- question: Where should I store the custom component artifact before creating the deployment?
5557
answer: >-
56-
Confirm the bucket exists and that the artifact file appears in the bucket. Ensure you reference
57-
the correct bucket and object when creating the custom component.
58-
- question: How do I trigger the PAC/BTI check once the deployment is complete?
58+
Upload the component artifact to an Amazon S3 bucket created in the AWS console. Keep the
59+
default bucket settings for this tutorial and ensure the artifact is available for the component
60+
to use during deployment.
61+
- question: Which target should I select to deploy the component to both devices at once?
5962
answer: >-
60-
Use MQTT as described in the steps to publish the trigger for the component and then review
61-
the returned messages. The results indicate PAC/BTI support for each device.
62-
- question: What should I check if one device does not produce results after I publish the MQTT
63-
message?
63+
Select a Greengrass thing group (for example, My_PAC_BTI_Test_Devices) as the deployment
64+
target. This delivers the same component set to both core devices in the group.
65+
- question: How do I trigger and validate the PAC/BTI checks after deployment?
6466
answer: >-
65-
Verify the device is in the selected thing group and that the deployment targeted that group.
66-
If the device is not set up as a Greengrass core device, complete that setup and redeploy.
67+
Use MQTT to trigger the checks as described in the steps, then review the results reported
68+
for each device. Expect outputs that let you interpret PAC/BTI support per platform.
6769
# END generated_summary_faq
6870

6971
author:
@@ -119,4 +121,3 @@ weight: 1 # _index.md always has weight of 1 to order corr
119121
layout: "learningpathall" # All files under learning paths have this same wrapper
120122
learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content.
121123
---
122-

content/learning-paths/cross-platform/build-a-reachy-robot-app-on-pi/_index.md

Lines changed: 27 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -25,49 +25,48 @@ prerequisites:
2525
# START generated_summary_faq
2626
generated_summary_faq:
2727
template_version: summary-faq-v3
28-
generated_at: '2026-07-02T17:15:58Z'
28+
generated_at: '2026-07-02T19:04:59Z'
2929
generator: ai
3030
ai_assisted: true
3131
ai_review_required: true
3232
model: gpt-5
3333
prompt_template: summary-faq-v3
3434
source_hash: d021122b9217e2326e98d45aeffccb742357e77a7774f9c469d2c73285ca91a9
35-
summary_generated_at: '2026-07-02T17:15:58Z'
35+
summary_generated_at: '2026-07-02T19:04:59Z'
3636
summary_source_hash: d021122b9217e2326e98d45aeffccb742357e77a7774f9c469d2c73285ca91a9
37-
faq_generated_at: '2026-07-02T17:15:58Z'
37+
faq_generated_at: '2026-07-02T19:04:59Z'
3838
faq_source_hash: d021122b9217e2326e98d45aeffccb742357e77a7774f9c469d2c73285ca91a9
3939
summary: >-
40-
This Learning Path guides you to build a distributed edge AI application where a Raspberry
41-
Pi 5 performs on-device gesture recognition with MediaPipe and TensorFlow Lite and sends commands
42-
to a Reachy Mini robot running in a MuJoCo simulation on a development machine. You set up
43-
the Pi, enable Git LFS to retrieve the gesture model, run the app, and open a browser dashboard
44-
on port 8042 to deliver thumbs-up or thumbs-down verdicts that trigger Reachy’s reactions.
45-
The steps explain how the Pi connects to the robot daemon over the network and how to operate
46-
the dashboard, then walk through the code structure that separates perception, logic, robot
47-
motion, and static assets so you can extend or adapt the project.
40+
You'll build a distributed edge AI application that runs MediaPipe
41+
gesture inference on a Raspberry Pi 5 and drives a Reachy Mini robot in a MuJoCo simulation.
42+
First, you'll start the simulator on a development machine, prepare the Pi with Raspberry Pi OS and
43+
Git LFS so the gesture model downloads correctly, then run the app and open a browser dashboard
44+
to monitor the camera feed and verdicts. A thumbs-up or thumbs-down from the webcam triggers
45+
victory or defeat motions in the simulated robot. You'll also learn about the project layout
46+
so you can locate perception, app logic, motion, and dashboard components in the codebase to iterate on.
4847
faqs:
49-
- question: I cloned the project but the gesture model file is tiny—did Git LFS work?
48+
- question: Which address should I open to view the dashboard?
5049
answer: >-
51-
Verify that you installed and enabled Git LFS before cloning. Re-clone with LFS enabled
52-
and check that assets/gesture_recognizer.task is a large binary file, not a small text pointer.
53-
- question: The dashboard doesn’t open at http://localhost:8042—what should I try?
50+
If you use VS Code Remote SSH port forwarding, open `http://localhost:8042` on your laptop.
51+
Otherwise, browse to `http://<pi-ip-address>:8042` from any machine on the same network.
52+
- question: How do I find the Raspberry Pi IP address for the dashboard?
5453
answer: >-
55-
If you use VS Code Remote SSH, confirm that port forwarding is active. Otherwise, open http://<pi-ip-address>:8042
56-
from a browser on the same network and make sure the app is running on the Raspberry Pi.
57-
- question: How do I know the Raspberry Pi is connected to the MuJoCo simulation?
54+
Run `hostname -I` on the Raspberry Pi to print its IP address. Then use that address with
55+
port `8042` in your browser.
56+
- question: How do I confirm the gesture model downloaded correctly with Git LFS?
5857
answer: >-
59-
When you show a thumbs-up or thumbs-down, the simulated Reachy Mini should perform the corresponding
60-
victory or defeat reaction. If nothing happens, check that both machines are on the same
61-
network and that the connection settings in main.py point to the correct host.
62-
- question: Can I run the Raspberry Pi headless for this app?
58+
Check that `assets/gesture_recognizer.task` exists as a real model file, not a tiny pointer
59+
file. If you cloned before enabling Git LFS, enable LFS and re-clone the repository.
60+
- question: The dashboard loads but the MuJoCo simulation does not move—what should I check?
6361
answer: >-
64-
Yes. Open the dashboard from another machine using the Raspberry Pi’s IP address and port
65-
8042; the Pi does not need a local display.
66-
- question: Where do I change gesture handling or robot moves in the code?
62+
Verify the MuJoCo simulation is running on your development machine and that the Pi can
63+
reach it over the network. Also review `main.py` because it contains the settings used for
64+
the distributed simulation route.
65+
- question: What result should I expect when a thumbs-up or thumbs-down is detected?
6766
answer: >-
68-
Edit gesture.py to adjust recognition or mapping and moves.py to change motion routines.
69-
Use main.py to wire the app and update the settings used for the distributed simulation
70-
route.
67+
You should see the simulated Reachy Mini play a victory or defeat motion, and the web dashboard
68+
should reflect the verdict. This indicates the camera, inference, network, and simulator
69+
are connected end to end.
7170
# END generated_summary_faq
7271

7372
author: Matt Cossins
@@ -123,4 +122,3 @@ weight: 1 # _index.md always has weight of 1 to order corr
123122
layout: "learningpathall" # All files under learning paths have this same wrapper
124123
learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content.
125124
---
126-

0 commit comments

Comments
 (0)