workforge 2.4.1__tar.gz → 2.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {workforge-2.4.1 → workforge-2.5.0}/CHANGELOG.md +10 -0
- {workforge-2.4.1 → workforge-2.5.0}/PKG-INFO +19 -6
- {workforge-2.4.1 → workforge-2.5.0}/README.md +18 -5
- {workforge-2.4.1 → workforge-2.5.0}/docs/distribution.md +50 -24
- {workforge-2.4.1 → workforge-2.5.0}/pyproject.toml +1 -1
- {workforge-2.4.1 → workforge-2.5.0}/src/workforge/cli.py +49 -0
- {workforge-2.4.1 → workforge-2.5.0}/tests/test_init_workspace.py +7 -0
- {workforge-2.4.1 → workforge-2.5.0}/.github/workflows/ci.yml +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/.github/workflows/release.yml +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/.gitignore +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/AGENTS.md +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/LICENSE +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/_config.yml +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/docs/github-provider-design.md +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/docs/jira-provider-design.md +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/docs/trello-provider-design.md +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/src/workforge/__init__.py +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/src/workforge/config.py +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/src/workforge/core/__init__.py +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/src/workforge/core/parser.py +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/src/workforge/models.py +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/src/workforge/providers/__init__.py +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/src/workforge/providers/base.py +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/src/workforge/providers/github.py +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/src/workforge/providers/jira.py +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/src/workforge/providers/registry.py +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/src/workforge/providers/trello.py +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/tests/test_agent_context.py +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/tests/test_cli_output.py +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/tests/test_github_provider.py +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/tests/test_jira_provider.py +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/tests/test_parser.py +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/tests/test_trello_provider.py +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/tests/test_workspace_runtime.py +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/workspaces/github-projects-example/.env.example +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/workspaces/github-projects-example/inbox/sample-requirements.md +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/workspaces/github-projects-example/output/.gitkeep +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/workspaces/github-projects-example/workforge.yaml +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/workspaces/jira-example/.env.example +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/workspaces/jira-example/inbox/sample-requirements.md +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/workspaces/jira-example/output/.gitkeep +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/workspaces/jira-example/workforge.yaml +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/workspaces/trello-example/.env.example +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/workspaces/trello-example/inbox/sample-requirements.md +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/workspaces/trello-example/output/.gitkeep +0 -0
- {workforge-2.4.1 → workforge-2.5.0}/workspaces/trello-example/workforge.yaml +0 -0
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
## [2.5.0] - 2026-08-25
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- *(workspace)* Add contributor instructions
|
|
6
|
+
|
|
7
|
+
### 📚 Documentation
|
|
8
|
+
|
|
9
|
+
- Clarify WorkForge installation modes
|
|
1
10
|
## [2.4.1] - 2026-08-21
|
|
2
11
|
|
|
3
12
|
### 💼 Other
|
|
@@ -13,6 +22,7 @@
|
|
|
13
22
|
|
|
14
23
|
- *(github pages)* Create theme configuration file
|
|
15
24
|
- Updates documentation
|
|
25
|
+
- Release 2.4.1
|
|
16
26
|
## [2.4.0] - 2026-08-21
|
|
17
27
|
|
|
18
28
|
### 🚀 Features
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: workforge
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.5.0
|
|
4
4
|
Summary: Turn work inputs into provider-neutral requirements and planning items.
|
|
5
5
|
Project-URL: Homepage, https://github.com/Nanielito/workforge
|
|
6
6
|
Project-URL: Repository, https://github.com/Nanielito/workforge.git
|
|
@@ -99,18 +99,27 @@ GitHub Actions runs on pull requests and pushes to `main`.
|
|
|
99
99
|
|
|
100
100
|
## Quick Start
|
|
101
101
|
|
|
102
|
-
|
|
102
|
+
`uvx` is included with `uv`. If it is not available yet, install `uv` using the
|
|
103
|
+
[official installation guide](https://docs.astral.sh/uv/getting-started/installation/),
|
|
104
|
+
which covers macOS, Linux, Windows, and common package managers.
|
|
105
|
+
|
|
106
|
+
Run WorkForge on demand without installing a permanent command:
|
|
103
107
|
|
|
104
108
|
```bash
|
|
105
|
-
|
|
109
|
+
uvx workforge --help
|
|
106
110
|
```
|
|
107
111
|
|
|
108
|
-
|
|
112
|
+
Prefix each WorkForge command with `uvx`; the examples below omit that prefix
|
|
113
|
+
for readability. Alternatively, install it persistently with
|
|
114
|
+
`uv tool install workforge`. See the
|
|
115
|
+
[distribution guide](https://github.com/Nanielito/workforge/blob/main/docs/distribution.md#choose-how-to-run-workforge)
|
|
116
|
+
for temporary, persistent, and version-pinned usage. Contributors should
|
|
117
|
+
continue to use `pip install -e ".[dev]"`.
|
|
109
118
|
|
|
110
119
|
Create a project-local workspace:
|
|
111
120
|
|
|
112
121
|
```bash
|
|
113
|
-
workforge init .workforge --name
|
|
122
|
+
workforge init .workforge --name my-project --provider trello --namespace my-project/shopify
|
|
114
123
|
```
|
|
115
124
|
|
|
116
125
|
Then add the printed entries to the host project's `.gitignore`:
|
|
@@ -255,10 +264,14 @@ workforge providers test --workspace workspaces/trello-example --provider trello
|
|
|
255
264
|
<workspace>/
|
|
256
265
|
workforge.yaml
|
|
257
266
|
.env.example
|
|
267
|
+
README.md
|
|
258
268
|
inbox/
|
|
259
269
|
output/
|
|
260
270
|
```
|
|
261
271
|
|
|
272
|
+
`workforge init` creates the workspace README with a concise contributor
|
|
273
|
+
workflow for configuring access, previewing requirements, and tracking work.
|
|
274
|
+
|
|
262
275
|
Workspace `.env` files are intentionally local-only. Commit `.env.example`, not
|
|
263
276
|
`.env`.
|
|
264
277
|
|
|
@@ -376,7 +389,7 @@ workspaces/<name>/
|
|
|
376
389
|
status.json
|
|
377
390
|
agent-context.md
|
|
378
391
|
items/
|
|
379
|
-
fix-ui-
|
|
392
|
+
fix-ui-post-install.md
|
|
380
393
|
```
|
|
381
394
|
|
|
382
395
|
`preview.json` contains the provider-neutral requirements parsed from the input.
|
|
@@ -67,18 +67,27 @@ GitHub Actions runs on pull requests and pushes to `main`.
|
|
|
67
67
|
|
|
68
68
|
## Quick Start
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
`uvx` is included with `uv`. If it is not available yet, install `uv` using the
|
|
71
|
+
[official installation guide](https://docs.astral.sh/uv/getting-started/installation/),
|
|
72
|
+
which covers macOS, Linux, Windows, and common package managers.
|
|
73
|
+
|
|
74
|
+
Run WorkForge on demand without installing a permanent command:
|
|
71
75
|
|
|
72
76
|
```bash
|
|
73
|
-
|
|
77
|
+
uvx workforge --help
|
|
74
78
|
```
|
|
75
79
|
|
|
76
|
-
|
|
80
|
+
Prefix each WorkForge command with `uvx`; the examples below omit that prefix
|
|
81
|
+
for readability. Alternatively, install it persistently with
|
|
82
|
+
`uv tool install workforge`. See the
|
|
83
|
+
[distribution guide](https://github.com/Nanielito/workforge/blob/main/docs/distribution.md#choose-how-to-run-workforge)
|
|
84
|
+
for temporary, persistent, and version-pinned usage. Contributors should
|
|
85
|
+
continue to use `pip install -e ".[dev]"`.
|
|
77
86
|
|
|
78
87
|
Create a project-local workspace:
|
|
79
88
|
|
|
80
89
|
```bash
|
|
81
|
-
workforge init .workforge --name
|
|
90
|
+
workforge init .workforge --name my-project --provider trello --namespace my-project/shopify
|
|
82
91
|
```
|
|
83
92
|
|
|
84
93
|
Then add the printed entries to the host project's `.gitignore`:
|
|
@@ -223,10 +232,14 @@ workforge providers test --workspace workspaces/trello-example --provider trello
|
|
|
223
232
|
<workspace>/
|
|
224
233
|
workforge.yaml
|
|
225
234
|
.env.example
|
|
235
|
+
README.md
|
|
226
236
|
inbox/
|
|
227
237
|
output/
|
|
228
238
|
```
|
|
229
239
|
|
|
240
|
+
`workforge init` creates the workspace README with a concise contributor
|
|
241
|
+
workflow for configuring access, previewing requirements, and tracking work.
|
|
242
|
+
|
|
230
243
|
Workspace `.env` files are intentionally local-only. Commit `.env.example`, not
|
|
231
244
|
`.env`.
|
|
232
245
|
|
|
@@ -344,7 +357,7 @@ workspaces/<name>/
|
|
|
344
357
|
status.json
|
|
345
358
|
agent-context.md
|
|
346
359
|
items/
|
|
347
|
-
fix-ui-
|
|
360
|
+
fix-ui-post-install.md
|
|
348
361
|
```
|
|
349
362
|
|
|
350
363
|
`preview.json` contains the provider-neutral requirements parsed from the input.
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
# Distribution and Release Guide
|
|
2
2
|
|
|
3
|
-
WorkForge is a public Python CLI. GitHub remains the
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
development environment.
|
|
3
|
+
WorkForge is a public Python CLI distributed through PyPI. GitHub remains the
|
|
4
|
+
source repository and release record. Users can run WorkForge in an isolated
|
|
5
|
+
environment without cloning the repository or creating a development setup.
|
|
7
6
|
|
|
8
7
|
## Current state
|
|
9
8
|
|
|
@@ -12,23 +11,54 @@ changelog, creates a Git tag, and uploads the wheel and source distribution to
|
|
|
12
11
|
both a GitHub Release and PyPI. The PyPI job uses Trusted Publishing and a
|
|
13
12
|
separate GitHub environment so it never receives the repository write token.
|
|
14
13
|
|
|
15
|
-
|
|
16
|
-
completed and the first release using the publish job succeeds.
|
|
14
|
+
## Choose how to run WorkForge
|
|
17
15
|
|
|
18
|
-
|
|
16
|
+
`uvx` ships with `uv`; users who do not have it can follow the
|
|
17
|
+
[official uv installation guide](https://docs.astral.sh/uv/getting-started/installation/).
|
|
19
18
|
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
### On demand in a project
|
|
20
|
+
|
|
21
|
+
Use `uvx` when WorkForge supports planning for a project but should not become a
|
|
22
|
+
permanent command or project dependency:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
cd my-project
|
|
26
|
+
uvx workforge init .workforge \
|
|
27
|
+
--name my-project \
|
|
28
|
+
--provider github \
|
|
29
|
+
--namespace organization/repository
|
|
30
|
+
uvx workforge preview .workforge/inbox/requirements.md --workspace .workforge
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Prefix every command with `uvx`. The WorkForge runtime remains isolated and uv
|
|
34
|
+
may cache it for faster later executions; the project-local `.workforge`
|
|
35
|
+
workspace persists normally. The same approach works with Trello, GitHub
|
|
36
|
+
Projects, and Jira.
|
|
37
|
+
|
|
38
|
+
To reproduce planning behavior with a known release, pin it in each invocation:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
uvx workforge@X.Y.Z preview .workforge/inbox/requirements.md --workspace .workforge
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
There is nothing to uninstall after `uvx`. `uv cache clean` removes uv's shared
|
|
45
|
+
cache, not only WorkForge, and is normally unnecessary.
|
|
46
|
+
|
|
47
|
+
### Persistent command
|
|
48
|
+
|
|
49
|
+
Install WorkForge persistently when it is used across many projects or by
|
|
50
|
+
scripts that expect a `workforge` command on `PATH`:
|
|
22
51
|
|
|
23
52
|
```bash
|
|
24
53
|
uv tool install workforge
|
|
25
54
|
workforge --help
|
|
26
55
|
```
|
|
27
56
|
|
|
28
|
-
|
|
57
|
+
Upgrade or remove this installation with:
|
|
29
58
|
|
|
30
59
|
```bash
|
|
31
|
-
|
|
60
|
+
uv tool upgrade workforge
|
|
61
|
+
uv tool uninstall workforge
|
|
32
62
|
```
|
|
33
63
|
|
|
34
64
|
`pipx` provides an equivalent isolated installation:
|
|
@@ -40,17 +70,10 @@ pipx install workforge
|
|
|
40
70
|
Plain `pip install workforge` is supported but is not the recommended default
|
|
41
71
|
because it can mix WorkForge dependencies with another Python environment.
|
|
42
72
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
uv tool install workforge==2.4.1
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
Upgrade or remove the CLI with:
|
|
73
|
+
Pin a persistent installation when reproducibility matters:
|
|
50
74
|
|
|
51
75
|
```bash
|
|
52
|
-
uv tool
|
|
53
|
-
uv tool uninstall workforge
|
|
76
|
+
uv tool install workforge==X.Y.Z
|
|
54
77
|
```
|
|
55
78
|
|
|
56
79
|
## First use
|
|
@@ -58,12 +81,15 @@ uv tool uninstall workforge
|
|
|
58
81
|
Create a workspace inside the project that WorkForge will manage:
|
|
59
82
|
|
|
60
83
|
```bash
|
|
61
|
-
workforge init .workforge \
|
|
84
|
+
uvx workforge init .workforge \
|
|
62
85
|
--name my-project \
|
|
63
86
|
--provider github \
|
|
64
87
|
--namespace organization/repository
|
|
65
88
|
```
|
|
66
89
|
|
|
90
|
+
The generated `.workforge/README.md` explains how to create provider items from
|
|
91
|
+
a Markdown requirement or discover and continue existing items using `uvx`.
|
|
92
|
+
|
|
67
93
|
Keep credentials and generated output out of version control:
|
|
68
94
|
|
|
69
95
|
```gitignore
|
|
@@ -75,19 +101,19 @@ Copy `.workforge/.env.example` to `.workforge/.env`, add the selected provider's
|
|
|
75
101
|
credentials, and validate them before performing writes:
|
|
76
102
|
|
|
77
103
|
```bash
|
|
78
|
-
workforge providers test --workspace .workforge --provider github
|
|
104
|
+
uvx workforge providers test --workspace .workforge --provider github
|
|
79
105
|
```
|
|
80
106
|
|
|
81
107
|
Place Markdown requirements in `.workforge/inbox/`. Preview them first:
|
|
82
108
|
|
|
83
109
|
```bash
|
|
84
|
-
workforge preview .workforge/inbox/requirements.md --workspace .workforge
|
|
110
|
+
uvx workforge preview .workforge/inbox/requirements.md --workspace .workforge
|
|
85
111
|
```
|
|
86
112
|
|
|
87
113
|
Create external planning items only after reviewing the preview:
|
|
88
114
|
|
|
89
115
|
```bash
|
|
90
|
-
workforge create .workforge/inbox/requirements.md \
|
|
116
|
+
uvx workforge create .workforge/inbox/requirements.md \
|
|
91
117
|
--workspace .workforge \
|
|
92
118
|
--provider github \
|
|
93
119
|
--execute \
|
|
@@ -631,6 +631,7 @@ def _init_workspace(
|
|
|
631
631
|
files = {
|
|
632
632
|
workspace_path / "workforge.yaml": _workspace_config_template(workspace_name, provider, default_namespace),
|
|
633
633
|
workspace_path / ".env.example": _env_example_template(provider),
|
|
634
|
+
workspace_path / "README.md": _workspace_readme_template(),
|
|
634
635
|
workspace_path / "output" / ".gitkeep": "",
|
|
635
636
|
}
|
|
636
637
|
|
|
@@ -699,6 +700,54 @@ def _env_example_template(provider: str) -> str:
|
|
|
699
700
|
return ""
|
|
700
701
|
|
|
701
702
|
|
|
703
|
+
def _workspace_readme_template() -> str:
|
|
704
|
+
return """# WorkForge workspace
|
|
705
|
+
|
|
706
|
+
This directory contains the planning workspace for this repository. Requirements
|
|
707
|
+
live in `inbox/`; generated provider state and agent context live in `output/`.
|
|
708
|
+
|
|
709
|
+
## Contributor workflow
|
|
710
|
+
|
|
711
|
+
1. Copy `.env.example` to `.env` and add your provider credentials.
|
|
712
|
+
2. Validate access with `uvx workforge providers test --workspace .workforge`.
|
|
713
|
+
|
|
714
|
+
Run WorkForge through `uvx workforge` so contributors use an isolated CLI
|
|
715
|
+
without installing it into the project.
|
|
716
|
+
|
|
717
|
+
### Start from a requirement
|
|
718
|
+
|
|
719
|
+
Create `inbox/<requirement>.md` with one `## Title` section per planning item,
|
|
720
|
+
optional metadata such as `Labels: docs`, a description, and `- Task` lines.
|
|
721
|
+
Then preview it before any external write:
|
|
722
|
+
|
|
723
|
+
`uvx workforge preview .workforge/inbox/<requirement>.md --workspace .workforge`
|
|
724
|
+
|
|
725
|
+
After approval, create and save the provider items:
|
|
726
|
+
|
|
727
|
+
`uvx workforge create .workforge/inbox/<requirement>.md --workspace .workforge --execute --save`
|
|
728
|
+
|
|
729
|
+
### Continue existing items
|
|
730
|
+
|
|
731
|
+
Discover existing provider items into the default `discovered` output:
|
|
732
|
+
|
|
733
|
+
`uvx workforge discover --workspace .workforge --save`
|
|
734
|
+
|
|
735
|
+
Claim the selected item and move it into progress:
|
|
736
|
+
|
|
737
|
+
`uvx workforge claim-item discovered --workspace .workforge --item <id> --assignee @me`
|
|
738
|
+
|
|
739
|
+
`uvx workforge move-item discovered --workspace .workforge --item <id> --status doing`
|
|
740
|
+
|
|
741
|
+
Continue using `discovered` with `status` and `complete-task` to keep the issue
|
|
742
|
+
checklist synchronized.
|
|
743
|
+
|
|
744
|
+
Never commit `.env` or `output/`. See the repository's contributor and agent
|
|
745
|
+
guides for its development, validation, and pull request rules. See the
|
|
746
|
+
[WorkForge README](https://github.com/Nanielito/workforge#quick-start) for `uv`
|
|
747
|
+
installation, provider configuration, and the complete command reference.
|
|
748
|
+
"""
|
|
749
|
+
|
|
750
|
+
|
|
702
751
|
def _project_workspace_gitignore_block(workspace_path: Path) -> str:
|
|
703
752
|
workspace_ref = workspace_path.name if workspace_path.is_absolute() else workspace_path.as_posix().rstrip("/")
|
|
704
753
|
return f"{workspace_ref}/.env\n{workspace_ref}/output/\n"
|
|
@@ -6,6 +6,7 @@ from workforge.cli import (
|
|
|
6
6
|
_env_example_template,
|
|
7
7
|
_init_workspace,
|
|
8
8
|
_project_workspace_gitignore_block,
|
|
9
|
+
_workspace_readme_template,
|
|
9
10
|
_workspace_config_template,
|
|
10
11
|
)
|
|
11
12
|
|
|
@@ -49,11 +50,17 @@ def test_init_workspace_creates_project_local_scaffold(tmp_path: Path) -> None:
|
|
|
49
50
|
assert created == [
|
|
50
51
|
workspace / "workforge.yaml",
|
|
51
52
|
workspace / ".env.example",
|
|
53
|
+
workspace / "README.md",
|
|
52
54
|
workspace / "output" / ".gitkeep",
|
|
53
55
|
]
|
|
54
56
|
assert (workspace / "inbox").is_dir()
|
|
55
57
|
assert (workspace / "output").is_dir()
|
|
56
58
|
assert (workspace / ".env.example").read_text() == ""
|
|
59
|
+
assert (workspace / "README.md").read_text() == _workspace_readme_template()
|
|
60
|
+
assert "uvx workforge" in (workspace / "README.md").read_text()
|
|
61
|
+
assert "Start from a requirement" in (workspace / "README.md").read_text()
|
|
62
|
+
assert "Continue existing items" in (workspace / "README.md").read_text()
|
|
63
|
+
assert "https://github.com/Nanielito/workforge#quick-start" in (workspace / "README.md").read_text()
|
|
57
64
|
assert "default_provider: test-provider" in (workspace / "workforge.yaml").read_text()
|
|
58
65
|
|
|
59
66
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{workforge-2.4.1 → workforge-2.5.0}/workspaces/github-projects-example/inbox/sample-requirements.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|