Transmissions App Creation Skill
This skill guides you through creating a new Transmissions application, helping you choose between core and remote development based on your needs.
Quick Start Decision Tree
Choose your development path:
Core Development (Recommended for beginners)
- •✅ Simple setup - work directly in framework
- •✅ Easy debugging and testing
- •✅ Good for learning or framework contributions
- •❌ Couples your app with framework repo
Use when: Learning, prototyping, or contributing to core
Remote Development (Recommended for production)
- •✅ Clean separation from framework
- •✅ Independent versioning
- •✅ Can be distributed separately
- •⚠️ Requires module loading setup (has known issues to watch for)
Use when: Building production apps, maintaining separate repos
Workflow
1. Gather Information
Ask the user:
- •App name: What should the app be called? (e.g.,
my-data-processor) - •Development location: Core (
src/apps/) or Remote (~/hyperdata/trans-apps/apps/)? - •App purpose: Brief description to customize documentation
2. Create App Structure
Execute based on chosen path:
For Core Development:
bash
# Copy example app
cp -r src/apps/example-app src/apps/{APP_NAME}
# List created files
ls -la src/apps/{APP_NAME}/
For Remote Development:
bash
# Ensure remote apps directory exists
mkdir -p ~/hyperdata/trans-apps/apps
# Copy example app
cp -r src/apps/example-app ~/hyperdata/trans-apps/apps/{APP_NAME}
# List created files
ls -la ~/hyperdata/trans-apps/apps/{APP_NAME}/
3. Customize Files
Edit the following files in the new app directory:
about.md - Update runner path and description:
markdown
# {APP_NAME}
## Runner
```sh
./trans {APP_NAME}
Description
{USER_PROVIDED_DESCRIPTION}
code
**transmissions.ttl** - Update transmission definition:
```turtle
:{APP_NAME} a :EntryTransmission ;
:pipe (:p10 :p20 :p30) .
config.ttl - Customize configuration as needed
4. Test the App
For Core Apps:
bash
./trans {APP_NAME} -v
For Remote Apps:
bash
./trans ~/hyperdata/trans-apps/apps/{APP_NAME} -v
5. Iteration
- •If tests pass: App is ready for development
- •If errors occur:
- •Check transmissions.ttl syntax
- •Verify all processor types exist
- •For remote apps, check remote-development.md for module loading issues
Next Steps
After basic app creation:
- •Add processors to the pipeline
- •Configure settings in config.ttl
- •Add test cases (see templates/testing.md)
- •Document usage in about.md
Common Patterns
Reference templates/app-structure.md for:
- •Linear pipelines
- •Conditional processing
- •SPARQL integration
- •File processing workflows
Troubleshooting
App not found:
- •Core: Check
src/apps/{APP_NAME}/exists - •Remote: Verify full path is correct
Processor not found:
- •Check processor type in transmissions.ttl matches registered type
- •For custom processors, see the
transmissions-processorskill
Remote app loading issues:
- •See remote-development.md for module loading details
- •Check path resolution in verbose mode
Reference
- •Example app:
src/apps/example-app/ - •Manual:
docs/manual/user/apps.md - •Core concepts:
docs/manual/user/concepts.md