# Council Secretary Workflow

This document serves as a basic workflow and overview of what the Council Secretary role involves. The council secretary is an informal role so unlike many other Joystream roles does not have fixed rewards or a fixed scope of work, so the workflow and responsibilities are heavily influenced by given KPIs and what happens during a particular council session.

Basic requirements & responsibilities:
* Communicate with CMs and users, create threads and make sure everyone is aware of work that needs to be done or proposals that need to be voted on
* Communicate with Jsgenesis regarding essential platform issues
* Keep a close eye on Github updates concerning the operations of the council, proposals and coming updates
* Keep up to date on the future of the platform, including what features are being developed but are not deployed yet. Help to guide users to use the platform in the best way possible in close alignment with what the platform will be instead of what it is currently. This includes monitoring the main `Joystream` repo, `Pioneer` repo and the `Atlas` repo.
* Help users to interact with the council and be aware of how proposals work. Highlight less used proposals and provide as neutral as possible instructions on how to use them.
* Highlight potential platform issues, such as inconsistent validator performance and extreme user/storage growth.
* Identify limitations or potential improvements for reports, elections, proposals.
* Promote use of the forums and governance systems. Also help users to know what categories of the forum are relevant for their posts.
* Keep track of data of each council term in a `council leaderboard` spreadsheet. This should track as much information and data that is available and should be shared whenever possible to let users know about ongoing trends on the platform. This spreadsheet should include as much information as possible and constantly add new information and perspectives of the data that is gathered (this is planned to be made publicly available soon)
* Help push along the process of voting for proposals and elections.
* Help to communicate processes and workflow in a transparent manner as much as possible.
* Maintain a neutral stance as much as possible for everything. Although the council secretary can vote on proposals as an individual, when helping to share information about creating proposals (for example a hiring proposal) they should not point to a preferred candidate or try to influence personnel decisions on the platform.
* Maintain a broad overview of how each Working Group is doing.
* Maintain an account with tokens, funded by the council mint, for distributing to newer, genuine users who are interested in applying for worker or lead positions or for users who wish to create proposals.
* Maintain `spending_proposal_categories.csv` so that users are aware of how the Council's mint is being used. Produce periodic information concerning this.
* Keep track of bounties that are pending reimbursement from Jsgenesis and periodically send these to Jsgenesis for 

After new election is started:
1. Create thread for council applicants to post introductions
2. Make people in the community aware and be helpful with questions
3. Make sure to highlight any concerns (such as low candidacy and deadlines)
4. Pay attention to application/vote/reveal stages and communicate any needs to the userbase
5. Make sure users are aware of potential benefits of participating in the council voting process, also share the potential of KPI rewards available by participating in the platform's governance processes.
6. Make sure users are aware of the best way they can apply themselves when it comes to Jsgenesis votes on elections.

After new council elected:
1. Create proposal to elect council secretary
	* Include Github link
2. Look through KPIs, produce forum thread breaking down each KPI and start discussion of each
	* If there are significant annihilation terms for the KPIs, ensure that these are highlighted
3. Regular checking on KPIs and making update posts in appropriate threads to ensure everyone is aware of what the current status of KPIs are
4. Add thread for council round feedback

After council term is completed:
* Create thread for term summaries and highlight this thread, as well as the associated deadline to the community.

Other Tasks:
* Manage PRs on community repo
	* When approved by proposal or approved by ruleset, merge PRs. If PRs require code review, assign review to Jsgenesis.
* Periodic user feedback capture
	* If required, help to create threads and mechanisms for user feedback.
* Periodic report generation
	* If required by KPIs, help to produce initial templates for reports and identify what important information needs to be shown at minimum.
* Rolling Github Community Repo proposals
	* Periodically collect outstanding PRs which have had no proposals made, and create a proposal listing them for the council.
	* Separate any problematic PRs and create separate proposals for them.
* Github Issues
	* Create and manage Github issues. If issues need Jsgenesis' attention, then highlight this.
	* Periodically create Github issues to try and capture feedback on improving reports.