Skip to content

Commit

Permalink
Merge pull request #27 from Significant-Gravitas/ntindle/agpt-257
Browse files Browse the repository at this point in the history
Add Base Requirements Block (and vscode settings)
  • Loading branch information
Swiftyos authored Feb 15, 2024
2 parents 427dba6 + 8f0d434 commit 062024b
Show file tree
Hide file tree
Showing 16 changed files with 614 additions and 145 deletions.
116 changes: 56 additions & 60 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,65 +1,61 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/python
{
"name": "Python 3",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/devcontainers/python:1-3.11-bookworm",

// Features to add to the dev container. More info: https://containers.dev/features.

"features": {
"ghcr.io/devcontainers-contrib/features/poetry:2": {},
"ghcr.io/dhoeric/features/google-cloud-cli:1": {},
"ghcr.io/robbert229/devcontainer-features/postgresql-client:1": {},
"ghcr.io/devcontainers/features/docker-in-docker:2": {}
},

// "features": {},

// Use 'forwardPorts' to make a list of ports inside the container available locally.
"forwardPorts": [1234],

// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "poetry install",

// Configure tool-specific properties.
"customizations": {
"vscode": {
"settings": {
"terminal.integrated.shell.linux": "/bin/bash",
"[python]": { // python section
"editor.rulers": [
88
],
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
},
"editor.formatOnType": true
},
"python.linting.enabled": true,
"python.analysis.typeCheckingMode": "strict",
"python.analysis.autoSearchPaths": true,
"python.languageServer": "Default",
"python.linting.pylintEnabled": true,
},
"extensions": [
"ms-python.python",
"charliermarsh.ruff",
"ms-python.isort",
"github.copilot",
"VisualStudioExptTeam.vscodeintellicode",
"kevinrose.vsc-python-indent",
"njpwerner.autodocstring",
"wholroyd.jinja",
"eamodio.gitlens",
]
"name": "Python 3",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/devcontainers/python:1-3.11-bookworm",

// Features to add to the dev container. More info: https://containers.dev/features.

"features": {
"ghcr.io/devcontainers-contrib/features/poetry:2": {},
"ghcr.io/dhoeric/features/google-cloud-cli:1": {},
"ghcr.io/robbert229/devcontainer-features/postgresql-client:1": {},
"ghcr.io/devcontainers/features/docker-in-docker:2": {}
},

// "features": {},

// Use 'forwardPorts' to make a list of ports inside the container available locally.
"forwardPorts": [1234],

// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "poetry install",

// Configure tool-specific properties.
"customizations": {
"vscode": {
"settings": {
"terminal.integrated.shell.linux": "/bin/bash",
"[python]": {
// python section
"editor.rulers": [90],
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
},
"editor.formatOnType": true
},
}


// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"


"python.linting.enabled": true,
"python.analysis.typeCheckingMode": "strict",
"python.analysis.autoSearchPaths": true,
"python.languageServer": "Default",
"python.linting.pylintEnabled": true
},
"extensions": [
"ms-python.python",
"charliermarsh.ruff",
"ms-python.isort",
"github.copilot",
"VisualStudioExptTeam.vscodeintellicode",
"kevinrose.vsc-python-indent",
"njpwerner.autodocstring",
"wholroyd.jinja",
"eamodio.gitlens"
]
}
}

// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -158,3 +158,4 @@ cython_debug/
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
.DS_Store
16 changes: 16 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"recommendations": [
"charliermarsh.ruff",
"ms-python.python",
"ms-python.debugpy",
"ms-azuretools.vscode-docker",
"bierner.markdown-mermaid",
"prisma.prisma",
"editorconfig.editorconfig",
"visualstudioexptteam.vscodeintellicode",
"visualstudioexptteam.intellicode-api-usage-examples",
"ms-toolsai.jupyter",
"ms-vsliveshare.vsliveshare",
"ms-python.vscode-pylance"
]
}
44 changes: 44 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{
"editor.renderWhitespace": "all",
"editor.inlineSuggest.enabled": true,
"editor.occurrencesHighlight": "multiFile",

"files.autoSave": "afterDelay",

"git.autofetch": true,

"liveshare.accessibility.soundsEnabled": false,

"notebook.output.textLineLimit": 100,

"[python]": {
"editor.rulers": [90],
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit",
"source.fixAll": "explicit"
},
"editor.formatOnType": true
},
"python.analysis.diagnosticSeverityOverrides": {},
"python.analysis.typeCheckingMode": "standard",
"python.analysis.autoSearchPaths": true,
"python.analysis.useLibraryCodeForTypes": true,
"python.analysis.autoImportCompletions": true,
"python.analysis.completeFunctionParens": true,
"python.analysis.inlayHints.functionReturnTypes": true,
"python.analysis.inlayHints.variableTypes": true,
"python.analysis.autoFormatStrings": true,
"python.analysis.inlayHints.callArgumentNames": "partial",
"python.analysis.fixAll": [
"source.convertImportFormat",
"source.unusedImports"
],
"python.languageServer": "Pylance",
"python.missingPackage.severity": "Error",

"ruff.showNotifications": "always",
"remote.autoForwardPortsSource": "hybrid",
"terminal.integrated.scrollback": 100000,
"vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue"
}

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
Here's a bit of context on the project that will help us both be on the same page:
"{{product_description}}"

