Contributing Guide
← Back to ToolkitThanks for your interest in contributing! This project thrives on community input.
All data files use this header format in _meta:
{
"_meta": {
"game": "Tower Networking Inc.",
"dataset": "dataset-name",
"version": "1.0.0",
"last_updated": "YYYY-MM-DD",
"description": "What this dataset contains",
"sources": [...],
"contributors": [...],
"corrections": [...],
"future_additions": [...]
}
}
| Field | Required | Description |
|---|---|---|
| game | Yes | Always "Tower Networking Inc." |
| dataset | Yes | Identifier for the dataset (e.g., "programs", "store") |
| version | Yes | Semantic version (X.Y.Z) |
| last_updated | Yes | Last modified date (YYYY-MM-DD) |
| description | Yes | What this dataset contains |
| sources | No | Array of data sources (in-game, wiki, etc.) |
| contributors | Yes | Array of contributor names/handles |
| corrections | No | Array of data corrections made |
| future_additions | No | Array of planned additions |
All HTML tools include a comment header before <!DOCTYPE html>:
<!--
╔══════════════════════════════════════════════════════════════════════════════╗
║ Tool Name ║
╠══════════════════════════════════════════════════════════════════════════════╣
║ Version: X.Y.Z ║
║ Updated: YYYY-MM-DD ║
║ Part of: TNI Toolkit (https://github.com/salvo-praxis/tni-toolkit) ║
╠══════════════════════════════════════════════════════════════════════════════╣
║ Description: ║
║ Brief description of what this tool does. ║
║ ║
║ Contributors: ║
║ - Name (contribution type) ║
║ ║
║ Changelog: ║
║ X.Y.Z - Description of changes ║
╚══════════════════════════════════════════════════════════════════════════════╝
-->
| Field | Required | Description |
|---|---|---|
| Tool Name | Yes | Human-readable name of the tool |
| Version | Yes | Semantic version (X.Y.Z) |
| Updated | Yes | Last modified date (YYYY-MM-DD) |
| Part of | Yes | Always "TNI Toolkit" with GitHub URL |
| Description | Yes | What the tool does |
| Contributors | Yes | List of contributors with roles |
| Changelog | Yes | Version history with descriptions |
YAML configuration files (GitHub Actions, CI/CD) use comment headers:
# ============================================================================
# TNI Toolkit - [File Type/Purpose]
# File: [path/to/file.yml]
# Name: [Workflow or Config Name]
# Version: X.Y.Z
# Updated: YYYY-MM-DD
# Part of: TNI Toolkit (https://github.com/salvo-praxis/tni-toolkit)
# Description:
# Brief description of what this file does.
# Can span multiple lines if needed.
# Contributors:
# - Name (@handle) - contribution type
# - Claude - contribution type
# Changelog:
# X.Y.Z - Description of changes
# ============================================================================
| Field | Required | Description |
|---|---|---|
| File | Yes | Path relative to repo root |
| Name | Yes | Human-readable name (matches workflow name: key) |
| Version | Yes | Semantic version (X.Y.Z) |
| Updated | Yes | Last modified date (YYYY-MM-DD) |
| Description | Yes | What the file does |
| Contributors | Yes | List of contributors with roles |
| Changelog | Yes | Version history with descriptions |
Python scripts use docstring headers:
#!/usr/bin/env python3
"""
TNI Toolkit - [Script Name]
File: [path/to/script.py]
Version: X.Y.Z
Updated: YYYY-MM-DD
Part of: TNI Toolkit (https://github.com/salvo-praxis/tni-toolkit)
Description:
Brief description of what this script does.
Can span multiple lines if needed.
Contributors:
- Name (@handle) - contribution type
- Claude - contribution type
Changelog:
X.Y.Z - Description of changes
"""
| Field | Required | Description |
|---|---|---|
| Shebang | Yes | #!/usr/bin/env python3 |
| Script Name | Yes | Human-readable name of the script |
| File | Yes | Path relative to repo root |
| Version | Yes | Semantic version (X.Y.Z) |
| Updated | Yes | Last modified date (YYYY-MM-DD) |
| Description | Yes | What the script does |
| Contributors | Yes | List of contributors with @handles and roles |
| Changelog | Yes | Version history with descriptions |
Shell scripts use comment headers:
#!/bin/bash
# ============================================================================
# TNI Toolkit - [Script Name]
# File: [path/to/script.sh]
# Version: X.Y.Z
# Updated: YYYY-MM-DD
# Part of: TNI Toolkit (https://github.com/salvo-praxis/tni-toolkit)
# Description:
# Brief description of what this script does.
# Contributors:
# - Name (@handle) - contribution type
# Changelog:
# X.Y.Z - Description of changes
# ============================================================================
<#
============================================================================
TNI Toolkit - [Script Name]
File: [path/to/script.ps1]
Version: X.Y.Z
Updated: YYYY-MM-DD
Part of: TNI Toolkit (https://github.com/salvo-praxis/tni-toolkit)
Description:
Brief description of what this script does.
Contributors:
- Name (@handle) - contribution type
Changelog:
X.Y.Z - Description of changes
============================================================================
#>
| Field | Required | Description |
|---|---|---|
| Shebang | Yes | #!/bin/bash for Bash; none for PowerShell |
| Script Name | Yes | Human-readable name of the script |
| File | Yes | Path relative to repo root |
| Version | Yes | Semantic version (X.Y.Z) |
| Updated | Yes | Last modified date (YYYY-MM-DD) |
| Description | Yes | What the script does |
| Contributors | Yes | List of contributors with @handles and roles |
| Changelog | Yes | Version history with descriptions |
| 1.0.0 → 1.0.1 | Corrections, typo fixes |
| 1.0.1 → 1.1.0 | New data additions |
| 1.1.0 → 2.0.0 | Structure changes (rare, coordinate first) |
All tools are standalone HTML files:
.html file with embedded CSS and JStools/ directoryfeature/tool-name or data/update-storeOpen an issue for questions or discussion. Check existing issues for similar topics.
Contributors are recognized in:
contributors arraysThank you for helping build tools for the TNI community!