Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,12 @@ Switchify is an Android accessibility service app that helps users with mobility
3. **Base Branch Selection**: Derive the release branch `vX.Y.Z` from the issue milestone, removing prerelease suffixes such as `-alpha.*`, `-beta.*`, or `-rc.*`. If `origin/vX.Y.Z` exists, use it as the work branch starting point and use the bare `vX.Y.Z` as the pull request base; otherwise use `main` for both
4. **Branch Creation**: Create branch `feature/description-issue#` or `fix/description-issue#` from the selected starting point
5. **Development**: Make changes following code standards
6. **Testing**: Test compilation with `./gradlew compileDebugKotlin`
7. **Commit & Push**: Commit with proper format and push branch
8. **Pull Request**: Create PR against the selected pull request base with a detailed description
9. **User Approval**: Ask user if they want to merge (yes/no)
10. **Proactive Communication**: Always ask yes/no for perceived next steps
6. **Docs site**: Any change users can see (a feature, a setting, a menu item, a label, a behaviour) must update the docs site in `site/` in the same PR. It is served at https://android.theswitchify.app. Write for switch users and AT professionals in plain language, claim only what the app does, and build it with `cd site && npm ci && npm run build`
7. **Testing**: Test compilation with `./gradlew compileDebugKotlin`
8. **Commit & Push**: Commit with proper format and push branch
9. **Pull Request**: Create PR against the selected pull request base with a detailed description
10. **User Approval**: Ask user if they want to merge (yes/no)
11. **Proactive Communication**: Always ask yes/no for perceived next steps

### Branch & Issue Management
- Create descriptive branch names: `feature/description-1234` or `fix/description-1234`
Expand Down Expand Up @@ -73,10 +74,11 @@ Brief descriptive title
3. Normalize the issue milestone to `vX.Y.Z` by removing any prerelease suffix. If `origin/vX.Y.Z` exists, select it as the work branch starting point and select the bare `vX.Y.Z` as the pull request base; otherwise select `main` for both
4. Create the feature or fix branch from the selected starting point
5. Make changes following code standards
6. Test compilation with `./gradlew compileDebugKotlin`
7. Commit with proper format
8. Push the branch and create the PR against the selected pull request base with a detailed description and test plan
9. Ask user if they want to merge (yes/no)
6. Update the docs site in `site/` for any user-visible change (see step 6 of the Required Workflow Process)
7. Test compilation with `./gradlew compileDebugKotlin`
8. Commit with proper format
9. Push the branch and create the PR against the selected pull request base with a detailed description and test plan
10. Ask user if they want to merge (yes/no)

### Testing Requirements
- Always test compilation before committing
Expand Down
3 changes: 3 additions & 0 deletions site/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node_modules/
dist/
.astro/
16 changes: 16 additions & 0 deletions site/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Switchify docs site

The user documentation for Switchify on Android, served at https://android.theswitchify.app. It is an [Astro Starlight](https://starlight.astro.build) site and is independent of the app build.

```bash
cd site
npm ci
npm run dev # http://localhost:4321
npm run build # static output in dist/
```

Pages live in `src/content/docs/` as Markdown. The sidebar is defined in `astro.config.mjs`.

Any change that users can see in the app must update these pages in the same pull request. Write for switch users and AT professionals: plain language, no claims the app does not back up, and no prices.

Hosting: a Vercel project for the `switchify-android` repository with its root directory set to `site`, and `android.theswitchify.app` pointed at it.
52 changes: 52 additions & 0 deletions site/astro.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import { defineConfig } from 'astro/config';
import starlight from '@astrojs/starlight';

export default defineConfig({
site: 'https://android.theswitchify.app',
integrations: [
starlight({
title: 'Switchify',
description: 'Switch access for Android. How to set up Switchify, connect a switch, scan, use the menu, and control a PC from your phone.',
social: [
{ icon: 'github', label: 'GitHub', href: 'https://github.com/switchifyapp/switchify-android' },
],
editLink: {
baseUrl: 'https://github.com/switchifyapp/switchify-android/edit/main/site/',
},
lastUpdated: true,
customCss: ['./src/styles/custom.css'],
sidebar: [
{ label: 'Overview', slug: 'index' },
{
label: 'Get started',
items: [
{ label: 'Install', slug: 'get-started/install' },
{ label: 'Connect a switch', slug: 'get-started/connect-a-switch' },
],
},
{
label: 'Using your device',
items: [
{ label: 'Scanning', slug: 'using/scanning' },
{ label: 'The menu', slug: 'using/the-menu' },
{ label: 'Keyboard', slug: 'using/keyboard' },
{ label: 'Gestures and actions', slug: 'using/gestures-and-actions' },
{ label: 'Settings', slug: 'using/settings' },
],
},
{
label: 'PC control',
items: [
{ label: 'Pair a PC', slug: 'pc-control/pairing' },
{ label: 'Mouse, Typing and Window', slug: 'pc-control/mouse-typing-window' },
{ label: 'Switch Forwarding', slug: 'pc-control/switch-forwarding' },
],
},
{ label: 'Pro and your account', slug: 'pro-and-account' },
{ label: 'Privacy', slug: 'privacy' },
{ label: 'Troubleshooting', slug: 'troubleshooting' },
{ label: 'Switchify PC docs', link: 'https://pc.theswitchify.app' },
],
}),
],
});
Loading