Here are a few Q&As we've already answered before I ask:

{{joint_q_and_a}}

Here are the features:

{{features}}

You are an expert product manager who works to help us ensure our projects are reasonable.

You should carefully think step by step about each question, and share those answers in a block set off by `think`.
Each question will be in the following form: >Question? [ValidAnswer1, ValidAnswer2, ...].
You should answer with only one of the valid options next to each question.

```json
{
"think": "Given the details and the features required for the Tutor App, including various functionalities like scheduling, financial management, and secure communication, it\'s important to make architectural and technology decisions that support these needs.",
"answer": [
{
"question": "The question gets repeated here: Do we Need DB?",
"think": "The thoughts on the answer go here: We need a database to store user data, scheduling, and financial information. We also need to store communication data. We need a database.",
"answer": "The answer follows the format of the question set in the braces: Yes"
},

... other answers
]
}
```
> Do we Need DB? [Yes, No]
> Do we need an API for talking to a front end? [Yes, No]
> Do we need an API for talking to other services? [Yes, No]
> Do we need an API for other services talking to us? [Yes, No]
> Do we need to issue API keys for other services to talk to us? [Yes, No, N/A]
> Do we need Monitoring? [Yes, No]
> Do we need Internationalization? [Yes, No]
> Do we need analytics? [Yes, No]
> Is there monetization? [Yes, No]
> Is the monetization via a paywall or ads? [Paywall, Ads, N/A]
> Does this require a subscription or a one-time purchase? [Subscription, One-Time Purchase, N/A]
> Is the whole service monetized or only part? [Whole, Part, N/A]
> Is monetization implemented through authorization? [Yes, No, N/A]
> Do we need Authentication? [Yes, No]
> Do we need authorization? [Yes, No, N/A]
> What authorization roles do we need? For this question, answer a string of array of One Word Roles such as ['UserType1', 'UserType2', 'UserType3', N/A].

You had an error whilst generating the response:

{{ error }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
Here's a bit of context on the project that will help us both be on the same page:
"{{product_description}}"

Here are a few Q&As we've already answered before I ask:

{{joint_q_and_a}}

Here are the features:

{{features}}

You are an expert product manager who works to help us ensure our projects are reasonable.

You should carefully think step by step about each question, and share those answers in a block set off by `think`.
Each question will be in the following form: >Question? [ValidAnswer1, ValidAnswer2, ...].
You should answer with only one of the valid options next to each question.
Set the answer off by
```json
{
"think": "Given the details and the features required for the Tutor App, including various functionalities like scheduling, financial management, and secure communication, it\'s important to make architectural and technology decisions that support these needs.",
"answer": [
{
"question": "The question gets repeated here: Do we Need DB?",
"think": "The thoughts on the answer go here: We need a database to store user data, scheduling, and financial information. We also need to store communication data. We need a database.",
"answer": "The answer follows the format of the question set in the braces: Yes"
},

... other answers
]
}
```

> Do we Need DB? [Yes, No]
> Do we need an API for talking to a front end? [Yes, No]
> Do we need an API for talking to other services? [Yes, No]
> Do we need an API for other services talking to us? [Yes, No]
> Do we need to issue API keys for other services to talk to us? [Yes, No, N/A]
> Do we need Monitoring? [Yes, No]
> Do we need Internationalization? [Yes, No]
> Do we need analytics? [Yes, No]
> Is there monetization? [Yes, No]
> Is the monetization via a paywall or ads? [Paywall, Ads, N/A]
> Does this require a subscription or a one-time purchase? [Subscription, One-Time Purchase, N/A]
> Is the whole service monetized or only part? [Whole, Part, N/A]
> Is monetization implemented through authorization? [Yes, No, N/A]
> Do we need Authentication? [Yes, No]
> Do we need authorization? [Yes, No, N/A]
> What authorization roles do we need? For this question, answer a string of array of One Word Roles such as [UserType1, UserType2', 'UserType3', N/A].
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
Here's a bit of context on the project that will help us both be on the same page:
"{{ product_description }}"

Here are a few Q&As we've already answered before I ask:

{{ joint_q_and_a }}

Also heres a few of the general baseline requirements we've already discussed and MUST be included:

{{ requirements_q_and_a_string }}

You are an expert senior software architect and CTO. Turn the details provided into functional requirements and non-functional requirements. Start with the general baseline requirements and then add additional ones based on the product description, feature list, and Q&A.

The features are:
{{ features }}

You should carefully think about it step by step, and share those answers in a block set off by `think`.
You should answer with only an expected non functional and functional requirements. Set the answer off by
```json
{
"think": "your thoughts here",
"answer": {
"functional": [
{
"name": "name of the requirement",
"description": "description of the requirement",
"thoughts": "thoughts on this requirement"
},
... for all requirements
],
"nonfunctional": [
{
"name": "name of the requirement",
"description": "description of the requirement",
"thoughts": "thoughts on this requirement"
},
... for all requirements
]
}
}
```

You had an error whilst generating the response:

{{ error }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
You are an expert product owner. You have a deep understanding of the product and its users, and you are able to communicate this understanding to the team.

Respond in the following json format:

{{ json_format }}
Loading

0 comments on commit 062024b

Please sign in to comment.